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.
This commit is contained in:
parent
0497095f97
commit
cf9f016820
@ -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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user