[NDK] Sync KUSER_SHARED_DATA with XDK

This commit is contained in:
Timo Kreuzer 2023-12-03 10:41:56 +02:00
parent 5f0e98ea3c
commit 835438f614
2 changed files with 117 additions and 61 deletions

View file

@ -561,76 +561,128 @@ typedef struct _XSTATE_CONFIGURATION
// //
// Shared Kernel User Data // Shared Kernel User Data
// Keep in sync with sdk/include/xdk/ketypes.h
// //
typedef struct _KUSER_SHARED_DATA typedef struct _KUSER_SHARED_DATA
{ {
ULONG TickCountLowDeprecated; ULONG TickCountLowDeprecated; // 0x0
ULONG TickCountMultiplier; ULONG TickCountMultiplier; // 0x4
volatile KSYSTEM_TIME InterruptTime; volatile KSYSTEM_TIME InterruptTime; // 0x8
volatile KSYSTEM_TIME SystemTime; volatile KSYSTEM_TIME SystemTime; // 0x14
volatile KSYSTEM_TIME TimeZoneBias; volatile KSYSTEM_TIME TimeZoneBias; // 0x20
USHORT ImageNumberLow; USHORT ImageNumberLow; // 0x2c
USHORT ImageNumberHigh; USHORT ImageNumberHigh; // 0x2e
WCHAR NtSystemRoot[260]; WCHAR NtSystemRoot[260]; // 0x30
ULONG MaxStackTraceDepth; ULONG MaxStackTraceDepth; // 0x238
ULONG CryptoExponent; ULONG CryptoExponent; // 0x23c
ULONG TimeZoneId; ULONG TimeZoneId; // 0x240
ULONG LargePageMinimum; ULONG LargePageMinimum; // 0x244
ULONG Reserved2[7]; ULONG Reserved2[7]; // 0x248
NT_PRODUCT_TYPE NtProductType; NT_PRODUCT_TYPE NtProductType; // 0x264
BOOLEAN ProductTypeIsValid; BOOLEAN ProductTypeIsValid; // 0x268
ULONG NtMajorVersion; ULONG NtMajorVersion; // 0x26c
ULONG NtMinorVersion; ULONG NtMinorVersion; // 0x270
BOOLEAN ProcessorFeatures[PROCESSOR_FEATURE_MAX]; BOOLEAN ProcessorFeatures[PROCESSOR_FEATURE_MAX]; // 0x274
ULONG Reserved1; ULONG Reserved1; // 0x2b4
ULONG Reserved3; ULONG Reserved3; // 0x2b8
volatile ULONG TimeSlip; volatile ULONG TimeSlip; // 0x2bc
ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture; ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture; // 0x2c0
LARGE_INTEGER SystemExpirationDate; ULONG AltArchitecturePad[1]; // 0x2c4
ULONG SuiteMask; LARGE_INTEGER SystemExpirationDate; // 0x2c8
BOOLEAN KdDebuggerEnabled; ULONG SuiteMask; // 0x2d0
BOOLEAN KdDebuggerEnabled; // 0x2d4
#if (NTDDI_VERSION >= NTDDI_WINXPSP2) #if (NTDDI_VERSION >= NTDDI_WINXPSP2)
UCHAR NXSupportPolicy; UCHAR NXSupportPolicy; // 0x2d5
#endif #endif
volatile ULONG ActiveConsoleId; volatile ULONG ActiveConsoleId; // 0x2d8
volatile ULONG DismountCount; volatile ULONG DismountCount; // 0x2dc
ULONG ComPlusPackage; ULONG ComPlusPackage; // 0x2e0
ULONG LastSystemRITEventTickCount; ULONG LastSystemRITEventTickCount; // 0x2e4
ULONG NumberOfPhysicalPages; ULONG NumberOfPhysicalPages; // 0x2e8
BOOLEAN SafeBootMode; BOOLEAN SafeBootMode; // 0x2ec
ULONG TraceLogging; #if (NTDDI_VERSION >= NTDDI_WIN7)
ULONG Fill0;
ULONGLONG TestRetInstruction;
ULONG SystemCall;
ULONG SystemCallReturn;
ULONGLONG SystemCallPad[3];
union {
volatile KSYSTEM_TIME TickCount;
volatile ULONG64 TickCountQuad;
};
ULONG Cookie;
#if (NTDDI_VERSION >= NTDDI_WS03)
LONGLONG ConsoleSessionForegroundProcessId;
ULONG Wow64SharedInformation[MAX_WOW64_SHARED_ENTRIES];
#endif
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
USHORT UserModeGlobalLogger[8];
ULONG HeapTracingPid[2];
ULONG CritSecTracingPid[2];
union union
{ {
ULONG SharedDataFlags; UCHAR TscQpcData; // 0x2ed
struct struct
{ {
ULONG DbgErrorPortPresent:1; UCHAR TscQpcEnabled:1; // 0x2ed
ULONG DbgElevationEnabled:1; UCHAR TscQpcSpareFlag:1; // 0x2ed
ULONG DbgVirtEnabled:1; UCHAR TscQpcShift:6; // 0x2ed
ULONG DbgInstallerDetectEnabled:1; } DUMMYSTRUCTNAME;
ULONG SpareBits:28; } DUMMYUNIONNAME;
}; UCHAR TscQpcPad[2]; // 0x2ee
}; #endif
ULONG ImageFileExecutionOptions; #if (NTDDI_VERSION >= NTDDI_VISTA)
KAFFINITY ActiveProcessorAffinity; union
{
ULONG SharedDataFlags; // 0x2f0
struct
{
ULONG DbgErrorPortPresent:1; // 0x2f0
ULONG DbgElevationEnabled:1; // 0x2f0
ULONG DbgVirtEnabled:1; // 0x2f0
ULONG DbgInstallerDetectEnabled:1; // 0x2f0
ULONG DbgSystemDllRelocated:1; // 0x2f0
ULONG DbgDynProcessorEnabled:1; // 0x2f0
ULONG DbgSEHValidationEnabled:1; // 0x2f0
ULONG SpareBits:25; // 0x2f0
} DUMMYSTRUCTNAME2;
} DUMMYUNIONNAME2;
#else
ULONG TraceLogging;
#endif
ULONG DataFlagsPad[1]; // 0x2f4
ULONGLONG TestRetInstruction; // 0x2f8
ULONG SystemCall; // 0x300
ULONG SystemCallReturn; // 0x304
ULONGLONG SystemCallPad[3]; // 0x308
union
{
volatile KSYSTEM_TIME TickCount; // 0x320
volatile ULONG64 TickCountQuad; // 0x320
struct
{
ULONG ReservedTickCountOverlay[3]; // 0x320
ULONG TickCountPad[1]; // 0x32c
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME3;
ULONG Cookie; // 0x330
#if (NTDDI_VERSION >= NTDDI_VISTA)
ULONG CookiePad[1]; // 0x334
LONGLONG ConsoleSessionForegroundProcessId; // 0x338
#endif
#if (NTDDI_VERSION >= NTDDI_WS03)
ULONG Wow64SharedInformation[MAX_WOW64_SHARED_ENTRIES]; // 2K3: 0x334 / Vista+: 0x340
#endif
#if (NTDDI_VERSION >= NTDDI_VISTA)
#if (NTDDI_VERSION >= NTDDI_WIN7)
USHORT UserModeGlobalLogger[16]; // 0x380
#else
USHORT UserModeGlobalLogger[8]; // 0x380
ULONG HeapTracingPid[2]; // 0x390
ULONG CritSecTracingPid[2]; // 0x398
#endif
ULONG ImageFileExecutionOptions; // 0x3a0
#if (NTDDI_VERSION >= NTDDI_VISTASP1)
ULONG LangGenerationCount; // 0x3a4
#else
/* 4 bytes padding */
#endif
ULONGLONG Reserved5; // 0x3a8
volatile ULONG64 InterruptTimeBias; // 0x3b0
#endif // NTDDI_VERSION >= NTDDI_VISTA
#if (NTDDI_VERSION >= NTDDI_WIN7)
volatile ULONG64 TscQpcBias; // 0x3b8
volatile ULONG ActiveProcessorCount; // 0x3c0
volatile USHORT ActiveGroupCount; // 0x3c4
USHORT Reserved4; // 0x3c6
volatile ULONG AitSamplingValue; // 0x3c8
volatile ULONG AppCompatFlag; // 0x3cc
ULONGLONG SystemDllNativeRelocation; // 0x3d0
ULONG SystemDllWowRelocation; // 0x3d8
ULONG XStatePad[1]; // 0x3dc
XSTATE_CONFIGURATION XState; // 0x3e0
#endif #endif
} KUSER_SHARED_DATA, *PKUSER_SHARED_DATA; } KUSER_SHARED_DATA, *PKUSER_SHARED_DATA;

View file

@ -1263,6 +1263,10 @@ typedef struct _XSTATE_CONFIGURATION
#define NX_SUPPORT_POLICY_OPTOUT 3 #define NX_SUPPORT_POLICY_OPTOUT 3
#endif #endif
//
// Shared Kernel User Data
// Keep in sync with sdk/include/ndk/ketypes.h
//
typedef struct _KUSER_SHARED_DATA typedef struct _KUSER_SHARED_DATA
{ {
ULONG TickCountLowDeprecated; // 0x0 ULONG TickCountLowDeprecated; // 0x0