typedef struct _KUSER_SHARED_DATA
{
    unsigned long TickCountLowDeprecated;
    unsigned long TickCountMultiplier;
    KSYSTEM_TIME InterruptTime;
    KSYSTEM_TIME SystemTime;
    KSYSTEM_TIME TimeZoneBias;
    unsigned short ImageNumberLow;
    unsigned short ImageNumberHigh;
    wchar_t NtSystemRoot[260];
    unsigned long MaxStackTraceDepth;
    unsigned long CryptoExponent;
    unsigned long TimeZoneId;
    unsigned long LargePageMinimum;
    unsigned long Reserved2[7];
    NT_PRODUCT_TYPE NtProductType;
    unsigned char ProductTypeIsValid;
    unsigned long NtMajorVersion;
    unsigned long NtMinorVersion;
    unsigned char ProcessorFeatures[64];
    unsigned long Reserved1;
    unsigned long Reserved3;
    volatile unsigned long TimeSlip;
    ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture;
    unsigned long AltArchitecturePad[1];
    LARGE_INTEGER SystemExpirationDate;
    unsigned long SuiteMask;
    unsigned char KdDebuggerEnabled;
    unsigned char NXSupportPolicy;
    volatile unsigned long ActiveConsoleId;
    volatile unsigned long DismountCount;
    unsigned long ComPlusPackage;
    unsigned long LastSystemRITEventTickCount;
    unsigned long NumberOfPhysicalPages;
    unsigned char SafeBootMode;
    union
    {
        unsigned char TscQpcData;
        struct
        {
            unsigned char TscQpcEnabled : 1;
            unsigned char TscQpcSpareFlag : 1;
            unsigned char TscQpcShift : 6;
        };
    };
    unsigned char TscQpcPad[2];
    union
    {
        unsigned long SharedDataFlags;
        struct
        {
            unsigned long DbgErrorPortPresent : 1;
            unsigned long DbgElevationEnabled : 1;
            unsigned long DbgVirtEnabled : 1;
            unsigned long DbgInstallerDetectEnabled : 1;
            unsigned long DbgSystemDllRelocated : 1;
            unsigned long DbgDynProcessorEnabled : 1;
            unsigned long DbgSEHValidationEnabled : 1;
            unsigned long SpareBits : 25;
        };
    };
    unsigned long DataFlagsPad[1];
    unsigned __int64 TestRetInstruction;
    unsigned long SystemCall;
    unsigned long SystemCallReturn;
    unsigned __int64 SystemCallPad[3];
    union
    {
        KSYSTEM_TIME TickCount;
        volatile unsigned __int64 TickCountQuad;
        unsigned long ReservedTickCountOverlay[3];
    };
    unsigned long TickCountPad[1];
    unsigned long Cookie;
    unsigned long CookiePad[1];
    __int64 ConsoleSessionForegroundProcessId;
    unsigned long DEPRECATED_Wow64SharedInformation[16];
    unsigned short UserModeGlobalLogger[16];
    unsigned long ImageFileExecutionOptions;
    unsigned long LangGenerationCount;
    unsigned __int64 Reserved5;
    volatile unsigned __int64 InterruptTimeBias;
    volatile unsigned __int64 TscQpcBias;
    volatile unsigned long ActiveProcessorCount;
    volatile unsigned short ActiveGroupCount;
    unsigned short Reserved4;
    volatile unsigned long AitSamplingValue;
    volatile unsigned long AppCompatFlag;
    unsigned __int64 DEPRECATED_SystemDllNativeRelocation;
    unsigned long DEPRECATED_SystemDllWowRelocation;
    unsigned long XStatePad[1];
    XSTATE_CONFIGURATION XState;
} KUSER_SHARED_DATA, *PKUSER_SHARED_DATA;