ReactOS 0.4.17-dev-806-gffa4164
ps.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Kernel
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: ntoskrnl/include/internal/ps.h
5 * PURPOSE: Internal header for the Process Manager
6 * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
7 */
8
9//
10// Define this if you want debugging support
11//
12#define _PS_DEBUG_ 0x00
13
14//
15// These define the Debug Masks Supported
16//
17#define PS_THREAD_DEBUG 0x01
18#define PS_PROCESS_DEBUG 0x02
19#define PS_SECURITY_DEBUG 0x04
20#define PS_JOB_DEBUG 0x08
21#define PS_NOTIFICATIONS_DEBUG 0x10
22#define PS_WIN32K_DEBUG 0x20
23#define PS_STATE_DEBUG 0x40
24#define PS_QUOTA_DEBUG 0x80
25#define PS_KILL_DEBUG 0x100
26#define PS_REF_DEBUG 0x200
27
28//
29// Debug/Tracing support
30//
31#if _PS_DEBUG_
32#ifdef NEW_DEBUG_SYSTEM_IMPLEMENTED // enable when Debug Filters are implemented
33#define PSTRACE(x, ...) \
34 { \
35 DbgPrintEx("%s [%.16s] - ", \
36 __FUNCTION__, \
37 PsGetCurrentProcess()->ImageFileName); \
38 DbgPrintEx(__VA_ARGS__); \
39 }
40#else
41#define PSTRACE(x, ...) \
42 if (x & PspTraceLevel) \
43 { \
44 DbgPrint("%s [%.16s] - ", \
45 __FUNCTION__, \
46 PsGetCurrentProcess()->ImageFileName); \
47 DbgPrint(__VA_ARGS__); \
48 }
49#endif
50#define PSREFTRACE(x) \
51 PSTRACE(PS_REF_DEBUG, \
52 "Pointer Count [%p] @%d: %lx\n", \
53 x, \
54 __LINE__, \
55 OBJECT_TO_OBJECT_HEADER(x)->PointerCount)
56#else
57#define PSTRACE(x, fmt, ...) DPRINT(fmt, ##__VA_ARGS__)
58#define PSREFTRACE(x)
59#endif
60
61//
62// Maximum Count of Notification Routines
63//
64#define PSP_MAX_CREATE_THREAD_NOTIFY 8
65#define PSP_MAX_LOAD_IMAGE_NOTIFY 8
66#define PSP_MAX_CREATE_PROCESS_NOTIFY 8
67
68//
69// Job Scheduling Classes
70//
71// The default is 5 per Yosifovich, P., "Windows 10 System Programming, Part 1"
72#define PSP_JOB_SCHEDULING_CLASS_DEFAULT 5
73#define PSP_JOB_SCHEDULING_CLASSES 10
74
75//
76// Valid Job Object Limits
77//
78#define PSP_JOB_BASIC_LIMIT_VALID_FLAGS \
79 (JOB_OBJECT_LIMIT_WORKINGSET | \
80 JOB_OBJECT_LIMIT_PROCESS_TIME | \
81 JOB_OBJECT_LIMIT_JOB_TIME | \
82 JOB_OBJECT_LIMIT_ACTIVE_PROCESS | \
83 JOB_OBJECT_LIMIT_AFFINITY | \
84 JOB_OBJECT_LIMIT_PRIORITY_CLASS | \
85 JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME | \
86 JOB_OBJECT_LIMIT_SCHEDULING_CLASS)
87#define PSP_JOB_EXTENDED_LIMIT_VALID_FLAGS \
88 (PSP_JOB_BASIC_LIMIT_VALID_FLAGS | \
89 JOB_OBJECT_LIMIT_PROCESS_MEMORY | \
90 JOB_OBJECT_LIMIT_JOB_MEMORY | \
91 JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION | \
92 JOB_OBJECT_LIMIT_BREAKAWAY_OK | \
93 JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK | \
94 JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE)
95
96//
97// Process Quota Threshold Values
98//
99#define PSP_NON_PAGED_POOL_QUOTA_THRESHOLD 0x10000
100#define PSP_PAGED_POOL_QUOTA_THRESHOLD 0x80000
101
102//
103// Flags for JobStatus in EPROCESS
104//
105// These are based on the layout of bit fields in the Flags2 set
106// introduced in version 6.0
107//
108// More information:
109// https://www.geoffchappell.com/studies/windows/km/ntoskrnl/inc/ntos/ps/eprocess/flags2.htm
110//
111#define PSP_JOB_NOT_REALLY_ACTIVE 0x00000001
112#define PSP_JOB_ACCOUNTING_FOLDED 0x00000002
113
114//
115// Job Flags
116//
117// More information:
118// https://www.geoffchappell.com/studies/windows/km/ntoskrnl/inc/ntos/ps/ejob/jobflags.htm
119//
120#define PSP_JOB_CLOSE_DONE 0x00000001
121#define PSP_JOB_TERMINATING 0x00000080
122
123//
124// Thread "Set/Get Context" Context Structure
125//
127{
133
134//
135// Initialization Functions
136//
137VOID
138NTAPI
140 VOID
141);
142
143CODE_SEG("INIT")
145NTAPI
147 IN PLOADER_PARAMETER_BLOCK LoaderBlock
148);
149
150//
151// Utility Routines
152//
154NTAPI
158);
159
161NTAPI
163 IN PEPROCESS OldProcess OPTIONAL
164);
165
167NTAPI
170 OUT PVOID *DllBase,
171 IN BOOLEAN UseLargePages
172);
173
174CODE_SEG("INIT")
176NTAPI
178 VOID
179);
180
181VOID
182NTAPI
184 IN BOOLEAN Immediate,
185 IN ULONG PrioritySeparation
186);
187
189NTAPI
193);
194
195//
196// Process Routines
197//
199NTAPI
204 IN HANDLE ParentProcess OPTIONAL,
205 IN ULONG Flags,
206 IN HANDLE SectionHandle OPTIONAL,
207 IN HANDLE DebugPort OPTIONAL,
208 IN HANDLE ExceptionPort OPTIONAL,
209 IN BOOLEAN InJob
210);
211
212//
213// Security Routines
214//
216NTAPI
222);
223
225NTAPI
229);
230
232NTAPI
237);
238
240NTAPI
244);
245
246VOID
247NTAPI
250);
251
252VOID
253NTAPI
256);
257
258//
259// Reaping and Deletion
260//
261VOID
262NTAPI
264 PKAPC Apc,
265 PKNORMAL_ROUTINE *NormalRoutine,
266 PVOID *NormalContext,
269);
270
271VOID
272NTAPI
275);
276
277VOID
278NTAPI
281);
282
284NTAPI
288 IN BOOLEAN bSelf
289);
290
291VOID
292NTAPI
296);
297
299NTAPI
303);
304
305VOID
306NTAPI
308 IN PVOID ObjectBody
309);
310
311VOID
312NTAPI
314 IN PVOID ObjectBody
315);
316
317//
318// Thread/Process Startup
319//
320VOID
321NTAPI
324 PVOID StartContext
325);
326
327VOID
328NTAPI
331);
332
333//
334// Quota Support
335//
336VOID
337NTAPI
340 _In_ PEPROCESS ParentProcess
341);
342
343VOID
344NTAPI
347 _In_ PEPROCESS_QUOTA_BLOCK QuotaBlock
348);
349
351NTAPI
355);
356
358NTAPI
362);
363
364VOID
365NTAPI
367 _In_ PEPROCESS_QUOTA_BLOCK QuotaBlock,
368 _In_ SIZE_T AmountToReturnPaged,
369 _In_ SIZE_T AmountToReturnNonPaged
370);
371
373NTAPI
376 _In_ SIZE_T AmountToChargePaged,
377 _In_ SIZE_T AmountToChargeNonPaged
378);
379
381NTAPI
385 _In_ PVOID QuotaLimits,
386 _In_ ULONG QuotaLimitsLength,
388
389#if defined(_X86_)
390//
391// VDM and LDT Support
392//
393VOID
394NTAPI
397);
398
399VOID
400NTAPI
403);
404
406NTAPI
409 IN PVOID ThreadInformation,
412);
413#endif
414
415//
416// Job Routines
417//
418typedef NTSTATUS
422);
423
425NTAPI
427 _In_ PEJOB Job,
430);
431
433NTAPI
436 _In_ PEJOB Job
437);
438
439VOID
440NTAPI
443);
444
445VOID
446NTAPI
449);
450
451CODE_SEG("INIT")
452VOID
453NTAPI
455 VOID
456);
457
458VOID
459NTAPI
462 _In_ PVOID ObjectBody,
465 _In_ ULONG_PTR SystemHandleCount
466);
467
468VOID
469NTAPI
471 _In_ PVOID ObjectBody
472);
473
475NTAPI
477 _In_ PEJOB Job,
479 _In_opt_ PVOID CompletionValue,
480 _In_ BOOLEAN Quota
481);
482
484NTAPI
486 _In_ PEJOB Job,
487 _In_ PSW32JOBCALLOUTTYPE CalloutType,
489);
490
491//
492// State routines
493//
495NTAPI
498 OUT PULONG PreviousCount OPTIONAL
499);
500
502NTAPI
505 OUT PULONG PreviousCount OPTIONAL
506);
507
508VOID
509NTAPI
511 IN PKAPC Apc,
512 IN OUT PKNORMAL_ROUTINE* NormalRoutine,
513 IN OUT PVOID* NormalContext,
516);
517
519NTAPI
521
522//
523// Apphelp functions
524//
525CODE_SEG("INIT")
527NTAPI
529
530VOID
531NTAPI
533
534//
535// Global data inside the Process Manager
536//
537extern ULONG PspTraceLevel;
542extern BOOLEAN PspReaping;
574
575//
576// Inlined Functions
577//
578#include "ps_x.h"
#define CODE_SEG(...)
_In_ PVOID _In_ ULONG _Out_ PVOID _In_ ULONG _Inout_ PULONG ReturnLength
_In_ PVOID _In_ ULONG _Out_ PVOID _In_ ULONG _Inout_ PULONG _In_ KPROCESSOR_MODE PreviousMode
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn UINT32 *TableIdx UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER void *Data ACPI_OBJECT_HANDLER void **Data ACPI_STRING ACPI_OBJECT_LIST ACPI_BUFFER *ReturnObjectBuffer ACPI_DEVICE_INFO **ReturnBuffer ACPI_HANDLE Parent
Definition: acpixf.h:732
unsigned char BOOLEAN
Definition: actypes.h:127
LONG NTSTATUS
Definition: precomp.h:26
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:36
_In_ ULONG _In_ ULONG _In_opt_ DXGKCB_MIRACAST_SEND_MESSAGE_CALLBACK Callback
Definition: dispmprt.h:620
_In_ D3DDDI_VIDEO_PRESENT_TARGET_ID _In_ ULONG _In_ ULONG Flags
Definition: dispmprt.h:245
#define NTSTATUS
Definition: precomp.h:19
static const WCHAR Message[]
Definition: register.c:74
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
ULONG ERESOURCE
Definition: env_spec_w32.h:594
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
Definition: fltkernel.h:2653
_Must_inspect_result_ _In_ LONGLONG _In_ LONGLONG Amount
Definition: fsrtlfuncs.h:551
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
Definition: fsrtlfuncs.h:223
VOID(NTAPI * PLEGO_NOTIFY_ROUTINE)(_In_ PKTHREAD Thread)
Definition: pstypes.h:680
NTSTATUS(NTAPI * PKWIN32_PROCESS_CALLOUT)(_In_ struct _EPROCESS *Process, _In_ BOOLEAN Create)
Definition: pstypes.h:587
enum _PSW32JOBCALLOUTTYPE PSW32JOBCALLOUTTYPE
NTSTATUS(NTAPI * PKWIN32_JOB_CALLOUT)(_In_ struct _WIN32_JOBCALLOUT_PARAMETERS *Parameters)
Definition: pstypes.h:619
NTSTATUS(NTAPI * PKWIN32_THREAD_CALLOUT)(_In_ struct _ETHREAD *Thread, _In_ PSW32THREADCALLOUTTYPE Type)
Definition: pstypes.h:594
#define Unused(x)
Definition: atlwin.h:28
enum _SECURITY_IMPERSONATION_LEVEL * PSECURITY_IMPERSONATION_LEVEL
VOID(NTAPI * PKNORMAL_ROUTINE)(IN PVOID NormalContext OPTIONAL, IN PVOID SystemArgument1 OPTIONAL, IN PVOID SystemArgument2 OPTIONAL)
Definition: ketypes.h:888
_In_ HANDLE ProcessHandle
Definition: mmfuncs.h:407
_In_ NTSTATUS ExitStatus
Definition: psfuncs.h:890
_In_ ACCESS_MASK _In_ ULONG _Out_ PHANDLE TokenHandle
Definition: psfuncs.h:749
_In_ THREADINFOCLASS _In_ ULONG ThreadInformationLength
Definition: psfuncs.h:866
_In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_ BOOLEAN EffectiveOnly
Definition: sefuncs.h:410
_In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_ BOOLEAN _In_ TOKEN_TYPE TokenType
Definition: sefuncs.h:411
#define _Outptr_
Definition: no_sal2.h:262
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
ULONG ACCESS_MASK
Definition: nt_native.h:40
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
char CHAR
Definition: pedump.c:57
PETHREAD LastThread
Definition: pinsup.c:109
NTSTATUS NTAPI PsOpenTokenOfProcess(IN HANDLE ProcessHandle, OUT PACCESS_TOKEN *Token)
Definition: security.c:471
VOID NTAPI PsReturnSharedPoolQuota(_In_ PEPROCESS_QUOTA_BLOCK QuotaBlock, _In_ SIZE_T AmountToReturnPaged, _In_ SIZE_T AmountToReturnNonPaged)
Returns the shared (paged and non paged) pool quotas. The function is used exclusively by the Object ...
Definition: quota.c:621
POBJECT_TYPE _PsProcessType
Definition: ps.h:564
NTSTATUS NTAPI PspInvokeW32JobCallout(_In_ PEJOB Job, _In_ PSW32JOBCALLOUTTYPE CalloutType, _In_opt_ PVOID Data)
Definition: job.c:1637
LIST_ENTRY PspReaperListHead
Definition: kill.c:19
ULONG PspTraceLevel
Definition: query.c:18
NTSTATUS NTAPI PsSuspendThread(IN PETHREAD Thread, OUT PULONG PreviousCount OPTIONAL)
Definition: state.c:48
EX_CALLBACK PspLoadImageNotifyRoutine[PSP_MAX_LOAD_IMAGE_NOTIFY]
Definition: psnotify.c:23
PVOID PspSystemDllEntryPoint
Definition: psmgr.c:43
KSPIN_LOCK PsLoadedModuleSpinLock
Definition: sysldr.c:23
LIST_ENTRY PsLoadedModuleList
Definition: sysldr.c:21
NTSTATUS NTAPI PspSetPrimaryToken(IN PEPROCESS Process, IN HANDLE TokenHandle OPTIONAL, IN PACCESS_TOKEN Token OPTIONAL)
Definition: security.c:215
NTSTATUS NTAPI PspSetQuotaLimits(_In_ PEPROCESS Process, _In_ ULONG Unused, _In_ PVOID QuotaLimits, _In_ ULONG QuotaLimitsLength, _In_ KPROCESSOR_MODE PreviousMode)
This function adjusts the working set limits of a process and sets up new quota limits when necessary...
Definition: quota.c:1045
NTSTATUS NTAPI PspSendJobMessageLocked(_In_ PEJOB Job, _In_ ULONG Message, _In_opt_ PVOID CompletionValue, _In_ BOOLEAN Quota)
Definition: job.c:397
VOID NTAPI ApphelpCacheShutdown(VOID)
Definition: apphelp.c:465
PLEGO_NOTIFY_ROUTINE PspLegoNotifyRoutine
Definition: psnotify.c:24
VOID NTAPI PspDeleteProcess(IN PVOID ObjectBody)
Definition: kill.c:253
PKWIN32_THREAD_CALLOUT PspW32ThreadCallout
Definition: win32.c:19
PACCESS_TOKEN NTAPI PsReferenceEffectiveToken(IN PETHREAD Thread, OUT IN PTOKEN_TYPE TokenType, OUT PBOOLEAN EffectiveOnly, OUT PSECURITY_IMPERSONATION_LEVEL ImpersonationLevel)
Definition: security.c:802
NTSTATUS NTAPI PsTerminateProcess(IN PEPROCESS Process, IN NTSTATUS ExitStatus)
Definition: kill.c:126
NTSTATUS NTAPI PsChargeProcessPageFileQuota(_In_ PEPROCESS Process, _In_ SIZE_T Amount)
Charges the process page file quota. The function is used internally by the kernel.
Definition: quota.c:738
VOID NTAPI PspSystemThreadStartup(PKSTART_ROUTINE StartRoutine, PVOID StartContext)
NTSTATUS NTAPI PspAssignProcessToJob(_In_ PEPROCESS Process, _In_ PEJOB Job)
Definition: job.c:432
BOOLEAN NTAPI PspIsProcessExiting(IN PEPROCESS Process)
Definition: kill.c:1087
VOID NTAPI PspExitThread(IN NTSTATUS ExitStatus)
Definition: kill.c:469
VOID NTAPI PspInitializeJobStructures(VOID)
Definition: job.c:128
ERESOURCE PsLoadedModuleResource
Definition: sysldr.c:24
UNICODE_STRING PsNtDllPathName
Definition: psmgr.c:45
VOID NTAPI PspCloseJob(_In_ PEPROCESS Process, _In_ PVOID ObjectBody, _In_ ACCESS_MASK GrantedAccess, _In_ ULONG_PTR ProcessHandleCount, _In_ ULONG_PTR SystemHandleCount)
Definition: job.c:845
PKWIN32_PROCESS_CALLOUT PspW32ProcessCallout
Definition: win32.c:18
VOID NTAPI PspGetOrSetContextKernelRoutine(IN PKAPC Apc, IN OUT PKNORMAL_ROUTINE *NormalRoutine, IN OUT PVOID *NormalContext, IN OUT PVOID *SystemArgument1, IN OUT PVOID *SystemArgument2)
Definition: psctx.c:38
NTSTATUS NTAPI PspInitializeProcessSecurity(IN PEPROCESS Process, IN PEPROCESS Parent OPTIONAL)
Definition: security.c:71
#define PSP_MAX_CREATE_PROCESS_NOTIFY
Definition: ps.h:66
ULONG PspProcessNotifyRoutineCount
Definition: ps.h:553
PHANDLE_TABLE PspCidTable
Definition: psmgr.c:48
NTSTATUS NTAPI PsReferenceProcessFilePointer(_In_ PEPROCESS Process, _Outptr_ PFILE_OBJECT *FileObject)
Definition: query.c:24
VOID NTAPI PspExitProcessFromJob(_In_ PEPROCESS Process)
Definition: job.c:659
BOOLEAN NTAPI PsInitSystem(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
Definition: psmgr.c:533
EX_CALLBACK PspThreadNotifyRoutine[PSP_MAX_CREATE_THREAD_NOTIFY]
Definition: psnotify.c:21
NTSTATUS NTAPI PspTerminateThreadByPointer(IN PETHREAD Thread, IN NTSTATUS ExitStatus, IN BOOLEAN bSelf)
Definition: kill.c:1007
VOID NTAPI PspShutdownProcessManager(VOID)
Definition: kill.c:135
LCID PsDefaultSystemLocaleId
Definition: locale.c:20
NTSTATUS(NTAPI * PJOB_ENUMERATOR_CALLBACK)(_In_ PEPROCESS Process, _In_opt_ PVOID Context)
Definition: ps.h:419
PEPROCESS_QUOTA_BLOCK NTAPI PsChargeSharedPoolQuota(_In_ PEPROCESS Process, _In_ SIZE_T AmountToChargePaged, _In_ SIZE_T AmountToChargeNonPaged)
Charges the shared (paged and non paged) pool quotas. The function is used exclusively by the Object ...
Definition: quota.c:674
VOID NTAPI PspDereferenceQuotaBlock(_In_opt_ PEPROCESS Process, _In_ PEPROCESS_QUOTA_BLOCK QuotaBlock)
De-references a quota block when quotas have been returned back because of an object de-allocation or...
Definition: quota.c:553
#define PSP_JOB_SCHEDULING_CLASSES
Definition: ps.h:73
NTSTATUS NTAPI PspCreateProcess(OUT PHANDLE ProcessHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN HANDLE ParentProcess OPTIONAL, IN ULONG Flags, IN HANDLE SectionHandle OPTIONAL, IN HANDLE DebugPort OPTIONAL, IN HANDLE ExceptionPort OPTIONAL, IN BOOLEAN InJob)
Definition: process.c:347
VOID NTAPI PspDeleteJob(_In_ PVOID ObjectBody)
Definition: job.c:909
ULONG PspThreadNotifyRoutineCount
Definition: psnotify.c:19
VOID NTAPI PspDeleteProcessSecurity(IN PEPROCESS Process)
Definition: security.c:30
PETHREAD NTAPI PsGetNextProcessThread(IN PEPROCESS Process, IN PETHREAD Thread OPTIONAL)
Definition: process.c:75
BOOLEAN PspUseJobSchedulingClasses
Definition: job.c:28
LIST_ENTRY PsActiveProcessHead
Definition: process.c:22
NTSTATUS NTAPI PsResumeThread(IN PETHREAD Thread, OUT PULONG PreviousCount OPTIONAL)
Definition: state.c:32
struct _GET_SET_CTX_CONTEXT GET_SET_CTX_CONTEXT
BOOLEAN PsImageNotifyEnabled
Definition: psnotify.c:18
NTSTATUS NTAPI PsReturnProcessPageFileQuota(_In_ PEPROCESS Process, _In_ SIZE_T Amount)
Returns the page file quota that the process was taking up. The function is used exclusively by the k...
Definition: quota.c:993
struct _GET_SET_CTX_CONTEXT * PGET_SET_CTX_CONTEXT
BOOLEAN PspReaping
ULONG PsPrioritySeparation
Definition: process.c:28
EPROCESS_QUOTA_BLOCK PspDefaultQuotaBlock
Definition: quota.c:16
VOID NTAPI PsChangeQuantumTable(IN BOOLEAN Immediate, IN ULONG PrioritySeparation)
Definition: process.c:235
NTSTATUS NTAPI ApphelpCacheInitialize(VOID)
Definition: apphelp.c:439
VOID NTAPI PspDeleteThread(IN PVOID ObjectBody)
Definition: kill.c:402
VOID NTAPI PsIdleThreadMain(IN PVOID Context)
CHAR PspJobSchedulingClasses[PSP_JOB_SCHEDULING_CLASSES]
Definition: job.c:30
VOID NTAPI PspRemoveProcessFromJob(_In_ PEPROCESS Process)
Definition: job.c:609
ULONG PsRawPrioritySeparation
Definition: process.c:27
PVOID PspSystemDllBase
Definition: psmgr.c:41
#define PSP_MAX_LOAD_IMAGE_NOTIFY
Definition: ps.h:65
#define PSP_MAX_CREATE_THREAD_NOTIFY
Definition: ps.h:64
LARGE_INTEGER ShortPsLockDelay
Definition: ps.h:568
LCID PsDefaultThreadLocaleId
Definition: locale.c:24
POBJECT_TYPE _PsThreadType
PTOKEN PspBootAccessToken
Definition: security.c:17
PEPROCESS NTAPI PsGetNextProcess(IN PEPROCESS OldProcess OPTIONAL)
Definition: process.c:128
VOID NTAPI PsExitSpecialApc(PKAPC Apc, PKNORMAL_ROUTINE *NormalRoutine, PVOID *NormalContext, PVOID *SystemArgument1, PVOID *SystemArgument2)
GENERIC_MAPPING PspJobMapping
Definition: job.c:44
WORK_QUEUE_ITEM PspReaperWorkItem
Definition: kill.c:20
VOID NTAPI PspReapRoutine(IN PVOID Context)
Definition: kill.c:167
NTSTATUS NTAPI PspMapSystemDll(IN PEPROCESS Process, OUT PVOID *DllBase, IN BOOLEAN UseLargePages)
KGUARDED_MUTEX PspActiveProcessMutex
Definition: process.c:23
PKWIN32_JOB_CALLOUT PspW32JobCallout
Definition: win32.c:20
VOID NTAPI PspInheritQuota(_In_ PEPROCESS Process, _In_ PEPROCESS ParentProcess)
PEPROCESS PsIdleProcess
Definition: psmgr.c:51
VOID NTAPI PspDeleteThreadSecurity(IN PETHREAD Thread)
Definition: security.c:46
VOID NTAPI PspExitProcess(IN BOOLEAN LastThread, IN PEPROCESS Process)
Definition: kill.c:1094
NTSTATUS NTAPI PsLocateSystemDll(VOID)
Definition: psmgr.c:187
ULONG_PTR PsNtosImageBase
Definition: sysldr.c:25
EX_CALLBACK PspProcessNotifyRoutine[PSP_MAX_CREATE_PROCESS_NOTIFY]
Definition: psnotify.c:22
POBJECT_TYPE PsJobType
Definition: job.c:23
NTSTATUS NTAPI PspEnumerateProcessesInJob(_In_ PEJOB Job, _In_ PJOB_ENUMERATOR_CALLBACK Callback, _In_opt_ PVOID Context)
Definition: job.c:290
VOID NTAPI PspDeleteLdt(PEPROCESS Process)
Definition: psldt.c:19
NTSTATUS NTAPI PspQueryDescriptorThread(IN PETHREAD Thread, IN PVOID ThreadInformation, IN ULONG ThreadInformationLength, OUT PULONG ReturnLength OPTIONAL)
Definition: psldt.c:43
VOID NTAPI PspDeleteVdmObjects(PEPROCESS Process)
Definition: psldt.c:27
DWORD LCID
Definition: nls.h:13
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68
_In_ PVOID Context
Definition: storport.h:2269
CONTEXT Context
Definition: ps.h:131
KEVENT Event
Definition: ps.h:129
KPROCESSOR_MODE Mode
Definition: ps.h:130
Definition: ketypes.h:615
Definition: typedefs.h:120
uint32_t * PULONG
Definition: typedefs.h:59
unsigned char * PBOOLEAN
Definition: typedefs.h:53
#define NTAPI
Definition: typedefs.h:36
ULONG_PTR SIZE_T
Definition: typedefs.h:80
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define IN
Definition: typedefs.h:39
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
Definition: wdfdevice.h:2664
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:550
@ ProcessHandleCount
Definition: winternl.h:1902
* PFILE_OBJECT
Definition: iotypes.h:1998
KSTART_ROUTINE * PKSTART_ROUTINE
Definition: ketypes.h:567
CCHAR KPROCESSOR_MODE
Definition: ketypes.h:7
_In_opt_ PVOID _In_opt_ PVOID SystemArgument1
Definition: ketypes.h:756
_In_opt_ PVOID _In_opt_ PVOID _In_opt_ PVOID SystemArgument2
Definition: ketypes.h:757
_Out_ PBOOLEAN _Out_ PBOOLEAN _Out_ PSECURITY_IMPERSONATION_LEVEL ImpersonationLevel
Definition: psfuncs.h:157
_In_ ULONG _In_opt_ POBJECT_ATTRIBUTES _In_opt_ HANDLE _Out_opt_ PCLIENT_ID _In_ PKSTART_ROUTINE StartRoutine
Definition: psfuncs.h:92
_In_ PSECURITY_SUBJECT_CONTEXT _In_ BOOLEAN _In_ ACCESS_MASK _In_ ACCESS_MASK _Outptr_opt_ PPRIVILEGE_SET _In_ PGENERIC_MAPPING _In_ KPROCESSOR_MODE _Out_ PACCESS_MASK GrantedAccess
Definition: sefuncs.h:20
enum _TOKEN_TYPE * PTOKEN_TYPE