ReactOS  0.4.15-dev-5462-g4d0d22a
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 */
18  IQS_SAME
19  (
21  ULONG,
23  ),
24 
25  /* ProcessQuotaLimits */
26  IQS_SAME
27  (
29  ULONG,
31  ),
32 
33  /* ProcessIoCounters */
34  IQS_SAME
35  (
37  ULONG,
39  ),
40 
41  /* ProcessVmCounters */
42  IQS_SAME
43  (
45  ULONG,
47  ),
48 
49  /* ProcessTimes */
50  IQS_SAME
51  (
53  ULONG,
55  ),
56 
57  /* ProcessBasePriority */
58  IQS_SAME
59  (
60  KPRIORITY,
61  ULONG,
62  ICIF_SET
63  ),
64 
65  /* ProcessRaisePriority */
66  IQS_SAME
67  (
68  ULONG,
69  ULONG,
70  ICIF_SET
71  ),
72 
73  /* ProcessDebugPort */
74  IQS_SAME
75  (
76  HANDLE,
77  ULONG,
79  ),
80 
81  /* ProcessExceptionPort */
82  IQS_SAME
83  (
84  HANDLE,
85  ULONG,
86  ICIF_SET
87  ),
88 
89  /* ProcessAccessToken */
90  IQS_SAME
91  (
93  ULONG,
94  ICIF_SET
95  ),
96 
97  /* ProcessLdtInformation */
98  IQS_SAME
99  (
101  ULONG,
103  ),
104 
105  /* ProcessLdtSize */
106  IQS_SAME
107  (
109  ULONG,
110  ICIF_SET
111  ),
112 
113  /* ProcessDefaultHardErrorMode */
114  IQS_SAME
115  (
116  ULONG,
117  ULONG,
119  ),
120 
121  /* ProcessIoPortHandlers */
122  IQS_SAME
123  (
124  UCHAR,
125  ULONG,
126  ICIF_SET
127  ),
128 
129  /* ProcessPooledUsageAndLimits */
130  IQS_SAME
131  (
133  ULONG,
134  ICIF_QUERY
135  ),
136 
137  /* ProcessWorkingSetWatch */
138  IQS_SAME
139  (
141  ULONG,
143  ),
144 
145  /* ProcessUserModeIOPL is only implemented in x86 */
146 #if defined (_X86_)
148  (
149  ULONG,
150  ICIF_SET
151  ),
152 #else
153  IQS_NONE,
154 #endif
155 
156  /* ProcessEnableAlignmentFaultFixup */
157  IQS
158  (
159  BOOLEAN,
160  CHAR,
161  BOOLEAN,
162  CHAR,
163  ICIF_SET
164  ),
165 
166  /* ProcessPriorityClass */
167  IQS
168  (
170  ULONG,
172  CHAR,
174  ),
175 
176  /* ProcessWx86Information */
177  IQS_SAME
178  (
179  ULONG,
180  ULONG,
182  ),
183 
184  /* ProcessHandleCount */
185  IQS_SAME
186  (
187  ULONG,
188  ULONG,
189  ICIF_QUERY
190  ),
191 
192  /* ProcessAffinityMask */
193  IQS_SAME
194  (
195  KAFFINITY,
196  ULONG,
197  ICIF_SET
198  ),
199 
200  /* ProcessPriorityBoost */
201  IQS_SAME
202  (
203  ULONG,
204  ULONG,
206  ),
207 
208  /* ProcessDeviceMap */
209  IQS
210  (
212  ULONG,
214  ULONG,
216  ),
217 
218  /* ProcessSessionInformation */
219  IQS_SAME
220  (
222  ULONG,
224  ),
225 
226  /* ProcessForegroundInformation */
227  IQS
228  (
229  CHAR,
230  CHAR,
231  BOOLEAN,
232  CHAR,
233  ICIF_SET
234  ),
235 
236  /* ProcessWow64Information */
237  IQS_SAME
238  (
239  ULONG_PTR,
240  ULONG,
241  ICIF_QUERY
242  ),
243 
244  /* ProcessImageFileName */
245  IQS_SAME
246  (
248  ULONG,
250  ),
251 
252  /* ProcessLUIDDeviceMapsEnabled */
253  IQS_SAME
254  (
255  ULONG,
256  ULONG,
257  ICIF_QUERY
258  ),
259 
260  /* ProcessBreakOnTermination */
261  IQS_SAME
262  (
263  ULONG,
264  ULONG,
266  ),
267 
268  /* ProcessDebugObjectHandle */
269  IQS_SAME
270  (
271  HANDLE,
272  ULONG,
273  ICIF_QUERY
274  ),
275 
276  /* ProcessDebugFlags */
277  IQS_SAME
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 */
298  IQS_SAME
299  (
300  ULONG,
301  ULONG,
303  ),
304 
305  /* ProcessTlsInformation */
306  IQS_NONE,
307 
308  /* ProcessCookie */
309  IQS_SAME
310  (
311  ULONG,
312  ULONG,
313  ICIF_QUERY
314  ),
315 
316  /* ProcessImageInformation */
317  IQS_SAME
318  (
320  ULONG,
321  ICIF_QUERY
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 */
340  IQS_SAME
341  (
342  CHAR,
343  CHAR,
344  ICIF_NONE
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 */
363  IQS_SAME
364  (
366  ULONG,
367  ICIF_QUERY
368  ),
369 
370  /* ThreadTimes */
371  IQS_SAME
372  (
374  ULONG,
375  ICIF_QUERY
376  ),
377 
378  /* ThreadPriority */
379  IQS_SAME
380  (
381  KPRIORITY,
382  ULONG,
383  ICIF_SET
384  ),
385 
386  /* ThreadBasePriority */
387  IQS_SAME
388  (
389  LONG,
390  ULONG,
391  ICIF_SET
392  ),
393 
394  /* ThreadAffinityMask */
395  IQS_SAME
396  (
397  KAFFINITY,
398  ULONG,
399  ICIF_SET
400  ),
401 
402  /* ThreadImpersonationToken */
403  IQS_SAME
404  (
405  HANDLE,
406  ULONG,
407  ICIF_SET
408  ),
409 
410  /* ThreadDescriptorTableEntry is only implemented in x86 as well as the descriptor entry */
411  #if defined(_X86_)
412  /* ThreadDescriptorTableEntry */
413  IQS_SAME
414  (
415  DESCRIPTOR_TABLE_ENTRY,
416  ULONG,
417  ICIF_QUERY
418  ),
419  #else
420  IQS_NONE,
421  #endif
422 
423  /* ThreadEnableAlignmentFaultFixup */
424  IQS
425  (
426  CHAR,
427  CHAR,
428  BOOLEAN,
429  UCHAR,
430  ICIF_SET
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 */
447  IQS_SAME
448  (
449  ULONG,
450  ULONG,
451  ICIF_SET
452  ),
453 
454  /* ThreadPerformanceCount */
455  IQS_SAME
456  (
458  ULONG,
459  ICIF_QUERY
460  ),
461 
462  /* ThreadAmILastThread */
463  IQS_SAME
464  (
465  ULONG,
466  ULONG,
467  ICIF_QUERY
468  ),
469 
470  /* ThreadIdealProcessor */
471  IQS_SAME
472  (
473  ULONG_PTR,
474  ULONG,
475  ICIF_SET
476  ),
477 
478  /* ThreadPriorityBoost */
479  IQS
480  (
481  ULONG,
482  ULONG,
483  ULONG_PTR,
484  ULONG,
486  ),
487 
488  /* ThreadSetTlsArrayAddress */
489  IQS_SAME
490  (
491  PVOID,
492  ULONG,
494  ),
495 
496  /* ThreadIsIoPending */
497  IQS_SAME
498  (
499  ULONG,
500  ULONG,
501  ICIF_QUERY
502  ),
503 
504  /* ThreadHideFromDebugger */
505  IQS_SAME
506  (
507  CHAR,
508  ULONG,
510  ),
511 
512  /* ThreadBreakOnTermination */
513  IQS_SAME
514  (
515  ULONG,
516  ULONG,
518  ),
519 
520  /* ThreadSwitchLegacyState */
521  IQS_SAME
522  (
523  ULONG,
524  ULONG,
525  ICIF_SET
526  ),
527 
528  /* ThreadIsTerminated */
529  IQS_SAME
530  (
531  ULONG,
532  ULONG,
533  ICIF_QUERY
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 };
char CHAR
Definition: xmlstorage.h:175
#define RTL_FIELD_TYPE(type, field)
Definition: ntbasedef.h:667
#define ICIF_SET_SIZE_VARIABLE
Definition: icif.h:21
LONG KPRIORITY
Definition: compat.h:803
static BOOL Set
Definition: pageheap.c:10
uint32_t ULONG_PTR
Definition: typedefs.h:65
long LONG
Definition: pedump.c:60
#define ICIF_SET
Definition: icif.h:19
unsigned char BOOLEAN
#define IQS(TypeQuery, AlignmentQuery, TypeSet, AlignmentSet, Flags)
Definition: icif.h:40
#define ICIF_SIZE_VARIABLE
Definition: icif.h:22
BOOL Query(LPCTSTR *ServiceArgs, DWORD ArgCount, BOOL bExtended)
Definition: query.c:292
unsigned char UCHAR
Definition: xmlstorage.h:181
#define ICIF_QUERY_SIZE_VARIABLE
Definition: icif.h:20
#define IQS_NO_TYPE_LENGTH(Alignment, Flags)
Definition: icif.h:43
ULONG_PTR KAFFINITY
Definition: compat.h:85
#define ICIF_QUERY
Definition: icif.h:18
unsigned int ULONG
Definition: retypes.h:1
#define IQS_NONE
Definition: icif.h:46
static const INFORMATION_CLASS_INFO PsThreadInfoClass[]
Definition: ps_i.h:360
#define IQS_SAME(Type, Alignment, Flags)
Definition: icif.h:37
#define ICIF_NONE
Definition: icif.h:17
static const INFORMATION_CLASS_INFO PsProcessInfoClass[]
Definition: ps_i.h:15