[PATCH] include: Update some members of KUSER_SHARED_DATA.

Huw Davies huw at codeweavers.com
Thu Jul 9 10:15:40 CDT 2020


Signed-off-by: Huw Davies <huw at codeweavers.com>
---
 include/ddk/wdm.h | 36 ++++++++++++++++++++++++++++++++----
 server/mapping.c  |  2 +-
 2 files changed, 33 insertions(+), 5 deletions(-)

diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h
index 23ac630f410..59af860708b 100644
--- a/include/ddk/wdm.h
+++ b/include/ddk/wdm.h
@@ -1246,6 +1246,7 @@ typedef struct _KUSER_SHARED_DATA {
     ULONG SuiteMask;                                       /* 0x2d0 */
     BOOLEAN KdDebuggerEnabled;                             /* 0x2d4 */
     UCHAR NXSupportPolicy;                                 /* 0x2d5 */
+    USHORT CyclesPerYield;                                 /* 0x2d6 */
     volatile ULONG ActiveConsoleId;                        /* 0x2d8 */
     volatile ULONG DismountCount;                          /* 0x2dc */
     ULONG ComPlusPackage;                                  /* 0x2e0 */
@@ -1253,16 +1254,43 @@ typedef struct _KUSER_SHARED_DATA {
     ULONG NumberOfPhysicalPages;                           /* 0x2e8 */
     BOOLEAN SafeBootMode;                                  /* 0x2ec */
     UCHAR VirtualizationFlags;                             /* 0x2ed */
-    ULONG TraceLogging;                                    /* 0x2f0 */
+    union {
+        ULONG SharedDataFlags;                             /* 0x2f0 */
+        struct {
+            ULONG DbgErrorPortPresent       : 1;
+            ULONG DbgElevationEnabed        : 1;
+            ULONG DbgVirtEnabled            : 1;
+            ULONG DbgInstallerDetectEnabled : 1;
+            ULONG DbgLkgEnabled             : 1;
+            ULONG DbgDynProcessorEnabled    : 1;
+            ULONG DbgConsoleBrokerEnabled   : 1;
+            ULONG DbgSecureBootEnabled      : 1;
+            ULONG DbgMultiSessionSku        : 1;
+            ULONG DbgMultiUsersInSessionSku : 1;
+            ULONG DbgStateSeparationEnabled : 1;
+            ULONG SpareBits                 : 21;
+        } DUMMYSTRUCTNAME2;
+    } DUMMYUNIONNAME2;
+    ULONG DataFlagsPad[1];                                 /* 0x2f4 */
     ULONGLONG TestRetInstruction;                          /* 0x2f8 */
-    ULONG SystemCall;                                      /* 0x300 */
-    ULONG SystemCallReturn;                                /* 0x304 */
-    ULONGLONG SystemCallPad[3];                            /* 0x308 */
+    LONGLONG QpcFrequency;                                 /* 0x300 */
+    ULONG SystemCall;                                      /* 0x308 */
+    union {
+        ULONG AllFlags;                                    /* 0x30c */
+        struct {
+            ULONG Win32Process            : 1;
+            ULONG Sgx2Enclave             : 1;
+            ULONG VbsBasicEnclave         : 1;
+            ULONG SpareBits               : 29;
+        } DUMMYSTRUCTNAME;
+    } UserCetAvailableEnvironments;
+    ULONGLONG SystemCallPad[2];                            /* 0x310 */
     union {
         volatile KSYSTEM_TIME TickCount;                   /* 0x320 */
         volatile ULONG64 TickCountQuad;
     } DUMMYUNIONNAME;
     ULONG Cookie;                                          /* 0x330 */
+    ULONG CookiePad[1];                                    /* 0x334 */
     LONGLONG ConsoleSessionForegroundProcessId;            /* 0x338 */
     ULONGLONG TimeUpdateLock;                              /* 0x340 */
     ULONGLONG BaselineSystemTimeQpc;                       /* 0x348 */
diff --git a/server/mapping.c b/server/mapping.c
index ce70b696bd5..db0debe0af5 100644
--- a/server/mapping.c
+++ b/server/mapping.c
@@ -967,7 +967,7 @@ struct object *create_user_data_mapping( struct object *root, const struct unico
     if (ptr != MAP_FAILED)
     {
         user_shared_data = ptr;
-        user_shared_data->SystemCallPad[0] = 1;
+        user_shared_data->SystemCall = 1;
     }
     return &mapping->obj;
 }
-- 
2.23.0




More information about the wine-devel mailing list