typedef struct _TEB32 { NT_TIB32 NtTib; unsigned long EnvironmentPointer; CLIENT_ID32 ClientId; unsigned long ActiveRpcHandle; unsigned long ThreadLocalStoragePointer; unsigned long ProcessEnvironmentBlock; unsigned long LastErrorValue; unsigned long CountOfOwnedCriticalSections; unsigned long CsrClientThread; unsigned long Win32ThreadInfo; unsigned long User32Reserved[26]; unsigned long UserReserved[5]; unsigned long WOW32Reserved; unsigned long CurrentLocale; unsigned long FpSoftwareStatusRegister; unsigned long SystemReserved1[54]; long ExceptionCode; unsigned long ActivationContextStackPointer; unsigned char SpareBytes[36]; unsigned long TxFsContext; GDI_TEB_BATCH32 GdiTebBatch; CLIENT_ID32 RealClientId; unsigned long GdiCachedProcessHandle; unsigned long GdiClientPID; unsigned long GdiClientTID; unsigned long GdiThreadLocalInfo; unsigned long Win32ClientInfo[62]; unsigned long glDispatchTable[233]; unsigned long glReserved1[29]; unsigned long glReserved2; unsigned long glSectionInfo; unsigned long glSection; unsigned long glTable; unsigned long glCurrentRC; unsigned long glContext; unsigned long LastStatusValue; STRING32 StaticUnicodeString; wchar_t StaticUnicodeBuffer[261]; unsigned long DeallocationStack; unsigned long TlsSlots[64]; LIST_ENTRY32 TlsLinks; unsigned long Vdm; unsigned long ReservedForNtRpc; unsigned long DbgSsReserved[2]; unsigned long HardErrorMode; unsigned long Instrumentation[9]; GUID ActivityId; unsigned long SubProcessTag; unsigned long EtwLocalData; unsigned long EtwTraceData; unsigned long 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 long ReservedForPerf; unsigned long ReservedForOle; unsigned long WaitingOnLoaderLock; unsigned long SavedPriorityState; unsigned long SoftPatchPtr1; unsigned long ThreadPoolData; unsigned long TlsExpansionSlots; unsigned long MuiGeneration; unsigned long IsImpersonating; unsigned long NlsCache; unsigned long pShimData; unsigned long HeapVirtualAffinity; unsigned long CurrentTransactionHandle; unsigned long ActiveFrame; unsigned long FlsData; unsigned long PreferredLanguages; unsigned long UserPrefLanguages; unsigned long 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 long TxnScopeEnterCallback; unsigned long TxnScopeExitCallback; unsigned long TxnScopeContext; unsigned long LockCount; unsigned long SpareUlong0; unsigned long ResourceRetValue; } TEB32, *PTEB32;