Signed-off-by: Huw Davies huw@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; }