ReactOS  0.4.13-dev-257-gfabbd7c
peb_teb.h
Go to the documentation of this file.
1 /*++ NDK Version: 0098
2 
3 Copyright (c) Alex Ionescu. All rights reserved.
4 
5 Header Name:
6 
7  peb_teb.h
8 
9 Abstract:
10 
11  Definition of PEB/PEB32/PEB64 and TEB/TEB32/TEB64
12 
13 Author:
14 
15  Timo Kreuzer (timo.kreuzer@reactos.org)
16 
17 --*/
18 
19 #include <rtltypes.h>
20 
21 #define PASTE2(x,y) x##y
22 #define PASTE(x,y) PASTE2(x,y)
23 
24 #ifdef EXPLICIT_32BIT
25  #define STRUCT(x) PASTE(x,32)
26  #define PTR(x) ULONG
27 #elif defined(EXPLICIT_64BIT)
28  #define STRUCT(x) PASTE(x,64)
29  #define PTR(x) ULONG64
30 #else
31  #define STRUCT(x) x
32  #define PTR(x) x
33 #endif
34 
35 #if (defined(_WIN64) && !defined(EXPLICIT_32BIT)) || defined(EXPLICIT_64BIT)
36  #define _STRUCT64
37  #define _SELECT3264(x32, x64) (x64)
38  #define GDI_HANDLE_BUFFER_SIZE 60
39 #else
40  #undef _STRUCT64
41  #define _SELECT3264(x32, x64) (x32)
42  #define GDI_HANDLE_BUFFER_SIZE 34
43 #endif
44 
45 #if defined(_NTDDK_INCLUDED_) || defined(_NTIFS_)
46 #define PPEB PPEB_RENAMED
47 #endif
48 
49 typedef struct STRUCT(_PEB)
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);
181 
182 #undef PPEB
183 
184 #ifdef _STRUCT64
185 C_ASSERT(FIELD_OFFSET(STRUCT(PEB), Mutant) == 0x08);
186 C_ASSERT(FIELD_OFFSET(STRUCT(PEB), Ldr) == 0x18);
188 C_ASSERT(FIELD_OFFSET(STRUCT(PEB), TlsExpansionCounter) == 0x070);
191 C_ASSERT(FIELD_OFFSET(STRUCT(PEB), LoaderLock) == 0x110);
192 C_ASSERT(FIELD_OFFSET(STRUCT(PEB), ImageSubsystem) == 0x128);
193 C_ASSERT(FIELD_OFFSET(STRUCT(PEB), ImageProcessAffinityMask) == 0x138);
194 C_ASSERT(FIELD_OFFSET(STRUCT(PEB), PostProcessInitRoutine) == 0x230);
196 #if (NTDDI_VERSION >= NTDDI_WS03)
197 C_ASSERT(FIELD_OFFSET(STRUCT(PEB), FlsHighIndex) == 0x350);
198 #endif
199 #else
200 C_ASSERT(FIELD_OFFSET(STRUCT(PEB), Mutant) == 0x04);
201 C_ASSERT(FIELD_OFFSET(STRUCT(PEB), Ldr) == 0x0C);
203 C_ASSERT(FIELD_OFFSET(STRUCT(PEB), TlsExpansionCounter) == 0x03C);
206 C_ASSERT(FIELD_OFFSET(STRUCT(PEB), LoaderLock) == 0x0A0);
207 C_ASSERT(FIELD_OFFSET(STRUCT(PEB), ImageSubsystem) == 0x0B4);
208 C_ASSERT(FIELD_OFFSET(STRUCT(PEB), ImageProcessAffinityMask) == 0x0C0);
209 C_ASSERT(FIELD_OFFSET(STRUCT(PEB), PostProcessInitRoutine) == 0x14C);
211 #if (NTDDI_VERSION >= NTDDI_WS03)
212 C_ASSERT(FIELD_OFFSET(STRUCT(PEB), FlsHighIndex) == 0x22C);
213 #endif
214 #endif
215 
216 #define GDI_BATCH_BUFFER_SIZE 0x136
217 //
218 // GDI Batch Descriptor
219 //
220 typedef struct STRUCT(_GDI_TEB_BATCH)
221 {
222  ULONG Offset;
223  PTR(HANDLE) HDC;
226 
227 //
228 // Thread Environment Block (TEB)
229 //
230 typedef struct STRUCT(_TEB)
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);
491 
492 #ifdef _STRUCT64
493 C_ASSERT(FIELD_OFFSET(STRUCT(TEB), NtTib) == 0x000);
494 C_ASSERT(FIELD_OFFSET(STRUCT(TEB), EnvironmentPointer) == 0x038);
496 C_ASSERT(FIELD_OFFSET(STRUCT(TEB), GdiTebBatch) == 0x2F0);
497 C_ASSERT(FIELD_OFFSET(STRUCT(TEB), LastStatusValue) == 0x1250);
498 C_ASSERT(FIELD_OFFSET(STRUCT(TEB), Vdm) == 0x1690);
499 C_ASSERT(FIELD_OFFSET(STRUCT(TEB), HardErrorMode) == 0x16B0);
500 C_ASSERT(FIELD_OFFSET(STRUCT(TEB), GdiBatchCount) == 0x1740);
501 C_ASSERT(FIELD_OFFSET(STRUCT(TEB), IdealProcessor) == 0x1747);
502 C_ASSERT(FIELD_OFFSET(STRUCT(TEB), WaitingOnLoaderLock) == 0x1760);
503 C_ASSERT(FIELD_OFFSET(STRUCT(TEB), TlsExpansionSlots) == 0x1780);
504 C_ASSERT(FIELD_OFFSET(STRUCT(TEB), WaitingOnLoaderLock) == 0x1760);
505 C_ASSERT(FIELD_OFFSET(STRUCT(TEB), ActiveFrame) == 0x17C0);
506 #else
507 C_ASSERT(FIELD_OFFSET(STRUCT(TEB), NtTib) == 0x000);
508 C_ASSERT(FIELD_OFFSET(STRUCT(TEB), EnvironmentPointer) == 0x01C);
510 C_ASSERT(FIELD_OFFSET(STRUCT(TEB), GdiTebBatch) == 0x1D4);
511 C_ASSERT(FIELD_OFFSET(STRUCT(TEB), RealClientId) == 0x6B4);
512 C_ASSERT(FIELD_OFFSET(STRUCT(TEB), LastStatusValue) == 0xBF4);
513 C_ASSERT(FIELD_OFFSET(STRUCT(TEB), Vdm) == 0xF18);
514 C_ASSERT(FIELD_OFFSET(STRUCT(TEB), GdiBatchCount) == 0xF70);
515 C_ASSERT(FIELD_OFFSET(STRUCT(TEB), TlsExpansionSlots) == 0xF94);
516 C_ASSERT(FIELD_OFFSET(STRUCT(TEB), ActiveFrame) == 0xFB0);
517 #endif
518 
519 #undef _STRUCT64
520 #undef _SELECT3264
521 #undef PTR
522 #undef STRUCT
523 #undef PASTE
524 #undef PASTE2
525 #undef GDI_HANDLE_BUFFER_SIZE
_Inout_ PIRP _In_ NTSTATUS ExceptionCode
Definition: cdprocs.h:1782
unsigned int ULONG32
Definition: basetsd.h:125
ULONG SessionId
Definition: dllmain.c:28
static HDC
Definition: imagelist.c:92
DWORD LCID
Definition: nls.h:13
VOID(NTAPI * PPEBLOCKROUTINE)(PVOID PebLock)
Definition: pstypes.h:628
LONG LockCount
Definition: comsup.c:6
uint32_t ULONG_PTR
Definition: typedefs.h:63
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
long LONG
Definition: pedump.c:60
unsigned char BOOLEAN
NTSTATUS(NTAPI * PPOST_PROCESS_INIT_ROUTINE)(VOID)
Definition: pstypes.h:608
Definition: bufpool.h:45
#define STRUCT(x)
Definition: peb_teb.h:31
_Out_ PCLIENT_ID ClientId
Definition: kefuncs.h:1176
__wchar_t WCHAR
Definition: xmlstorage.h:180
PGDI_SHARED_HANDLE_TABLE GdiSharedHandleTable
Definition: misc.c:34
#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
MmuFreePage * FreeList
Definition: mmuobject.c:60
#define GDI_HANDLE_BUFFER_SIZE
Definition: peb_teb.h:42
Definition: typedefs.h:117
#define _SELECT3264(x32, x64)
Definition: peb_teb.h:41
HANDLE ProcessHeap
Definition: servman.c:15
ULONG_PTR SIZE_T
Definition: typedefs.h:78
Definition: compat.h:484
struct _GUID GUID
PROCESSOR_NUMBER
Definition: ntbasedef.h:649
unsigned short USHORT
Definition: pedump.c:61
RTL_CRITICAL_SECTION FastPebLock
Definition: ldrinit.c:79
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:254
unsigned int ULONG
Definition: retypes.h:1
ULONG NtGlobalFlag
Definition: init.c:51
C_ASSERT(FIELD_OFFSET(STRUCT(PEB), Mutant)==0x04)
#define GDI_BATCH_BUFFER_SIZE
Definition: peb_teb.h:216