typedef struct _TEB64
{
    NT_TIB64 NtTib;
    unsigned __int64 EnvironmentPointer;
    CLIENT_ID64 ClientId;
    unsigned __int64 ActiveRpcHandle;
    unsigned __int64 ThreadLocalStoragePointer;
    unsigned __int64 ProcessEnvironmentBlock;
    unsigned long LastErrorValue;
    unsigned long CountOfOwnedCriticalSections;
    unsigned __int64 CsrClientThread;
    unsigned __int64 Win32ThreadInfo;
    unsigned long User32Reserved[26];
    unsigned long UserReserved[5];
    unsigned __int64 WOW32Reserved;
    unsigned long CurrentLocale;
    unsigned long FpSoftwareStatusRegister;
    unsigned __int64 SystemReserved1[54];
    long ExceptionCode;
    unsigned __int64 ActivationContextStackPointer;
    unsigned char SpareBytes[24];
    unsigned long TxFsContext;
    GDI_TEB_BATCH64 GdiTebBatch;
    CLIENT_ID64 RealClientId;
    unsigned __int64 GdiCachedProcessHandle;
    unsigned long GdiClientPID;
    unsigned long GdiClientTID;
    unsigned __int64 GdiThreadLocalInfo;
    unsigned __int64 Win32ClientInfo[62];
    unsigned __int64 glDispatchTable[233];
    unsigned __int64 glReserved1[29];
    unsigned __int64 glReserved2;
    unsigned __int64 glSectionInfo;
    unsigned __int64 glSection;
    unsigned __int64 glTable;
    unsigned __int64 glCurrentRC;
    unsigned __int64 glContext;
    unsigned long LastStatusValue;
    STRING64 StaticUnicodeString;
    wchar_t StaticUnicodeBuffer[261];
    unsigned __int64 DeallocationStack;
    unsigned __int64 TlsSlots[64];
    LIST_ENTRY64 TlsLinks;
    unsigned __int64 Vdm;
    unsigned __int64 ReservedForNtRpc;
    unsigned __int64 DbgSsReserved[2];
    unsigned long HardErrorMode;
    unsigned __int64 Instrumentation[11];
    GUID ActivityId;
    unsigned __int64 SubProcessTag;
    unsigned __int64 EtwLocalData;
    unsigned __int64 EtwTraceData;
    unsigned __int64 WinSockData;
    unsigned long GdiBatchCount;
    union
    {
        PROCESSOR_NUMBER CurrentIdealProcessor;
        unsigned long IdealProcessorValue;
        struct
        {
            unsigned char ReservedPad0;
            unsigned char ReservedPad1;
            unsigned char ReservedPad2;
            unsigned char IdealProcessor;
        };
    };
    unsigned long GuaranteedStackBytes;
    unsigned __int64 ReservedForPerf;
    unsigned __int64 ReservedForOle;
    unsigned long WaitingOnLoaderLock;
    unsigned __int64 SavedPriorityState;
    unsigned __int64 SoftPatchPtr1;
    unsigned __int64 ThreadPoolData;
    unsigned __int64 TlsExpansionSlots;
    unsigned __int64 DeallocationBStore;
    unsigned __int64 BStoreLimit;
    unsigned long MuiGeneration;
    unsigned long IsImpersonating;
    unsigned __int64 NlsCache;
    unsigned __int64 pShimData;
    unsigned long HeapVirtualAffinity;
    unsigned __int64 CurrentTransactionHandle;
    unsigned __int64 ActiveFrame;
    unsigned __int64 FlsData;
    unsigned __int64 PreferredLanguages;
    unsigned __int64 UserPrefLanguages;
    unsigned __int64 MergedPrefLanguages;
    unsigned long MuiImpersonation;
    union
    {
        volatile unsigned short CrossTebFlags;
        unsigned short SpareCrossTebBits : 16;
    };
    union
    {
        unsigned short SameTebFlags;
        struct
        {
            unsigned short SafeThunkCall : 1;
            unsigned short InDebugPrint : 1;
            unsigned short HasFiberData : 1;
            unsigned short SkipThreadAttach : 1;
            unsigned short WerInShipAssertCode : 1;
            unsigned short RanProcessInit : 1;
            unsigned short ClonedThread : 1;
            unsigned short SuppressDebugMsg : 1;
            unsigned short DisableUserStackWalk : 1;
            unsigned short RtlExceptionAttached : 1;
            unsigned short InitialThread : 1;
            unsigned short SpareSameTebBits : 5;
        };
    };
    unsigned __int64 TxnScopeEnterCallback;
    unsigned __int64 TxnScopeExitCallback;
    unsigned __int64 TxnScopeContext;
    unsigned long LockCount;
    unsigned long SpareUlong0;
    unsigned __int64 ResourceRetValue;
} TEB64, *PTEB64;