ReactOS 0.4.15-dev-7681-g776c3a3
ps_i.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Kernel
3 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4 * PURPOSE: Info Classes for the Process Manager
5 * COPYRIGHT: Copyright Alex Ionescu <alex.ionescu@reactos.org>
6 * Copyright Thomas Weidenmueller <w3seek@reactos.org>
7 * Copyright 2020-2021 George Bișoc <george.bisoc@reactos.org>
8 */
9
10#include "icif.h"
11
12//
13// Process Information Classes
14//
16{
17 /* ProcessBasicInformation */
19 (
21 ULONG,
23 ),
24
25 /* ProcessQuotaLimits */
27 (
29 ULONG,
31 ),
32
33 /* ProcessIoCounters */
35 (
37 ULONG,
39 ),
40
41 /* ProcessVmCounters */
43 (
45 ULONG,
47 ),
48
49 /* ProcessTimes */
51 (
53 ULONG,
55 ),
56
57 /* ProcessBasePriority */
59 (
61 ULONG,
63 ),
64
65 /* ProcessRaisePriority */
67 (
68 ULONG,
69 ULONG,
71 ),
72
73 /* ProcessDebugPort */
75 (
76 HANDLE,
77 ULONG,
79 ),
80
81 /* ProcessExceptionPort */
83 (
84 HANDLE,
85 ULONG,
87 ),
88
89 /* ProcessAccessToken */
91 (
93 ULONG,
95 ),
96
97 /* ProcessLdtInformation */
99 (
101 ULONG,
103 ),
104
105 /* ProcessLdtSize */
107 (
109 ULONG,
111 ),
112
113 /* ProcessDefaultHardErrorMode */
115 (
116 ULONG,
117 ULONG,
119 ),
120
121 /* ProcessIoPortHandlers */
123 (
124 UCHAR,
125 ULONG,
127 ),
128
129 /* ProcessPooledUsageAndLimits */
131 (
133 ULONG,
135 ),
136
137 /* ProcessWorkingSetWatch */
139 (
141 ULONG,
143 ),
144
145 /* ProcessUserModeIOPL is only implemented in x86 */
146#if defined (_X86_)
148 (
149 ULONG,
151 ),
152#else
153 IQS_NONE,
154#endif
155
156 /* ProcessEnableAlignmentFaultFixup */
157 IQS
158 (
159 BOOLEAN,
160 CHAR,
161 BOOLEAN,
162 CHAR,
164 ),
165
166 /* ProcessPriorityClass */
167 IQS
168 (
170 ULONG,
172 CHAR,
174 ),
175
176 /* ProcessWx86Information */
178 (
179 ULONG,
180 ULONG,
182 ),
183
184 /* ProcessHandleCount */
186 (
187 ULONG,
188 ULONG,
190 ),
191
192 /* ProcessAffinityMask */
194 (
195 KAFFINITY,
196 ULONG,
198 ),
199
200 /* ProcessPriorityBoost */
202 (
203 ULONG,
204 ULONG,
206 ),
207
208 /* ProcessDeviceMap */
209 IQS
210 (
212 ULONG,
214 ULONG,
216 ),
217
218 /* ProcessSessionInformation */
220 (
222 ULONG,
224 ),
225
226 /* ProcessForegroundInformation */
227 IQS
228 (
229 CHAR,
230 CHAR,
231 BOOLEAN,
232 CHAR,
234 ),
235
236 /* ProcessWow64Information */
238 (
239 ULONG_PTR,
240 ULONG,
242 ),
243
244 /* ProcessImageFileName */
246 (
248 ULONG,
250 ),
251
252 /* ProcessLUIDDeviceMapsEnabled */
254 (
255 ULONG,
256 ULONG,
258 ),
259
260 /* ProcessBreakOnTermination */
262 (
263 ULONG,
264 ULONG,
266 ),
267
268 /* ProcessDebugObjectHandle */
270 (
271 HANDLE,
272 ULONG,
274 ),
275
276 /* ProcessDebugFlags */
278 (
279 ULONG,
280 ULONG,
282 ),
283
284 /* ProcessHandleTracing */
285 IQS
286 (
288 ULONG,
289 ULONG,
290 ULONG,
292 ),
293
294 /* ProcessIoPriority */
295 IQS_NONE,
296
297 /* ProcessExecuteFlags */
299 (
300 ULONG,
301 ULONG,
303 ),
304
305 /* ProcessTlsInformation */
306 IQS_NONE,
307
308 /* ProcessCookie */
310 (
311 ULONG,
312 ULONG,
314 ),
315
316 /* ProcessImageInformation */
318 (
320 ULONG,
322 ),
323
324 /* ProcessCycleTime */
325 IQS_NONE,
326
327 /* ProcessPagePriority */
328 IQS_NONE,
329
330 /* ProcessInstrumentationCallback */
331 IQS_NONE,
332
333 /* ProcessThreadStackAllocation */
334 IQS_NONE,
335
336 /* ProcessWorkingSetWatchEx */
337 IQS_NONE,
338
339 /* ProcessImageFileNameWin32 */
341 (
342 CHAR,
343 CHAR,
345 ),
346
347 /* ProcessImageFileMapping */
348 IQS_NONE,
349
350 /* ProcessAffinityUpdateMode */
351 IQS_NONE,
352
353 /* ProcessMemoryAllocationMode */
354 IQS_NONE,
355};
356
357//
358// Thread Information Classes
359//
361{
362 /* ThreadBasicInformation */
364 (
366 ULONG,
368 ),
369
370 /* ThreadTimes */
372 (
374 ULONG,
376 ),
377
378 /* ThreadPriority */
380 (
381 KPRIORITY,
382 ULONG,
384 ),
385
386 /* ThreadBasePriority */
388 (
389 LONG,
390 ULONG,
392 ),
393
394 /* ThreadAffinityMask */
396 (
397 KAFFINITY,
398 ULONG,
400 ),
401
402 /* ThreadImpersonationToken */
404 (
405 HANDLE,
406 ULONG,
408 ),
409
410 /* ThreadDescriptorTableEntry is only implemented in x86 as well as the descriptor entry */
411 #if defined(_X86_)
412 /* ThreadDescriptorTableEntry */
414 (
415 DESCRIPTOR_TABLE_ENTRY,
416 ULONG,
418 ),
419 #else
420 IQS_NONE,
421 #endif
422
423 /* ThreadEnableAlignmentFaultFixup */
424 IQS
425 (
426 CHAR,
427 CHAR,
428 BOOLEAN,
429 UCHAR,
431 ),
432
433 /* ThreadEventPair_Reusable */
434 IQS_NONE,
435
436 /* ThreadQuerySetWin32StartAddress */
437 IQS
438 (
439 PVOID,
440 ULONG,
441 ULONG_PTR,
442 ULONG,
444 ),
445
446 /* ThreadZeroTlsCell */
448 (
449 ULONG,
450 ULONG,
452 ),
453
454 /* ThreadPerformanceCount */
456 (
458 ULONG,
460 ),
461
462 /* ThreadAmILastThread */
464 (
465 ULONG,
466 ULONG,
468 ),
469
470 /* ThreadIdealProcessor */
472 (
473 ULONG_PTR,
474 ULONG,
476 ),
477
478 /* ThreadPriorityBoost */
479 IQS
480 (
481 ULONG,
482 ULONG,
483 ULONG_PTR,
484 ULONG,
486 ),
487
488 /* ThreadSetTlsArrayAddress */
490 (
491 PVOID,
492 ULONG,
494 ),
495
496 /* ThreadIsIoPending */
498 (
499 ULONG,
500 ULONG,
502 ),
503
504 /* ThreadHideFromDebugger */
506 (
507 CHAR,
508 ULONG,
510 ),
511
512 /* ThreadBreakOnTermination */
514 (
515 ULONG,
516 ULONG,
518 ),
519
520 /* ThreadSwitchLegacyState */
522 (
523 ULONG,
524 ULONG,
526 ),
527
528 /* ThreadIsTerminated */
530 (
531 ULONG,
532 ULONG,
534 ),
535
536 /* ThreadLastSystemCall */
537 IQS_NONE,
538
539 /* ThreadIoPriority */
540 IQS_NONE,
541
542 /* ThreadCycleTime */
543 IQS_NONE,
544
545 /* ThreadPagePriority */
546 IQS_NONE,
547
548 /* ThreadActualBasePriority */
549 IQS_NONE,
550
551 /* ThreadTebInformation */
552 IQS_NONE,
553
554 /* ThreadCSwitchMon */
555 IQS_NONE,
556};
unsigned char BOOLEAN
BOOL Query(LPCTSTR *ServiceArgs, DWORD ArgCount, BOOL bExtended)
Definition: query.c:292
ULONG_PTR KAFFINITY
Definition: compat.h:85
LONG KPRIORITY
Definition: compat.h:803
#define ICIF_QUERY_SIZE_VARIABLE
Definition: icif.h:20
#define IQS_NONE
Definition: icif.h:46
#define ICIF_QUERY
Definition: icif.h:18
#define ICIF_SET
Definition: icif.h:19
#define ICIF_SET_SIZE_VARIABLE
Definition: icif.h:21
#define ICIF_NONE
Definition: icif.h:17
#define IQS(TypeQuery, AlignmentQuery, TypeSet, AlignmentSet, Flags)
Definition: icif.h:40
#define IQS_NO_TYPE_LENGTH(Alignment, Flags)
Definition: icif.h:43
#define ICIF_SIZE_VARIABLE
Definition: icif.h:22
#define IQS_SAME(Type, Alignment, Flags)
Definition: icif.h:37
#define RTL_FIELD_TYPE(type, field)
Definition: ntbasedef.h:667
static BOOL Set
Definition: pageheap.c:10
long LONG
Definition: pedump.c:60
static const INFORMATION_CLASS_INFO PsThreadInfoClass[]
Definition: ps_i.h:360
static const INFORMATION_CLASS_INFO PsProcessInfoClass[]
Definition: ps_i.h:15
uint32_t ULONG_PTR
Definition: typedefs.h:65
uint32_t ULONG
Definition: typedefs.h:59
unsigned char UCHAR
Definition: xmlstorage.h:181
char CHAR
Definition: xmlstorage.h:175