[PATCH 1/3] include/ddk: Fix struct _KUSER_SHARED_DATA definition.
HeapTracingPid, CritSecTracingPid are present in NT 6.0. But NT 6.0 has UserModeGlobalLogger array size of 8 instead of 16. Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com> --- include/ddk/wdm.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h index 91e8a1a698..b0ad0e70d3 100644 --- a/include/ddk/wdm.h +++ b/include/ddk/wdm.h @@ -1258,8 +1258,6 @@ typedef struct _KUSER_SHARED_DATA { ULONG EnclaveFeatureMask[4]; /* 0x36c */ ULONG TelemetryCoverageRound; /* 0x37c */ USHORT UserModeGlobalLogger[16]; /* 0x380 */ - ULONG HeapTracingPid[2]; /* 0x390 */ - ULONG CritSecTracingPid[2]; /* 0x398 */ ULONG ImageFileExecutionOptions; /* 0x3a0 */ ULONG LangGenerationCount; /* 0x3a4 */ ULONG ActiveProcessorAffinity; /* 0x3a8 */ -- 2.26.2
Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com> --- dlls/ntdll/tests/virtual.c | 3 +++ dlls/ntdll/thread.c | 1 + 2 files changed, 4 insertions(+) diff --git a/dlls/ntdll/tests/virtual.c b/dlls/ntdll/tests/virtual.c index 3b0d74daeb..59c2224816 100644 --- a/dlls/ntdll/tests/virtual.c +++ b/dlls/ntdll/tests/virtual.c @@ -528,6 +528,9 @@ static void test_user_shared_data(void) ok(user_shared_data->ProcessorFeatures[PF_RDTSC_INSTRUCTION_AVAILABLE] /* Supported since Pentium CPUs. */, "_RDTSC not available.\n"); #endif + ok(user_shared_data->ActiveProcessorCount == NtCurrentTeb()->Peb->NumberOfProcessors + || broken(!user_shared_data->ActiveProcessorCount) /* before Win7 */, + "Got unexpected ActiveProcessorCount %u.\n", user_shared_data->ActiveProcessorCount); } START_TEST(virtual) diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c index 19e09c7e38..78574d0c5d 100644 --- a/dlls/ntdll/thread.c +++ b/dlls/ntdll/thread.c @@ -238,6 +238,7 @@ static void fill_user_shared_data( struct _KUSER_SHARED_DATA *data ) features[PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE] = !!(sci.FeatureSet & CPU_FEATURE_ARM_V8_CRYPTO); break; } + data->ActiveProcessorCount = NtCurrentTeb()->Peb->NumberOfProcessors; } HANDLE user_shared_data_init_done(void) -- 2.26.2
Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com> --- dlls/ntdll/tests/virtual.c | 3 +++ dlls/ntdll/thread.c | 1 + 2 files changed, 4 insertions(+) diff --git a/dlls/ntdll/tests/virtual.c b/dlls/ntdll/tests/virtual.c index 59c2224816..beab744178 100644 --- a/dlls/ntdll/tests/virtual.c +++ b/dlls/ntdll/tests/virtual.c @@ -531,6 +531,9 @@ static void test_user_shared_data(void) ok(user_shared_data->ActiveProcessorCount == NtCurrentTeb()->Peb->NumberOfProcessors || broken(!user_shared_data->ActiveProcessorCount) /* before Win7 */, "Got unexpected ActiveProcessorCount %u.\n", user_shared_data->ActiveProcessorCount); + ok(user_shared_data->ActiveGroupCount == 1 + || broken(!user_shared_data->ActiveGroupCount) /* before Win7 */, + "Got unexpected ActiveGroupCount %u.\n", user_shared_data->ActiveGroupCount); } START_TEST(virtual) diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c index 78574d0c5d..3d370f7a98 100644 --- a/dlls/ntdll/thread.c +++ b/dlls/ntdll/thread.c @@ -239,6 +239,7 @@ static void fill_user_shared_data( struct _KUSER_SHARED_DATA *data ) break; } data->ActiveProcessorCount = NtCurrentTeb()->Peb->NumberOfProcessors; + data->ActiveGroupCount = 1; } HANDLE user_shared_data_init_done(void) -- 2.26.2
participants (1)
-
Paul Gofman