https://git.reactos.org/?p=reactos.git;a=commitdiff;h=5f0e98ea3ca170bb6b28ca2651f0fc0c4c8d3d16

commit 5f0e98ea3ca170bb6b28ca2651f0fc0c4c8d3d16
Author:     Timo Kreuzer <timo.kreu...@reactos.org>
AuthorDate: Sun Dec 3 12:03:04 2023 +0200
Commit:     Timo Kreuzer <timo.kreu...@reactos.org>
CommitDate: Sat Dec 16 14:04:36 2023 +0200

    [XDK] Add offsets to KUSER_SHARED_DATA and improve structure
    
    Offsets taken from vergiliusproject.com.
---
 sdk/include/xdk/ketypes.h | 158 +++++++++++++++++++++++-----------------------
 1 file changed, 80 insertions(+), 78 deletions(-)

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

Reply via email to