ReactOS  0.4.14-dev-583-g2a1ba2c
peb_teb.h File Reference
#include <rtltypes.h>
Include dependency graph for peb_teb.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define PASTE2(x, y)   x##y
 
#define PASTE(x, y)   PASTE2(x,y)
 
#define STRUCT(x)   x
 
#define PTR(x)   x
 
#define _SELECT3264(x32, x64)   (x32)
 
#define GDI_HANDLE_BUFFER_SIZE   34
 
#define GDI_BATCH_BUFFER_SIZE   0x136
 

Functions

struct STRUCT (_PEB)
 
 C_ASSERT (FIELD_OFFSET(STRUCT(PEB), Mutant)==0x04)
 
 C_ASSERT (FIELD_OFFSET(STRUCT(PEB), Ldr)==0x0C)
 
 C_ASSERT (FIELD_OFFSET(STRUCT(PEB), FastPebLock)==0x01C)
 
 C_ASSERT (FIELD_OFFSET(STRUCT(PEB), TlsExpansionCounter)==0x03C)
 
 C_ASSERT (FIELD_OFFSET(STRUCT(PEB), NtGlobalFlag)==0x068)
 
 C_ASSERT (FIELD_OFFSET(STRUCT(PEB), GdiSharedHandleTable)==0x094)
 
 C_ASSERT (FIELD_OFFSET(STRUCT(PEB), LoaderLock)==0x0A0)
 
 C_ASSERT (FIELD_OFFSET(STRUCT(PEB), ImageSubsystem)==0x0B4)
 
 C_ASSERT (FIELD_OFFSET(STRUCT(PEB), ImageProcessAffinityMask)==0x0C0)
 
 C_ASSERT (FIELD_OFFSET(STRUCT(PEB), PostProcessInitRoutine)==0x14C)
 
 C_ASSERT (FIELD_OFFSET(STRUCT(PEB), SessionId)==0x1D4)
 
 C_ASSERT (FIELD_OFFSET(STRUCT(PEB), FlsHighIndex)==0x22C)
 
struct STRUCT (_GDI_TEB_BATCH)
 
struct STRUCT (_TEB)
 
 C_ASSERT (FIELD_OFFSET(STRUCT(TEB), NtTib)==0x000)
 
 C_ASSERT (FIELD_OFFSET(STRUCT(TEB), EnvironmentPointer)==0x01C)
 
 C_ASSERT (FIELD_OFFSET(STRUCT(TEB), ExceptionCode)==0x1A4)
 
 C_ASSERT (FIELD_OFFSET(STRUCT(TEB), GdiTebBatch)==0x1D4)
 
 C_ASSERT (FIELD_OFFSET(STRUCT(TEB), RealClientId)==0x6B4)
 
 C_ASSERT (FIELD_OFFSET(STRUCT(TEB), LastStatusValue)==0xBF4)
 
 C_ASSERT (FIELD_OFFSET(STRUCT(TEB), Vdm)==0xF18)
 
 C_ASSERT (FIELD_OFFSET(STRUCT(TEB), GdiBatchCount)==0xF70)
 
 C_ASSERT (FIELD_OFFSET(STRUCT(TEB), TlsExpansionSlots)==0xF94)
 
 C_ASSERT (FIELD_OFFSET(STRUCT(TEB), ActiveFrame)==0xFB0)
 

Macro Definition Documentation

◆ _SELECT3264

#define _SELECT3264 (   x32,
  x64 
)    (x32)

Definition at line 41 of file peb_teb.h.

◆ GDI_BATCH_BUFFER_SIZE

#define GDI_BATCH_BUFFER_SIZE   0x136

Definition at line 216 of file peb_teb.h.

◆ GDI_HANDLE_BUFFER_SIZE

#define GDI_HANDLE_BUFFER_SIZE   34

Definition at line 42 of file peb_teb.h.

◆ PASTE

#define PASTE (   x,
  y 
)    PASTE2(x,y)

Definition at line 22 of file peb_teb.h.

◆ PASTE2

#define PASTE2 (   x,
  y 
)    x##y

Definition at line 21 of file peb_teb.h.

◆ PTR

#define PTR (   x)    x

Definition at line 32 of file peb_teb.h.

◆ STRUCT

#define STRUCT (   x)    x

Definition at line 31 of file peb_teb.h.

Function Documentation

◆ C_ASSERT() [1/22]

C_ASSERT ( FIELD_OFFSET(STRUCT(PEB), Mutant)  = =0x04)

◆ C_ASSERT() [2/22]

C_ASSERT ( FIELD_OFFSET(STRUCT(PEB), Ldr)  = =0x0C)

◆ C_ASSERT() [3/22]

C_ASSERT ( FIELD_OFFSET(STRUCT(PEB), FastPebLock = =0x01C)

◆ C_ASSERT() [4/22]

C_ASSERT ( FIELD_OFFSET(STRUCT(PEB), TlsExpansionCounter)  = =0x03C)

◆ C_ASSERT() [5/22]

C_ASSERT ( FIELD_OFFSET(STRUCT(PEB), NtGlobalFlag = =0x068)

◆ C_ASSERT() [6/22]

C_ASSERT ( FIELD_OFFSET(STRUCT(PEB), GdiSharedHandleTable = =0x094)

◆ C_ASSERT() [7/22]

C_ASSERT ( FIELD_OFFSET(STRUCT(PEB), LoaderLock)  = =0x0A0)

◆ C_ASSERT() [8/22]

C_ASSERT ( FIELD_OFFSET(STRUCT(PEB), ImageSubsystem)  = =0x0B4)

◆ C_ASSERT() [9/22]

C_ASSERT ( FIELD_OFFSET(STRUCT(PEB), ImageProcessAffinityMask)  = =0x0C0)

◆ C_ASSERT() [10/22]

C_ASSERT ( FIELD_OFFSET(STRUCT(PEB), PostProcessInitRoutine)  = =0x14C)

◆ C_ASSERT() [11/22]

C_ASSERT ( FIELD_OFFSET(STRUCT(PEB), SessionId = =0x1D4)

◆ C_ASSERT() [12/22]

C_ASSERT ( FIELD_OFFSET(STRUCT(PEB), FlsHighIndex)  = =0x22C)

◆ C_ASSERT() [13/22]

C_ASSERT ( FIELD_OFFSET(STRUCT(TEB), NtTib)  = =0x000)

◆ C_ASSERT() [14/22]

C_ASSERT ( FIELD_OFFSET(STRUCT(TEB), EnvironmentPointer)  = =0x01C)

◆ C_ASSERT() [15/22]

C_ASSERT ( FIELD_OFFSET(STRUCT(TEB), ExceptionCode = =0x1A4)

◆ C_ASSERT() [16/22]

C_ASSERT ( FIELD_OFFSET(STRUCT(TEB), GdiTebBatch)  = =0x1D4)

◆ C_ASSERT() [17/22]

C_ASSERT ( FIELD_OFFSET(STRUCT(TEB), RealClientId)  = =0x6B4)

◆ C_ASSERT() [18/22]

C_ASSERT ( FIELD_OFFSET(STRUCT(TEB), LastStatusValue)  = =0xBF4)

◆ C_ASSERT() [19/22]

C_ASSERT ( FIELD_OFFSET(STRUCT(TEB), Vdm)  = =0xF18)

◆ C_ASSERT() [20/22]

C_ASSERT ( FIELD_OFFSET(STRUCT(TEB), GdiBatchCount)  = =0xF70)

◆ C_ASSERT() [21/22]

C_ASSERT ( FIELD_OFFSET(STRUCT(TEB), TlsExpansionSlots)  = =0xF94)

◆ C_ASSERT() [22/22]

C_ASSERT ( FIELD_OFFSET(STRUCT(TEB), ActiveFrame)  = =0xFB0)

◆ STRUCT() [1/3]

* STRUCT ( _GDI_TEB_BATCH  )

Definition at line 220 of file peb_teb.h.

221 {
222  ULONG Offset;
223  PTR(HANDLE) HDC;
static HDC
Definition: imagelist.c:92
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
Definition: bufpool.h:45
#define STRUCT(x)
Definition: peb_teb.h:31
#define PTR(x)
Definition: peb_teb.h:32
unsigned int ULONG
Definition: retypes.h:1
#define GDI_BATCH_BUFFER_SIZE
Definition: peb_teb.h:216

◆ STRUCT() [2/3]

* STRUCT ( _TEB  )

Definition at line 230 of file peb_teb.h.

231 {
232  STRUCT(NT_TIB) NtTib;
233  PTR(PVOID) EnvironmentPointer;
235  PTR(PVOID) ActiveRpcHandle;
236  PTR(PVOID) ThreadLocalStoragePointer;
237  PTR(STRUCT(PPEB)) ProcessEnvironmentBlock;
238  ULONG LastErrorValue;
239  ULONG CountOfOwnedCriticalSections;
240  PTR(PVOID) CsrClientThread;
241  PTR(PVOID) Win32ThreadInfo;
242  ULONG User32Reserved[26];
243  ULONG UserReserved[5];
244  PTR(PVOID) WOW32Reserved;
245  LCID CurrentLocale;
246  ULONG FpSoftwareStatusRegister;
247 
248 #if (NTDDI_VERSION >= NTDDI_WIN10) // since 10.0.10240.16384
249  PTR(PVOID) ReservedForDebuggerInstrumentation[16];
250  PTR(PVOID) SystemReserved1[38];
251 #else
252  PTR(PVOID) SystemReserved1[54];
253 #endif
255 #ifdef _STRUCT64
256  UCHAR Padding0[4];
257 #endif
258 
259 #if (NTDDI_VERSION >= NTDDI_WS03SP1)
260  PTR(PACTIVATION_CONTEXT_STACK) ActivationContextStackPointer;
261 #else
262  STRUCT(ACTIVATION_CONTEXT_STACK) ActivationContextStack;
263 #endif
264 
265 #if (NTDDI_VERSION >= NTDDI_WIN10) // since 10.0.9926.0
266  PTR(ULONG_PTR) InstrumentationCallbackSp;
267  PTR(ULONG_PTR) InstrumentationCallbackPreviousPc;
268  PTR(ULONG_PTR) InstrumentationCallbackPreviousSp;
269  #ifdef _STRUCT64
270  ULONG TxFsContext;
271  UCHAR InstrumentationCallbackDisabled;
272  UCHAR Padding1[3];
273  #else
274  UCHAR InstrumentationCallbackDisabled;
275  UCHAR SpareBytes[23];
276  ULONG TxFsContext;
277  #endif
278 #elif (NTDDI_VERSION >= NTDDI_WIN7)
279  UCHAR SpareBytes[_SELECT3264(36, 24)];
280  ULONG TxFsContext;
281 #elif (NTDDI_VERSION >= NTDDI_VISTA)
282  UCHAR SpareBytes1[_SELECT3264(36, 24)];
283  ULONG TxFsContext;
284 #elif (NTDDI_VERSION >= NTDDI_WS03SP1)
285  UCHAR SpareBytes1[_SELECT3264(40, 28)];
286 #else // only 32 bit version of 2k3 pre-SP1 exist
287  UCHAR SpareBytes1[_SELECT3264(24, -1)];
288 #endif
289 
290  STRUCT(GDI_TEB_BATCH) GdiTebBatch;
291  STRUCT(CLIENT_ID) RealClientId;
292  PTR(PVOID) GdiCachedProcessHandle;
293  ULONG GdiClientPID;
294  ULONG GdiClientTID;
295  PTR(PVOID) GdiThreadLocalInfo;
296  PTR(SIZE_T) Win32ClientInfo[62];
297  PTR(PVOID) glDispatchTable[233];
298  PTR(SIZE_T) glReserved1[29];
299  PTR(PVOID) glReserved2;
300  PTR(PVOID) glSectionInfo;
301  PTR(PVOID) glSection;
302  PTR(PVOID) glTable;
303  PTR(PVOID) glCurrentRC;
304  PTR(PVOID) glContext;
305  ULONG LastStatusValue;
306 #ifdef _STRUCT64
307  UCHAR Padding2[4];
308 #endif
309  STRUCT(UNICODE_STRING) StaticUnicodeString;
310  WCHAR StaticUnicodeBuffer[261];
311 #ifdef _STRUCT64
312  UCHAR Padding3[6];
313 #endif
314  PTR(PVOID) DeallocationStack;
315  PTR(PVOID) TlsSlots[64];
316  STRUCT(LIST_ENTRY) TlsLinks;
317  PTR(PVOID) Vdm;
318  PTR(PVOID) ReservedForNtRpc;
319  PTR(PVOID) DbgSsReserved[2];
320 #if (NTDDI_VERSION >= NTDDI_WS03)
321  ULONG HardErrorMode;
322 #else
323  ULONG HardErrorsAreDisabled;
324 #endif
325 #ifdef _STRUCT64
326  UCHAR Padding4[4];
327 #endif
328 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
329  PTR(PVOID) Instrumentation[13 - sizeof(GUID)/sizeof(PTR(PVOID))];
331  PTR(PVOID) SubProcessTag;
332 #if (NTDDI_VERSION >= NTDDI_WIN8) // since ???
333  PTR(PVOID) PerflibData;
334 #else
335  PTR(PVOID) EtwLocalData;
336 #endif
337  PTR(PVOID) EtwTraceData;
338 #elif (NTDDI_VERSION >= NTDDI_WS03)
339  PTR(PVOID) Instrumentation[14];
340  PTR(PVOID) SubProcessTag;
341  PTR(PVOID) EtwTraceData;
342 #else
343  PTR(PVOID) Instrumentation[16];
344 #endif
345  PTR(PVOID) WinSockData;
346  ULONG GdiBatchCount;
347 #if (NTDDI_VERSION >= NTDDI_WIN7)
348  union
349  {
350  PROCESSOR_NUMBER CurrentIdealProcessor;
351  ULONG32 IdealProcessorValue;
352  struct
353  {
354  UCHAR ReservedPad0;
355  UCHAR ReservedPad1;
356  UCHAR ReservedPad2;
357  UCHAR IdealProcessor;
358  };
359  };
360 #elif (NTDDI_VERSION >= NTDDI_LONGHORN)
361  BOOLEAN SpareBool0;
362  BOOLEAN SpareBool1;
363  BOOLEAN SpareBool2;
364  UCHAR IdealProcessor;
365 #else
366  BOOLEAN InDbgPrint;
367  BOOLEAN FreeStackOnTermination;
368  BOOLEAN HasFiberData;
369  UCHAR IdealProcessor;
370 #endif
371 #if (NTDDI_VERSION >= NTDDI_WS03)
372  ULONG GuaranteedStackBytes;
373 #else
374  ULONG Spare3;
375 #endif
376 #ifdef _STRUCT64
377  UCHAR Padding5[4];
378 #endif
379  PTR(PVOID) ReservedForPerf;
380  PTR(PVOID) ReservedForOle;
381  ULONG WaitingOnLoaderLock;
382 #ifdef _STRUCT64
383  UCHAR Padding6[4];
384 #endif
385 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
386  PTR(PVOID) SavedPriorityState;
387 #if (NTDDI_VERSION >= NTDDI_WIN8)
388  PTR(ULONG_PTR) ReservedForCodeCoverage;
389 #else
390  PTR(ULONG_PTR) SoftPatchPtr1;
391 #endif
392  PTR(ULONG_PTR) ThreadPoolData;
393 #elif (NTDDI_VERSION >= NTDDI_WS03)
394  PTR(ULONG_PTR) SparePointer1;
395  PTR(ULONG_PTR) SoftPatchPtr1;
396  PTR(ULONG_PTR) SoftPatchPtr2;
397 #else
398  Wx86ThreadState Wx86Thread;
399 #endif
400  PTR(PVOID*) TlsExpansionSlots;
401 #ifdef _STRUCT64
402  PTR(PVOID) DeallocationBStore;
403  PTR(PVOID) BStoreLimit;
404 #endif
405 #if (NTDDI_VERSION >= NTDDI_WIN10)
406  ULONG MuiGeneration;
407 #else
408  ULONG ImpersonationLocale;
409 #endif
410  ULONG IsImpersonating;
411  PTR(PVOID) NlsCache;
412  PTR(PVOID) pShimData;
413 #if (NTDDI_VERSION >= NTDDI_WIN8)
414  USHORT HeapVirtualAffinity;
415  USHORT LowFragHeapDataSlot;
416 #else
417  ULONG HeapVirtualAffinity;
418 #endif
419 #ifdef _STRUCT64
420  UCHAR Padding7[4];
421 #endif
422  PTR(HANDLE) CurrentTransactionHandle;
423  PTR(PTEB_ACTIVE_FRAME) ActiveFrame;
424 #if (NTDDI_VERSION >= NTDDI_WS03)
425  PTR(PVOID) FlsData;
426 #endif
427 
428 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
429  PTR(PVOID) PreferredLanguages;
430  PTR(PVOID) UserPrefLanguages;
431  PTR(PVOID) MergedPrefLanguages;
432  ULONG MuiImpersonation;
433  union
434  {
435  USHORT CrossTebFlags;
436  struct
437  {
438  USHORT SpareCrossTebBits:16;
439  };
440  };
441  union
442  {
443  USHORT SameTebFlags;
444  struct
445  {
446  USHORT DbgSafeThunkCall:1;
447  USHORT DbgInDebugPrint:1;
448  USHORT DbgHasFiberData:1;
449  USHORT DbgSkipThreadAttach:1;
450  USHORT DbgWerInShipAssertCode:1;
451  USHORT DbgIssuedInitialBp:1;
452  USHORT DbgClonedThread:1;
453  USHORT SpareSameTebBits:9;
454  };
455  };
456  PTR(PVOID) TxnScopeEnterCallback;
457  PTR(PVOID) TxnScopeExitCallback;
458  PTR(PVOID) TxnScopeContext;
460 #else
461  BOOLEAN SafeThunkCall;
462  BOOLEAN BooleanSpare[3];
463 #endif
464 
465 #if (NTDDI_VERSION >= NTDDI_WIN10) // since 10.0.10041.0
466  LONG WowTebOffset;
467 #elif (NTDDI_VERSION >= NTDDI_WIN7)
468  ULONG SpareUlong0;
469 #elif (NTDDI_VERSION >= NTDDI_LONGHORN)
470  ULONG ProcessRundown;
471 #endif
472 
473 #if (NTDDI_VERSION >= NTDDI_WIN7)
474  PTR(PVOID) ResourceRetValue;
475 #elif (NTDDI_VERSION >= NTDDI_LONGHORN)
476  ULONG64 LastSwitchTime;
477  ULONG64 TotalSwitchOutTime;
478  LARGE_INTEGER WaitReasonBitMap;
479 #endif
480 
481 #if (NTDDI_VERSION >= NTDDI_WIN8)
482  PTR(PVOID) ReservedForWdf;
483 #endif
484 
485 #if (NTDDI_VERSION >= NTDDI_WIN10)
486  ULONG64 ReservedForCrt;
487  GUID EffectiveContainerId;
488 #endif
489 
490 } STRUCT(TEB), *STRUCT(PTEB);
_Inout_ PIRP _In_ NTSTATUS ExceptionCode
Definition: cdprocs.h:1782
unsigned int ULONG32
Definition: basetsd.h:125
DWORD LCID
Definition: nls.h:13
LONG LockCount
Definition: comsup.c:6
uint32_t ULONG_PTR
Definition: typedefs.h:63
long LONG
Definition: pedump.c:60
unsigned char BOOLEAN
#define STRUCT(x)
Definition: peb_teb.h:31
_Out_ PCLIENT_ID ClientId
Definition: kefuncs.h:1176
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define PTR(x)
Definition: peb_teb.h:32
unsigned __int64 ULONG64
Definition: imports.h:198
unsigned char UCHAR
Definition: xmlstorage.h:181
_In_ PCEVENT_DESCRIPTOR _In_opt_ LPCGUID ActivityId
Definition: wmifuncs.h:119
Definition: typedefs.h:117
#define _SELECT3264(x32, x64)
Definition: peb_teb.h:41
ULONG_PTR SIZE_T
Definition: typedefs.h:78
Definition: compat.h:492
struct _GUID GUID
PROCESSOR_NUMBER
Definition: ntbasedef.h:649
unsigned short USHORT
Definition: pedump.c:61
unsigned int ULONG
Definition: retypes.h:1

◆ STRUCT() [3/3]

* STRUCT ( _PEB  )

Definition at line 49 of file peb_teb.h.

50 {
51  BOOLEAN InheritedAddressSpace;
52  BOOLEAN ReadImageFileExecOptions;
53  BOOLEAN BeingDebugged;
54 #if (NTDDI_VERSION >= NTDDI_WS03)
55  union
56  {
58  struct
59  {
60  BOOLEAN ImageUsesLargePages:1;
61 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
62  BOOLEAN IsProtectedProcess:1;
63  BOOLEAN IsLegacyProcess:1;
64  BOOLEAN IsImageDynamicallyRelocated:1;
65  BOOLEAN SkipPatchingUser32Forwarders:1;
66  BOOLEAN SpareBits:3;
67 #else
68  BOOLEAN SpareBits:7;
69 #endif
70  };
71  };
72 #else
73  BOOLEAN SpareBool;
74 #endif
75  PTR(HANDLE) Mutant;
76  PTR(PVOID) ImageBaseAddress;
77  PTR(PPEB_LDR_DATA) Ldr;
78  PTR(struct _RTL_USER_PROCESS_PARAMETERS*) ProcessParameters;
79  PTR(PVOID) SubSystemData;
82 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
83  PTR(PVOID) AltThunkSListPtr;
84  PTR(PVOID) IFEOKey;
85  union
86  {
87  ULONG CrossProcessFlags;
88  struct
89  {
90  ULONG ProcessInJob:1;
91  ULONG ProcessInitializing:1;
92  ULONG ProcessUsingVEH:1;
93  ULONG ProcessUsingVCH:1;
94  ULONG ReservedBits0:28;
95  };
96  };
97  union
98  {
99  PTR(PVOID) KernelCallbackTable;
100  PTR(PVOID) UserSharedInfoPtr;
101  };
102 #elif (NTDDI_VERSION >= NTDDI_WS03)
103  PTR(PVOID) AltThunkSListPtr;
104  PTR(PVOID) SparePtr2;
105  ULONG EnvironmentUpdateCount;
106  PTR(PVOID) KernelCallbackTable;
107 #else
108  PTR(PPEBLOCKROUTINE) FastPebLockRoutine;
109  PTR(PPEBLOCKROUTINE) FastPebUnlockRoutine;
110  ULONG EnvironmentUpdateCount;
111  PTR(PVOID) KernelCallbackTable;
112 #endif
113  ULONG SystemReserved[1];
114  ULONG SpareUlong; // AtlThunkSListPtr32
116  ULONG TlsExpansionCounter;
117  PTR(PVOID) TlsBitmap;
118  ULONG TlsBitmapBits[2];
119  PTR(PVOID) ReadOnlySharedMemoryBase;
120 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
121  PTR(PVOID) HotpatchInformation;
122 #else
123  PTR(PVOID) ReadOnlySharedMemoryHeap;
124 #endif
125  PTR(PVOID*) ReadOnlyStaticServerData;
126  PTR(PVOID) AnsiCodePageData;
127  PTR(PVOID) OemCodePageData;
128  PTR(PVOID) UnicodeCaseTableData;
129  ULONG NumberOfProcessors;
131  LARGE_INTEGER CriticalSectionTimeout;
132  PTR(ULONG_PTR) HeapSegmentReserve;
133  PTR(ULONG_PTR) HeapSegmentCommit;
134  PTR(ULONG_PTR) HeapDeCommitTotalFreeThreshold;
135  PTR(ULONG_PTR) HeapDeCommitFreeBlockThreshold;
136  ULONG NumberOfHeaps;
137  ULONG MaximumNumberOfHeaps;
138  PTR(PVOID*) ProcessHeaps;
140  PTR(PVOID) ProcessStarterHelper;
141  ULONG GdiDCAttributeList;
142  PTR(struct _RTL_CRITICAL_SECTION*) LoaderLock;
143  ULONG OSMajorVersion;
144  ULONG OSMinorVersion;
145  USHORT OSBuildNumber;
146  USHORT OSCSDVersion;
147  ULONG OSPlatformId;
148  ULONG ImageSubsystem;
149  ULONG ImageSubsystemMajorVersion;
150  ULONG ImageSubsystemMinorVersion;
151  PTR(ULONG_PTR) ImageProcessAffinityMask;
152  ULONG GdiHandleBuffer[GDI_HANDLE_BUFFER_SIZE];
153  PTR(PPOST_PROCESS_INIT_ROUTINE) PostProcessInitRoutine;
154  PTR(PVOID) TlsExpansionBitmap;
155  ULONG TlsExpansionBitmapBits[32];
157 #if (NTDDI_VERSION >= NTDDI_WINXP)
158  ULARGE_INTEGER AppCompatFlags;
159  ULARGE_INTEGER AppCompatFlagsUser;
160  PTR(PVOID) pShimData;
161  PTR(PVOID) AppCompatInfo;
162  STRUCT(UNICODE_STRING) CSDVersion;
163  PTR(struct _ACTIVATION_CONTEXT_DATA*) ActivationContextData;
164  PTR(struct _ASSEMBLY_STORAGE_MAP*) ProcessAssemblyStorageMap;
165  PTR(struct _ACTIVATION_CONTEXT_DATA*) SystemDefaultActivationContextData;
166  PTR(struct _ASSEMBLY_STORAGE_MAP*) SystemAssemblyStorageMap;
167  PTR(ULONG_PTR) MinimumStackCommit;
168 #endif
169 #if (NTDDI_VERSION >= NTDDI_WS03)
170  PTR(PVOID*) FlsCallback;
171  STRUCT(LIST_ENTRY) FlsListHead;
172  PTR(PVOID) FlsBitmap;
173  ULONG FlsBitmapBits[4]; // [FLS_MAXIMUM_AVAILABLE/(sizeof(ULONG)*8)];
174  ULONG FlsHighIndex;
175 #endif
176 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
177  PTR(PVOID) WerRegistrationData;
178  PTR(PVOID) WerShipAssertPtr;
179 #endif
180 } STRUCT(PEB), *STRUCT(PPEB);
ULONG SessionId
Definition: dllmain.c:28
VOID(NTAPI * PPEBLOCKROUTINE)(PVOID PebLock)
Definition: pstypes.h:628
uint32_t ULONG_PTR
Definition: typedefs.h:63
unsigned char BOOLEAN
NTSTATUS(NTAPI * PPOST_PROCESS_INIT_ROUTINE)(VOID)
Definition: pstypes.h:608
#define STRUCT(x)
Definition: peb_teb.h:31
PGDI_SHARED_HANDLE_TABLE GdiSharedHandleTable
Definition: misc.c:34
#define PTR(x)
Definition: peb_teb.h:32
MmuFreePage * FreeList
Definition: mmuobject.c:60
#define GDI_HANDLE_BUFFER_SIZE
Definition: peb_teb.h:42
Definition: typedefs.h:117
HANDLE ProcessHeap
Definition: servman.c:15
unsigned short USHORT
Definition: pedump.c:61
RTL_CRITICAL_SECTION FastPebLock
Definition: ldrinit.c:79
unsigned int ULONG
Definition: retypes.h:1
ULONG NtGlobalFlag
Definition: init.c:51