ReactOS 0.4.15-dev-7907-g95bf896
peb_teb.h
Go to the documentation of this file.
1/*++ NDK Version: 0098
2
3Copyright (c) Alex Ionescu. All rights reserved.
4
5Header Name:
6
7 peb_teb.h
8
9Abstract:
10
11 Definition of PEB/PEB32/PEB64 and TEB/TEB32/TEB64
12
13Author:
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
49typedef 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
115 PTR(PPEB_FREE_BLOCK) FreeList;
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
185C_ASSERT(FIELD_OFFSET(STRUCT(PEB), Mutant) == 0x08);
186C_ASSERT(FIELD_OFFSET(STRUCT(PEB), Ldr) == 0x18);
188C_ASSERT(FIELD_OFFSET(STRUCT(PEB), TlsExpansionCounter) == 0x070);
191C_ASSERT(FIELD_OFFSET(STRUCT(PEB), LoaderLock) == 0x110);
192C_ASSERT(FIELD_OFFSET(STRUCT(PEB), ImageSubsystem) == 0x128);
193C_ASSERT(FIELD_OFFSET(STRUCT(PEB), ImageProcessAffinityMask) == 0x138);
194C_ASSERT(FIELD_OFFSET(STRUCT(PEB), PostProcessInitRoutine) == 0x230);
196#if (NTDDI_VERSION >= NTDDI_WS03)
197C_ASSERT(FIELD_OFFSET(STRUCT(PEB), FlsHighIndex) == 0x350);
198#endif
199#else
200C_ASSERT(FIELD_OFFSET(STRUCT(PEB), Mutant) == 0x04);
203C_ASSERT(FIELD_OFFSET(STRUCT(PEB), TlsExpansionCounter) == 0x03C);
206C_ASSERT(FIELD_OFFSET(STRUCT(PEB), LoaderLock) == 0x0A0);
207C_ASSERT(FIELD_OFFSET(STRUCT(PEB), ImageSubsystem) == 0x0B4);
208C_ASSERT(FIELD_OFFSET(STRUCT(PEB), ImageProcessAffinityMask) == 0x0C0);
209C_ASSERT(FIELD_OFFSET(STRUCT(PEB), PostProcessInitRoutine) == 0x14C);
211#if (NTDDI_VERSION >= NTDDI_WS03)
212C_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//
220typedef struct STRUCT(_GDI_TEB_BATCH)
221{
223 PTR(HANDLE) HDC;
226
227//
228// Thread Environment Block (TEB)
229//
230typedef 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
493C_ASSERT(FIELD_OFFSET(STRUCT(TEB), NtTib) == 0x000);
494C_ASSERT(FIELD_OFFSET(STRUCT(TEB), EnvironmentPointer) == 0x038);
496C_ASSERT(FIELD_OFFSET(STRUCT(TEB), GdiTebBatch) == 0x2F0);
497C_ASSERT(FIELD_OFFSET(STRUCT(TEB), LastStatusValue) == 0x1250);
498C_ASSERT(FIELD_OFFSET(STRUCT(TEB), Vdm) == 0x1690);
499C_ASSERT(FIELD_OFFSET(STRUCT(TEB), HardErrorMode) == 0x16B0);
500C_ASSERT(FIELD_OFFSET(STRUCT(TEB), GdiBatchCount) == 0x1740);
501C_ASSERT(FIELD_OFFSET(STRUCT(TEB), IdealProcessor) == 0x1747);
502C_ASSERT(FIELD_OFFSET(STRUCT(TEB), WaitingOnLoaderLock) == 0x1760);
503C_ASSERT(FIELD_OFFSET(STRUCT(TEB), TlsExpansionSlots) == 0x1780);
504C_ASSERT(FIELD_OFFSET(STRUCT(TEB), WaitingOnLoaderLock) == 0x1760);
505C_ASSERT(FIELD_OFFSET(STRUCT(TEB), ActiveFrame) == 0x17C0);
506#else
507C_ASSERT(FIELD_OFFSET(STRUCT(TEB), NtTib) == 0x000);
508C_ASSERT(FIELD_OFFSET(STRUCT(TEB), EnvironmentPointer) == 0x01C);
510C_ASSERT(FIELD_OFFSET(STRUCT(TEB), GdiTebBatch) == 0x1D4);
511C_ASSERT(FIELD_OFFSET(STRUCT(TEB), RealClientId) == 0x6B4);
512C_ASSERT(FIELD_OFFSET(STRUCT(TEB), LastStatusValue) == 0xBF4);
514C_ASSERT(FIELD_OFFSET(STRUCT(TEB), GdiBatchCount) == 0xF70);
515C_ASSERT(FIELD_OFFSET(STRUCT(TEB), TlsExpansionSlots) == 0xF94);
516C_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
unsigned char BOOLEAN
HANDLE ProcessHeap
Definition: servman.c:15
unsigned int ULONG32
Definition: basetsd.h:123
_Inout_ PIRP _In_ NTSTATUS ExceptionCode
Definition: cdprocs.h:1774
Definition: bufpool.h:45
LONG LockCount
Definition: comsup.c:6
#define STRUCT
#define GDI_BATCH_BUFFER_SIZE
Definition: compat.h:828
ULONG SessionId
Definition: dllmain.c:28
PGDI_SHARED_HANDLE_TABLE GdiSharedHandleTable
Definition: misc.c:34
#define PTR
Definition: i386-dis.c:15
NTSTATUS(NTAPI * PPOST_PROCESS_INIT_ROUTINE)(VOID)
Definition: pstypes.h:624
VOID(NTAPI * PPEBLOCKROUTINE)(PVOID PebLock)
Definition: pstypes.h:644
#define C_ASSERT(e)
Definition: intsafe.h:73
RTL_CRITICAL_SECTION FastPebLock
Definition: ldrinit.c:79
unsigned __int64 ULONG64
Definition: imports.h:198
static HDC
Definition: imagelist.c:92
PROCESSOR_NUMBER
Definition: ntbasedef.h:642
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
ULONG NtGlobalFlag
Definition: init.c:54
#define _SELECT3264(x32, x64)
Definition: peb_teb.h:41
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
DWORD LCID
Definition: nls.h:13
#define GDI_HANDLE_BUFFER_SIZE
Definition: ntddk_ex.h:234
Definition: typedefs.h:120
Definition: compat.h:836
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
ULONG_PTR SIZE_T
Definition: typedefs.h:80
uint32_t ULONG_PTR
Definition: typedefs.h:65
uint32_t ULONG
Definition: typedefs.h:59
_In_ PCEVENT_DESCRIPTOR _In_opt_ LPCGUID ActivityId
Definition: wmifuncs.h:120
_Out_ PCLIENT_ID ClientId
Definition: kefuncs.h:1151
unsigned char UCHAR
Definition: xmlstorage.h:181
__wchar_t WCHAR
Definition: xmlstorage.h:180