Process Hacker
ntpebteb.h
Go to the documentation of this file.
1 #ifndef _NTPEBTEB_H
2 #define _NTPEBTEB_H
3 
5 typedef struct _RTL_CRITICAL_SECTION *PRTL_CRITICAL_SECTION;
6 
7 // symbols
8 typedef struct _PEB
9 {
12  BOOLEAN BeingDebugged;
13  union
14  {
15  BOOLEAN BitField;
16  struct
17  {
18  BOOLEAN ImageUsesLargePages : 1;
19  BOOLEAN IsProtectedProcess : 1;
22  BOOLEAN IsPackagedProcess : 1;
23  BOOLEAN IsAppContainer : 1;
25  BOOLEAN SpareBits : 1;
26  };
27  };
28  HANDLE Mutant;
29 
32  PRTL_USER_PROCESS_PARAMETERS ProcessParameters;
34  PVOID ProcessHeap;
37  PVOID IFEOKey;
38  union
39  {
41  struct
42  {
43  ULONG ProcessInJob : 1;
45  ULONG ProcessUsingVEH : 1;
46  ULONG ProcessUsingVCH : 1;
47  ULONG ProcessUsingFTH : 1;
48  ULONG ReservedBits0 : 27;
49  };
51  };
52  union
53  {
56  };
57  ULONG SystemReserved[1];
59  PVOID ApiSetMap;
61  PVOID TlsBitmap;
62  ULONG TlsBitmapBits[2];
69 
71  ULONG NtGlobalFlag;
72 
73  LARGE_INTEGER CriticalSectionTimeout;
78 
81  PVOID *ProcessHeaps;
82 
86 
88 
91  USHORT OSBuildNumber;
92  USHORT OSCSDVersion;
93  ULONG OSPlatformId;
100 
103 
104  ULONG SessionId;
105 
106  ULARGE_INTEGER AppCompatFlags;
107  ULARGE_INTEGER AppCompatFlagsUser;
108  PVOID pShimData;
110 
112 
117 
119 
120  PVOID *FlsCallback;
121  LIST_ENTRY FlsListHead;
122  PVOID FlsBitmap;
123  ULONG FlsBitmapBits[FLS_MAXIMUM_AVAILABLE / (sizeof(ULONG) * 8)];
125 
130  union
131  {
133  struct
134  {
138  ULONG SpareTracingBits : 29;
139  };
140  };
142 } PEB, *PPEB;
143 
144 #define GDI_BATCH_BUFFER_SIZE 310
145 
146 typedef struct _GDI_TEB_BATCH
147 {
148  ULONG Offset;
149  ULONG_PTR HDC;
152 
154 {
155  ULONG Flags;
156  PSTR FrameName;
158 
159 typedef struct _TEB_ACTIVE_FRAME
160 {
161  ULONG Flags;
163  PTEB_ACTIVE_FRAME_CONTEXT Context;
165 
166 typedef struct _TEB
167 {
168  NT_TIB NtTib;
169 
175 
180  ULONG User32Reserved[26];
181  ULONG UserReserved[5];
185  PVOID SystemReserved1[54];
186  NTSTATUS ExceptionCode;
188 #ifdef _WIN64
189  UCHAR SpareBytes[24];
190 #else
191  UCHAR SpareBytes[36];
192 #endif
193  ULONG TxFsContext;
194 
201  ULONG_PTR Win32ClientInfo[62];
202  PVOID glDispatchTable[233];
203  ULONG_PTR glReserved1[29];
204  PVOID glReserved2;
206  PVOID glSection;
207  PVOID glTable;
208  PVOID glCurrentRC;
209  PVOID glContext;
210 
211  NTSTATUS LastStatusValue;
214 
216  PVOID TlsSlots[64];
217  LIST_ENTRY TlsLinks;
218 
219  PVOID Vdm;
221  PVOID DbgSsReserved[2];
222 
224 #ifdef _WIN64
225  PVOID Instrumentation[11];
226 #else
227  PVOID Instrumentation[9];
228 #endif
230 
234  PVOID WinSockData;
236 
237  union
238  {
239  PROCESSOR_NUMBER CurrentIdealProcessor;
241  struct
242  {
247  };
248  };
249 
255  ULONG_PTR SoftPatchPtr1;
258 #ifdef _WIN64
259  PVOID DeallocationBStore;
260  PVOID BStoreLimit;
261 #endif
264  PVOID NlsCache;
265  PVOID pShimData;
268  PTEB_ACTIVE_FRAME ActiveFrame;
269  PVOID FlsData;
270 
275 
276  union
277  {
279  USHORT SpareCrossTebBits : 16;
280  };
281  union
282  {
283  USHORT SameTebFlags;
284  struct
285  {
286  USHORT SafeThunkCall : 1;
287  USHORT InDebugPrint : 1;
288  USHORT HasFiberData : 1;
289  USHORT SkipThreadAttach : 1;
291  USHORT RanProcessInit : 1;
292  USHORT ClonedThread : 1;
293  USHORT SuppressDebugMsg : 1;
296  USHORT InitialThread : 1;
297  USHORT SessionAware : 1;
298  USHORT SpareSameTebBits : 4;
299  };
300  };
301 
305  ULONG LockCount;
306  ULONG SpareUlong0;
309 } TEB, *PTEB;
310 
311 #endif