Browse Source

win-capture: Rename structs to avoid SDK conflict

Windows SDK 10.0.16299.0 defines these structures as part of winternl.h
but using different types and names. Unfortunately there's no macro to
detect the SDK version, so to avoid conflicting with newer / older SDKs
the OBS structs have been renamed.
Richard Stanway 8 years ago
parent
commit
cf9f016820
1 changed files with 9 additions and 9 deletions
  1. 9 9
      plugins/win-capture/nt-stuff.h

+ 9 - 9
plugins/win-capture/nt-stuff.h

@@ -5,7 +5,7 @@
 #define THREAD_STATE_WAITING 5
 #define THREAD_WAIT_REASON_SUSPENDED 5
 
-typedef struct _SYSTEM_PROCESS_INFORMATION2 {
+typedef struct _OBS_SYSTEM_PROCESS_INFORMATION2 {
     ULONG NextEntryOffset;
     ULONG ThreadCount;
     BYTE Reserved1[48];
@@ -18,9 +18,9 @@ typedef struct _SYSTEM_PROCESS_INFORMATION2 {
     SIZE_T PeakPagefileUsage;
     SIZE_T PrivatePageCount;
     LARGE_INTEGER Reserved6[6];
-} SYSTEM_PROCESS_INFORMATION2;
+} OBS_SYSTEM_PROCESS_INFORMATION2;
 
-typedef struct _SYSTEM_THREAD_INFORMATION {
+typedef struct _OBS_SYSTEM_THREAD_INFORMATION {
 	FILETIME KernelTime;
 	FILETIME UserTime;
 	FILETIME CreateTime;
@@ -34,7 +34,7 @@ typedef struct _SYSTEM_THREAD_INFORMATION {
 	DWORD ThreadState;
 	DWORD WaitReason;
 	DWORD Reserved1;
-} SYSTEM_THREAD_INFORMATION;
+} OBS_SYSTEM_THREAD_INFORMATION;
 
 #ifndef NT_SUCCESS
 #define NT_SUCCESS(status) ((NTSTATUS)(status) >= 0)
@@ -137,7 +137,7 @@ static bool thread_is_suspended(DWORD process_id, DWORD thread_id)
 		data = malloc(size);
 	}
 
-	SYSTEM_PROCESS_INFORMATION2 *spi = data;
+	OBS_SYSTEM_PROCESS_INFORMATION2 *spi = data;
 
 	for (;;) {
 		if (spi->UniqueProcessId == (HANDLE)process_id) {
@@ -148,12 +148,12 @@ static bool thread_is_suspended(DWORD process_id, DWORD thread_id)
 		if (!offset)
 			goto fail;
 
-		spi = (SYSTEM_PROCESS_INFORMATION2*)((BYTE*)spi + offset);
+		spi = (OBS_SYSTEM_PROCESS_INFORMATION2*)((BYTE*)spi + offset);
 	}
 
-	SYSTEM_THREAD_INFORMATION *sti;
-	SYSTEM_THREAD_INFORMATION *info = NULL;
-	sti = (SYSTEM_THREAD_INFORMATION*)((BYTE*)spi + sizeof(*spi));
+	OBS_SYSTEM_THREAD_INFORMATION *sti;
+	OBS_SYSTEM_THREAD_INFORMATION *info = NULL;
+	sti = (OBS_SYSTEM_THREAD_INFORMATION*)((BYTE*)spi + sizeof(*spi));
 
 	for (ULONG i = 0; i < spi->ThreadCount; i++) {
 		if (sti[i].UniqueThreadId == (HANDLE)thread_id) {