typedef struct _TEB { NT_TIB NtTib; void *EnvironmentPointer; CLIENT_ID ClientId; void *ActiveRpcHandle; void *ThreadLocalStoragePointer; PEB *ProcessEnvironmentBlock; unsigned long LastErrorValue; unsigned long CountOfOwnedCriticalSections; void *CsrClientThread; void *Win32ThreadInfo; unsigned long User32Reserved[26]; unsigned long UserReserved[5]; void *WOW32Reserved; unsigned long CurrentLocale; unsigned long FpSoftwareStatusRegister; void *SystemReserved1[54]; long ExceptionCode; ACTIVATION_CONTEXT_STACK *ActivationContextStackPointer; unsigned char SpareBytes[24]; unsigned long TxFsContext; GDI_TEB_BATCH GdiTebBatch; CLIENT_ID RealClientId; void *GdiCachedProcessHandle; unsigned long GdiClientPID; unsigned long GdiClientTID; void *GdiThreadLocalInfo; unsigned __int64 Win32ClientInfo[62]; void *glDispatchTable[233]; unsigned __int64 glReserved1[29]; void *glReserved2; void *glSectionInfo; void *glSection; void *glTable; void *glCurrentRC; void *glContext; unsigned long LastStatusValue; UNICODE_STRING StaticUnicodeString; wchar_t StaticUnicodeBuffer[261]; void *DeallocationStack; void *TlsSlots[64]; LIST_ENTRY TlsLinks; void *Vdm; void *ReservedForNtRpc; void *DbgSsReserved[2]; unsigned long HardErrorMode; void *Instrumentation[11]; GUID ActivityId; void *SubProcessTag; void *EtwLocalData; void *EtwTraceData; void *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; void *ReservedForPerf; void *ReservedForOle; unsigned long WaitingOnLoaderLock; void *SavedPriorityState; unsigned __int64 SoftPatchPtr1; void *ThreadPoolData; void **TlsExpansionSlots; void *DeallocationBStore; void *BStoreLimit; unsigned long MuiGeneration; unsigned long IsImpersonating; void *NlsCache; void *pShimData; unsigned long HeapVirtualAffinity; void *CurrentTransactionHandle; TEB_ACTIVE_FRAME *ActiveFrame; void *FlsData; void *PreferredLanguages; void *UserPrefLanguages; void *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; }; }; void *TxnScopeEnterCallback; void *TxnScopeExitCallback; void *TxnScopeContext; unsigned long LockCount; unsigned long SpareUlong0; void *ResourceRetValue; } TEB, *PTEB;