ReactOS 0.4.17-dev-1343-g8fe3cee
psfuncs.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 psfuncs.h
8
9Abstract:
10
11 Function definitions for the Process Manager
12
13Author:
14
15 Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
16
17--*/
18
19#ifndef _PSFUNCS_H
20#define _PSFUNCS_H
21
22//
23// Dependencies
24//
25#include <umtypes.h>
26#include <pstypes.h>
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
32#ifndef NTOS_MODE_USER
33
34//
35// Win32K Process/Thread Functions
36//
41 VOID
42);
43
48 VOID
49);
50
56);
57
63);
64
69 _In_ PEJOB Job
70);
71
73VOID
76 _In_ PEJOB Job,
77 _In_ ULONG UIRestrictionsClass
78);
79
85 _In_opt_ PVOID Win32Process,
86 _In_opt_ PVOID OldWin32Process
87);
88
94 _In_opt_ PVOID Win32Thread,
95 _In_opt_ PVOID OldWin32Thread
96);
97
100NTAPI
103);
104
106PVOID
107NTAPI
110);
111
113VOID
114NTAPI
117 _In_opt_ PVOID WindowStation
118);
119
121PTEB
122NTAPI
125);
126
128HANDLE
129NTAPI
132);
133
136NTAPI
139);
140
142ULONG
143NTAPI
146);
147
150NTAPI
153);
154
156VOID
157NTAPI
161);
162
164VOID
165NTAPI
167 _In_ PWIN32_CALLOUTS_FPNS CalloutData
168);
169
171VOID
172NTAPI
176);
177
179ULONG
180NTAPI
182 VOID
183);
184
185//
186// Process Impersonation Functions
187//
190NTAPI
193);
194
196VOID
197NTAPI
200);
201
202//
203// Misc. Functions
204//
207NTAPI
209 _In_ PCLIENT_ID Cid,
212);
213
215NTAPI
218);
219
222NTAPI
225);
226
227VOID
228NTAPI
232);
233
234HANDLE
235NTAPI
238);
239
242NTAPI
245);
246
248ULONG
249NTAPI
252);
253
256NTAPI
259);
260
261//
262// Quota Functions
263//
265VOID
266NTAPI
271);
272
275NTAPI
279);
280
283NTAPI
287);
288
291NTAPI
296);
297
299VOID
300NTAPI
305);
306
308VOID
309NTAPI
313);
314
316VOID
317NTAPI
321);
322
324PVOID
325NTAPI
328);
329
332NTAPI
335 _In_ PVOID SecurityPort
336);
337
339HANDLE
340NTAPI
342 VOID
343);
344
345#endif
346
347//
348// Native Calls
349//
352NTAPI
354 _In_ HANDLE ThreadHandle,
355 _Out_opt_ PULONG SuspendCount
356);
357
360NTAPI
364);
365
368NTAPI
370 _In_ HANDLE ThreadHandle
371);
372
375NTAPI
377 _In_ HANDLE JobHandle,
379);
380
383NTAPI
385 _Out_ PHANDLE JobHandle,
388);
389
391NTAPI
393 _In_ ULONG NumJob,
394 _In_ PJOB_SET_ARRAY UserJobSet,
396);
397
400NTAPI
405 _In_ HANDLE ParentProcess,
406 _In_ BOOLEAN InheritObjectTable,
407 _In_opt_ HANDLE SectionHandle,
408 _In_opt_ HANDLE DebugPort,
409 _In_opt_ HANDLE ExceptionPort
410);
411
414NTAPI
419 _In_ HANDLE ParentProcess,
421 _In_opt_ HANDLE SectionHandle,
422 _In_opt_ HANDLE DebugPort,
423 _In_opt_ HANDLE ExceptionPort,
424 _In_ BOOLEAN InJob
425);
426
429NTAPI
431 _Out_ PHANDLE ThreadHandle,
436 _In_ PCONTEXT ThreadContext,
437 _In_ PINITIAL_TEB UserStack,
438 _In_ BOOLEAN CreateSuspended
439);
440
441#define PROCESS_GET_NEXT_FLAGS_PREVIOUS_PROCESS 0x00000001
442
445NTAPI
451 _Out_ PHANDLE NewProcessHandle);
452
455NTAPI
458 _In_opt_ HANDLE ThreadHandle,
462 _Out_ PHANDLE NewThreadHandle);
463
464#ifndef NTOS_MODE_USER
466{
467#if defined(_M_IX86)
468 return (struct _TEB *)__readfsdword(0x18);
469#elif defined (_M_AMD64)
470 return (struct _TEB *)__readgsqword(FIELD_OFFSET(NT_TIB, Self));
471#elif defined (_M_ARM)
472 // return (struct _TEB *)KeGetPcr()->Used_Self;
473 return (struct _TEB *)(ULONG_PTR)_MoveFromCoprocessor(CP15_TPIDRURW);
474#elif defined (_M_ARM64)
475 /* x18 is the PCR here, the context switch keeps its NtTib.Self on the TEB */
476 return (struct _TEB *)__readx18qword(FIELD_OFFSET(NT_TIB, Self));
477// #elif defined(_M_PPC)
478// return (struct _TEB *)_read_teb_dword(0x18);
479#else
480#error Unsupported architecture
481#endif
482}
483#else
484struct _TEB * NtCurrentTeb(VOID);
485#endif
486
489NTAPI
491 _In_ HANDLE ThreadHandle,
492 _In_ HANDLE ThreadToImpersonate,
493 _In_ PSECURITY_QUALITY_OF_SERVICE SecurityQualityOfService
494);
495
498NTAPI
501 _In_opt_ HANDLE JobHandle
502);
503
507NTAPI
513);
514
519NTAPI
524);
525
528NTAPI
530 _Out_ PHANDLE ThreadHandle,
534);
535
538NTAPI
540 _In_ HANDLE ThreadHandle,
544);
545
548NTAPI
550 _In_ HANDLE ThreadHandle,
555);
556
559NTAPI
561 _In_ HANDLE JobHandle,
562 _In_ JOBOBJECTINFOCLASS JobInformationClass,
563 _Out_bytecap_(JobInformationLength) PVOID JobInformation,
564 _In_ ULONG JobInformationLength,
566);
567
568#ifndef _NTDDK_
572NTAPI
575 _In_ PROCESSINFOCLASS ProcessInformationClass,
576 _Out_writes_bytes_to_opt_(ProcessInformationLength, *ReturnLength)
577 PVOID ProcessInformation,
578 _In_ ULONG ProcessInformationLength,
580);
581#endif
582
585NTAPI
587 _In_ HANDLE ThreadHandle,
590 PVOID ThreadInformation,
593);
594
597NTAPI
599 _In_ HANDLE TerminationPort
600);
601
604NTAPI
606 _In_ HANDLE ThreadHandle,
607 _Out_opt_ PULONG SuspendCount
608);
609
612NTAPI
615);
616
619NTAPI
621 _In_ HANDLE JobHandle,
622 _In_ JOBOBJECTINFOCLASS JobInformationClass,
623 _In_bytecount_(JobInformationLength) PVOID JobInformation,
624 _In_ ULONG JobInformationLength
625);
626
629NTAPI
632 _In_ PROCESSINFOCLASS ProcessInformationClass,
633 _In_reads_bytes_(ProcessInformationLength) PVOID ProcessInformation,
634 _In_ ULONG ProcessInformationLength
635);
636
640NTAPI
642 _In_ HANDLE ThreadHandle,
646);
647
650NTAPI
653);
654
657NTAPI
659 _In_ HANDLE ThreadHandle,
660 _In_ PULONG PreviousSuspendCount
661);
662
665NTAPI
669);
670
673NTAPI
675 _In_ HANDLE ThreadHandle,
677);
678
681NTAPI
683 _In_ HANDLE JobHandle,
685);
686
689NTAPI
691 _In_ HANDLE ThreadHandle,
692 _Out_opt_ PULONG SuspendCount
693);
694
697NTAPI
699 _In_ HANDLE ThreadHandle
700);
701
704NTAPI
706 _In_ HANDLE JobHandle,
708);
709
712NTAPI
714 _Out_ PHANDLE JobHandle,
717);
718
721NTAPI
726 _In_ HANDLE ParentProcess,
727 _In_ BOOLEAN InheritObjectTable,
728 _In_opt_ HANDLE SectionHandle,
729 _In_opt_ HANDLE DebugPort,
730 _In_opt_ HANDLE ExceptionPort
731);
732
735NTAPI
737 _Out_ PHANDLE ThreadHandle,
742 _In_ PCONTEXT ThreadContext,
743 _In_ PINITIAL_TEB UserStack,
744 _In_ BOOLEAN CreateSuspended
745);
746
749NTAPI
751 _In_ HANDLE ThreadHandle,
752 _In_ HANDLE ThreadToImpersonate,
753 _In_ PSECURITY_QUALITY_OF_SERVICE SecurityQualityOfService
754);
755
758NTAPI
761 _In_opt_ HANDLE JobHandle
762);
763
767NTAPI
768ZwOpenProcessTokenEx(
773);
774
777NTAPI
779 _Out_ PHANDLE ThreadHandle,
783);
784
787NTAPI
789 _In_ HANDLE ThreadHandle,
793);
794
797NTAPI
799 _In_ HANDLE ThreadHandle,
804);
805
808NTAPI
810 _In_ HANDLE JobHandle,
811 _In_ JOBOBJECTINFOCLASS JobInformationClass,
812 _Out_bytecap_(JobInformationLength) PVOID JobInformation,
813 _In_ ULONG JobInformationLength,
815);
816
819NTAPI
822 _In_ PROCESSINFOCLASS ProcessInformationClass,
823 _Out_ PVOID ProcessInformation,
824 _In_ ULONG ProcessInformationLength,
826);
827
830NTAPI
832 _In_ HANDLE ThreadHandle,
834 _Out_ PVOID ThreadInformation,
837);
838
841NTAPI
843 _In_ HANDLE TerminationPort
844);
845
848NTAPI
850 _In_ HANDLE ThreadHandle,
851 _Out_opt_ PULONG SuspendCount
852);
853
856NTAPI
859);
860
863NTAPI
865 _In_ HANDLE JobHandle,
866 _In_ JOBOBJECTINFOCLASS JobInformationClass,
867 _In_ PVOID JobInformation,
868 _In_ ULONG JobInformationLength
869);
870
873NTAPI
876 _In_ PROCESSINFOCLASS ProcessInformationClass,
877 _In_ PVOID ProcessInformation,
878 _In_ ULONG ProcessInformationLength
879);
880
884NTAPI
885ZwSetInformationThread(
886 _In_ HANDLE ThreadHandle,
890);
891
894NTAPI
897);
898
901NTAPI
903 _In_ HANDLE ThreadHandle,
904 _In_ PULONG PreviousSuspendCount
905);
906
910NTAPI
911ZwTerminateProcess (
914 );
915
918NTAPI
920 _In_ HANDLE ThreadHandle,
922);
923
926NTAPI
928 _In_ HANDLE JobHandle,
930);
931
932#ifdef __cplusplus
933}
934#endif
935
936#endif
_In_ PVOID _In_ ULONG _Out_ PVOID _In_ ULONG _Inout_ PULONG ReturnLength
Type
Definition: Type.h:7
unsigned char BOOLEAN
Definition: actypes.h:127
LONG NTSTATUS
Definition: precomp.h:26
#define NTSYSAPI
Definition: ntoskrnl.h:12
enum _PROCESSINFOCLASS PROCESSINFOCLASS
Definition: loader.c:66
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:36
_In_ D3DDDI_VIDEO_PRESENT_TARGET_ID _In_ ULONG _In_ ULONG Flags
Definition: dispmprt.h:245
enum _THREADINFOCLASS THREADINFOCLASS
Definition: thread.c:99
#define ULONG_PTR
Definition: config.h:101
#define _IRQL_requires_max_(irql)
Definition: driverspecs.h:230
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
_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
enum _JOBOBJECTINFOCLASS JOBOBJECTINFOCLASS
enum _APPHELPCACHESERVICECLASS APPHELPCACHESERVICECLASS
enum _PSPROCESSPRIORITYMODE PSPROCESSPRIORITYMODE
__INTRIN_INLINE unsigned __int64 __readx18qword(unsigned long offset)
Definition: intrin_arm64.h:809
PPC_QUAL unsigned long __readfsdword(const unsigned long Offset)
Definition: intrin_ppc.h:382
#define NtCurrentTeb
@ Disabled
Definition: mountmgr.h:178
#define _Out_bytecap_(size)
Definition: ms_sal.h:854
#define _In_bytecount_(size)
Definition: ms_sal.h:812
#define CP15_TPIDRURW
Definition: ketypes.h:131
_In_ HANDLE ProcessHandle
Definition: mmfuncs.h:407
NTSYSCALLAPI NTSTATUS NTAPI NtQueryInformationThread(_In_ HANDLE ThreadHandle, _In_ THREADINFOCLASS ThreadInformationClass, _Out_writes_bytes_to_opt_(ThreadInformationLength, *ReturnLength) PVOID ThreadInformation, _In_ ULONG ThreadInformationLength, _Out_opt_ PULONG ReturnLength)
Definition: query.c:3017
NTKERNELAPI PVOID NTAPI PsGetThreadWin32Thread(_In_ PETHREAD Thread)
NTSYSAPI NTSTATUS NTAPI ZwQueryInformationThread(_In_ HANDLE ThreadHandle, _In_ THREADINFOCLASS ThreadInformationClass, _Out_ PVOID ThreadInformation, _In_ ULONG ThreadInformationLength, _Out_opt_ PULONG ReturnLength)
NTSYSAPI NTSTATUS NTAPI ZwImpersonateThread(_In_ HANDLE ThreadHandle, _In_ HANDLE ThreadToImpersonate, _In_ PSECURITY_QUALITY_OF_SERVICE SecurityQualityOfService)
NTSYSCALLAPI NTSTATUS NTAPI NtAlertResumeThread(_In_ HANDLE ThreadHandle, _Out_opt_ PULONG SuspendCount)
NTSYSCALLAPI NTSTATUS NTAPI NtTerminateJobObject(_In_ HANDLE JobHandle, _In_ NTSTATUS ExitStatus)
Definition: job.c:2118
NTSYSCALLAPI NTSTATUS NTAPI NtOpenThreadToken(_In_ HANDLE ThreadHandle, _In_ ACCESS_MASK DesiredAccess, _In_ BOOLEAN OpenAsSelf, _Out_ PHANDLE TokenHandle)
Opens a token that is tied to a thread handle.
Definition: token.c:2475
NTKERNELAPI BOOLEAN NTAPI PsGetThreadHardErrorsAreDisabled(_In_ PETHREAD Thread)
NTSYSCALLAPI NTSTATUS NTAPI NtCreateJobObject(_Out_ PHANDLE JobHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes)
NTKERNELAPI NTSTATUS NTAPI PsSetProcessWin32Process(_Inout_ PEPROCESS Process, _In_opt_ PVOID Win32Process, _In_opt_ PVOID OldWin32Process)
Definition: process.c:1297
_In_ NTSTATUS ExitStatus
Definition: psfuncs.h:914
NTSYSCALLAPI NTSTATUS NTAPI NtSuspendThread(_In_ HANDLE ThreadHandle, _In_ PULONG PreviousSuspendCount)
NTKERNELAPI PVOID NTAPI PsGetCurrentProcessWin32Process(VOID)
Definition: process.c:1223
NTSYSAPI NTSTATUS NTAPI ZwTerminateThread(_In_ HANDLE ThreadHandle, _In_ NTSTATUS ExitStatus)
NTKERNELAPI HANDLE NTAPI PsGetThreadId(_In_ PETHREAD Thread)
NTSYSCALLAPI NTSTATUS NTAPI NtSuspendProcess(_In_ HANDLE ProcessHandle)
NTKERNELAPI BOOLEAN NTAPI PsIsThreadImpersonating(_In_ PETHREAD Thread)
NTKERNELAPI VOID NTAPI PsSetProcessWindowStation(_Inout_ PEPROCESS Process, _In_opt_ PVOID WindowStation)
NTKERNELAPI NTSTATUS NTAPI PsChargeProcessPagedPoolQuota(_In_ PEPROCESS Process, _In_ SIZE_T Amount)
Charges the paged pool quota of a given process.
Definition: quota.c:839
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtOpenProcess(_Out_ PHANDLE ProcessHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes, _In_opt_ PCLIENT_ID ClientId)
NTSYSCALLAPI NTSTATUS NTAPI NtAlertThread(_In_ HANDLE ThreadHandle)
_In_ ACCESS_MASK _In_ ULONG _Out_ PHANDLE TokenHandle
Definition: psfuncs.h:773
NTSYSCALLAPI NTSTATUS NTAPI NtAssignProcessToJobObject(_In_ HANDLE JobHandle, _In_ HANDLE ProcessHandle)
Definition: job.c:1928
NTKERNELAPI VOID NTAPI PsEstablishWin32Callouts(_In_ PWIN32_CALLOUTS_FPNS CalloutData)
NTKERNELAPI BOOLEAN NTAPI PsGetProcessExitProcessCalled(_In_ PEPROCESS Process)
VOID NTAPI PsSetProcessPriorityByClass(_In_ PEPROCESS Process, _In_ PSPROCESSPRIORITYMODE Type)
NTSYSCALLAPI NTSTATUS NTAPI NtIsProcessInJob(_In_ HANDLE ProcessHandle, _In_opt_ HANDLE JobHandle)
Definition: job.c:2014
NTKERNELAPI NTSTATUS NTAPI PsGetProcessExitStatus(_In_ PEPROCESS Process)
NTKERNELAPI BOOLEAN NTAPI PsIsSystemProcess(_In_ PEPROCESS Process)
_In_ THREADINFOCLASS _In_ ULONG ThreadInformationLength
Definition: psfuncs.h:890
NTSYSAPI NTSTATUS NTAPI ZwOpenThread(_Out_ PHANDLE ThreadHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes, _In_ PCLIENT_ID ClientId)
NTKERNELAPI PEJOB NTAPI PsGetProcessJob(_In_ PEPROCESS Process)
NTKERNELAPI PVOID NTAPI PsGetProcessSecurityPort(_In_ PEPROCESS Process)
NTSYSAPI NTSTATUS NTAPI ZwSetInformationProcess(_In_ HANDLE ProcessHandle, _In_ PROCESSINFOCLASS ProcessInformationClass, _In_ PVOID ProcessInformation, _In_ ULONG ProcessInformationLength)
NTKERNELAPI NTSTATUS NTAPI PsLookupProcessThreadByCid(_In_ PCLIENT_ID Cid, _Out_opt_ PEPROCESS *Process, _Out_ PETHREAD *Thread)
NTSYSAPI NTSTATUS NTAPI ZwSetInformationJobObject(_In_ HANDLE JobHandle, _In_ JOBOBJECTINFOCLASS JobInformationClass, _In_ PVOID JobInformation, _In_ ULONG JobInformationLength)
NTKERNELAPI VOID NTAPI PsSetThreadHardErrorsAreDisabled(_Inout_ PETHREAD Thread, _In_ BOOLEAN Disabled)
NTSYSCALLAPI NTSTATUS NTAPI NtSetInformationProcess(_In_ HANDLE ProcessHandle, _In_ PROCESSINFOCLASS ProcessInformationClass, _In_reads_bytes_(ProcessInformationLength) PVOID ProcessInformation, _In_ ULONG ProcessInformationLength)
Definition: query.c:1422
NTKERNELAPI PTEB NTAPI PsGetThreadTeb(_In_ PETHREAD Thread)
NTSYSAPI NTSTATUS NTAPI ZwSuspendThread(_In_ HANDLE ThreadHandle, _In_ PULONG PreviousSuspendCount)
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtQueryInformationProcess(_In_ HANDLE ProcessHandle, _In_ PROCESSINFOCLASS ProcessInformationClass, _Out_writes_bytes_to_opt_(ProcessInformationLength, *ReturnLength) PVOID ProcessInformation, _In_ ULONG ProcessInformationLength, _Out_opt_ PULONG ReturnLength)
Definition: query.c:211
NTSYSCALLAPI NTSTATUS NTAPI NtResumeProcess(_In_ HANDLE ProcessHandle)
NTKERNELAPI PVOID NTAPI PsGetProcessWin32WindowStation(_In_ PEPROCESS Process)
HANDLE NTAPI PsGetProcessInheritedFromUniqueProcessId(_In_ PEPROCESS Process)
NTKERNELAPI NTSTATUS NTAPI PsChargeProcessNonPagedPoolQuota(_In_ PEPROCESS Process, _In_ SIZE_T Amount)
Charges the non paged pool quota of a given process.
Definition: quota.c:811
NTSYSCALLAPI NTSTATUS NTAPI NtGetNextProcess(_In_opt_ HANDLE ProcessHandle, _In_ ACCESS_MASK DesiredAccess, _In_ ULONG HandleAttributes, _In_ ULONG Flags, _Out_ PHANDLE NewProcessHandle)
Definition: process.c:1703
NTSYSCALLAPI NTSTATUS NTAPI NtRegisterThreadTerminatePort(_In_ HANDLE TerminationPort)
NTKERNELAPI ULONG NTAPI PsGetCurrentProcessSessionId(VOID)
Definition: process.c:1173
NTSTATUS NTAPI NtCreateJobSet(_In_ ULONG NumJob, _In_ PJOB_SET_ARRAY UserJobSet, _In_ ULONG Flags)
NTKERNELAPI PEPROCESS NTAPI PsGetThreadProcess(_In_ PETHREAD Thread)
NTSYSCALLAPI NTSTATUS NTAPI NtImpersonateThread(_In_ HANDLE ThreadHandle, _In_ HANDLE ThreadToImpersonate, _In_ PSECURITY_QUALITY_OF_SERVICE SecurityQualityOfService)
NTSYSCALLAPI NTSTATUS NTAPI NtOpenThreadTokenEx(_In_ HANDLE ThreadHandle, _In_ ACCESS_MASK DesiredAccess, _In_ BOOLEAN OpenAsSelf, _In_ ULONG HandleAttributes, _Out_ PHANDLE TokenHandle)
Opens a token that is tied to a thread handle.
Definition: token.c:2332
NTSYSCALLAPI NTSTATUS NTAPI NtCreateThread(_Out_ PHANDLE ThreadHandle, _In_ ACCESS_MASK DesiredAccess, _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes, _In_ HANDLE ProcessHandle, _Out_ PCLIENT_ID ClientId, _In_ PCONTEXT ThreadContext, _In_ PINITIAL_TEB UserStack, _In_ BOOLEAN CreateSuspended)
NTKERNELAPI PVOID NTAPI PsSetThreadWin32Thread(_Inout_ PETHREAD Thread, _In_opt_ PVOID Win32Thread, _In_opt_ PVOID OldWin32Thread)
NTKERNELAPI VOID NTAPI PsReturnProcessPagedPoolQuota(_In_ PEPROCESS Process, _In_ SIZE_T Amount)
Returns the paged pool quota that the process was taking up.
Definition: quota.c:965
NTKERNELAPI ULONG NTAPI PsGetProcessSessionId(_In_ PEPROCESS Process)
NTKERNELAPI VOID NTAPI PsReturnProcessNonPagedPoolQuota(_In_ PEPROCESS Process, _In_ SIZE_T Amount)
Returns the non paged quota pool that the process was taking up.
Definition: quota.c:938
NTKERNELAPI NTSTATUS NTAPI PsChargeProcessPoolQuota(_In_ PEPROCESS Process, _In_ POOL_TYPE PoolType, _In_ SIZE_T Amount)
Charges the process' quota pool. The type of quota to be charged depends upon the PoolType parameter.
Definition: quota.c:872
NTKERNELAPI PVOID NTAPI PsGetProcessWin32Process(_In_ PEPROCESS Process)
NTSYSAPI NTSTATUS NTAPI ZwCreateProcess(_Out_ PHANDLE ProcessHandle, _In_ ACCESS_MASK DesiredAccess, _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes, _In_ HANDLE ParentProcess, _In_ BOOLEAN InheritObjectTable, _In_opt_ HANDLE SectionHandle, _In_opt_ HANDLE DebugPort, _In_opt_ HANDLE ExceptionPort)
NTSYSCALLAPI NTSTATUS NTAPI NtCreateProcessEx(_Out_ PHANDLE ProcessHandle, _In_ ACCESS_MASK DesiredAccess, _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes, _In_ HANDLE ParentProcess, _In_ ULONG Flags, _In_opt_ HANDLE SectionHandle, _In_opt_ HANDLE DebugPort, _In_opt_ HANDLE ExceptionPort, _In_ BOOLEAN InJob)
NTKERNELAPI ULONG NTAPI PsGetJobUIRestrictionsClass(_In_ PEJOB Job)
NTKERNELAPI PVOID NTAPI PsGetCurrentThreadWin32Thread(VOID)
Definition: thread.c:829
NTSYSCALLAPI NTSTATUS NTAPI NtGetNextThread(_In_ HANDLE ProcessHandle, _In_opt_ HANDLE ThreadHandle, _In_ ACCESS_MASK DesiredAccess, _In_ ULONG HandleAttributes, _In_opt_ _Reserved_ ULONG Flags, _Out_ PHANDLE NewThreadHandle)
Definition: process.c:1809
_In_ THREADINFOCLASS ThreadInformationClass
Definition: psfuncs.h:887
NTKERNELAPI VOID NTAPI PsReturnPoolQuota(_In_ PEPROCESS Process, _In_ POOL_TYPE PoolType, _In_ SIZE_T Amount)
Returns the pool quota that the process was taking up.
Definition: quota.c:907
NTSYSCALLAPI NTSTATUS NTAPI NtOpenThread(_Out_ PHANDLE ThreadHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes, _In_ PCLIENT_ID ClientId)
NTSYSAPI NTSTATUS NTAPI ZwAlertThread(_In_ HANDLE ThreadHandle)
NTSYSAPI NTSTATUS NTAPI ZwIsProcessInJob(_In_ HANDLE ProcessHandle, _In_opt_ HANDLE JobHandle)
NTSYSAPI NTSTATUS NTAPI ZwCreateThread(_Out_ PHANDLE ThreadHandle, _In_ ACCESS_MASK DesiredAccess, _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes, _In_ HANDLE ProcessHandle, _Out_ PCLIENT_ID ClientId, _In_ PCONTEXT ThreadContext, _In_ PINITIAL_TEB UserStack, _In_ BOOLEAN CreateSuspended)
NTSYSCALLAPI NTSTATUS NTAPI NtCreateProcess(_Out_ PHANDLE ProcessHandle, _In_ ACCESS_MASK DesiredAccess, _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes, _In_ HANDLE ParentProcess, _In_ BOOLEAN InheritObjectTable, _In_opt_ HANDLE SectionHandle, _In_opt_ HANDLE DebugPort, _In_opt_ HANDLE ExceptionPort)
NTSYSAPI NTSTATUS NTAPI ZwOpenThreadTokenEx(_In_ HANDLE ThreadHandle, _In_ ACCESS_MASK DesiredAccess, _In_ BOOLEAN OpenAsSelf, _In_ ULONG HandleAttributes, _Out_ PHANDLE TokenHandle)
_In_ ACCESS_MASK _In_ ULONG HandleAttributes
Definition: psfuncs.h:771
NTSYSAPI NTSTATUS NTAPI ZwTerminateJobObject(_In_ HANDLE JobHandle, _In_ NTSTATUS ExitStatus)
NTSYSAPI NTSTATUS NTAPI ZwResumeProcess(_In_ HANDLE ProcessHandle)
NTKERNELAPI ULONG NTAPI PsGetThreadFreezeCount(_In_ PETHREAD Thread)
NTSYSAPI NTSTATUS NTAPI ZwCreateJobObject(_Out_ PHANDLE JobHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes)
NTSYSCALLAPI NTSTATUS NTAPI NtSetInformationJobObject(_In_ HANDLE JobHandle, _In_ JOBOBJECTINFOCLASS JobInformationClass, _In_bytecount_(JobInformationLength) PVOID JobInformation, _In_ ULONG JobInformationLength)
NTSYSAPI NTSTATUS NTAPI ZwResumeThread(_In_ HANDLE ThreadHandle, _Out_opt_ PULONG SuspendCount)
NTKERNELAPI VOID NTAPI PsRevertThreadToSelf(_Inout_ PETHREAD Thread)
NTSYSAPI NTSTATUS NTAPI ZwSuspendProcess(_In_ HANDLE ProcessHandle)
NTKERNELAPI NTSTATUS NTAPI PsSetProcessSecurityPort(_Inout_ PEPROCESS Process, _In_ PVOID SecurityPort)
NTKERNELAPI VOID NTAPI PsSetJobUIRestrictionsClass(_In_ PEJOB Job, _In_ ULONG UIRestrictionsClass)
NTSYSAPI NTSTATUS NTAPI ZwQueryInformationProcess(_In_ HANDLE ProcessHandle, _In_ PROCESSINFOCLASS ProcessInformationClass, _Out_ PVOID ProcessInformation, _In_ ULONG ProcessInformationLength, _Out_opt_ PULONG ReturnLength)
NTKERNELAPI HANDLE NTAPI PsGetCurrentThreadProcessId(VOID)
Definition: thread.c:779
NTSYSCALLAPI NTSTATUS NTAPI NtResumeThread(_In_ HANDLE ThreadHandle, _Out_opt_ PULONG SuspendCount)
NTSYSAPI NTSTATUS NTAPI ZwOpenThreadToken(_In_ HANDLE ThreadHandle, _In_ ACCESS_MASK DesiredAccess, _In_ BOOLEAN OpenAsSelf, _Out_ PHANDLE TokenHandle)
NTSYSAPI NTSTATUS NTAPI ZwQueryInformationJobObject(_In_ HANDLE JobHandle, _In_ JOBOBJECTINFOCLASS JobInformationClass, _Out_bytecap_(JobInformationLength) PVOID JobInformation, _In_ ULONG JobInformationLength, _Out_ PULONG ReturnLength)
BOOLEAN NTAPI PsIsProtectedProcess(_In_ PEPROCESS Process)
NTKERNELAPI VOID NTAPI PsChargePoolQuota(_In_ PEPROCESS Process, _In_ POOL_TYPE PoolType, _In_ SIZE_T Amount)
Charges the pool quota of a given process. The kind of pool quota to charge is determined by the Pool...
Definition: quota.c:775
_Must_inspect_result_ __kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtOpenProcessToken(_In_ HANDLE ProcessHandle, _In_ ACCESS_MASK DesiredAccess, _Out_ PHANDLE TokenHandle)
NTSYSCALLAPI NTSTATUS NTAPI NtApphelpCacheControl(_In_ APPHELPCACHESERVICECLASS Service, _In_opt_ PAPPHELP_CACHE_SERVICE_LOOKUP ServiceData)
Definition: apphelp.c:726
__kernel_entry NTSYSCALLAPI NTSTATUS NTAPI NtSetInformationThread(_In_ HANDLE ThreadHandle, _In_ THREADINFOCLASS ThreadInformationClass, _In_reads_bytes_(ThreadInformationLength) PVOID ThreadInformation, _In_ ULONG ThreadInformationLength)
Definition: query.c:2301
NTSYSCALLAPI NTSTATUS NTAPI NtQueryInformationJobObject(_In_ HANDLE JobHandle, _In_ JOBOBJECTINFOCLASS JobInformationClass, _Out_bytecap_(JobInformationLength) PVOID JobInformation, _In_ ULONG JobInformationLength, _Out_ PULONG ReturnLength)
NTSYSAPI NTSTATUS NTAPI ZwAlertResumeThread(_In_ HANDLE ThreadHandle, _Out_opt_ PULONG SuspendCount)
NTSYSAPI NTSTATUS NTAPI ZwRegisterThreadTerminatePort(_In_ HANDLE TerminationPort)
NTSYSAPI NTSTATUS NTAPI ZwAssignProcessToJobObject(_In_ HANDLE JobHandle, _In_ HANDLE ProcessHandle)
NTSYSCALLAPI NTSTATUS NTAPI NtTerminateThread(_In_ HANDLE ThreadHandle, _In_ NTSTATUS ExitStatus)
NTSYSCALLAPI NTSTATUS NTAPI NtTerminateProcess(_In_ HANDLE ProcessHandle, _In_ NTSTATUS ExitStatus)
#define _In_reads_bytes_(s)
Definition: no_sal2.h:170
#define _Out_opt_
Definition: no_sal2.h:214
#define _Inout_
Definition: no_sal2.h:162
#define _Must_inspect_result_
Definition: no_sal2.h:62
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
#define _Out_writes_bytes_to_opt_(s, c)
Definition: no_sal2.h:240
#define _Reserved_
Definition: no_sal2.h:504
ULONG ACCESS_MASK
Definition: nt_native.h:40
#define NTSYSCALLAPI
Definition: ntbasedef.h:208
_In_ ACCESS_MASK _In_ BOOLEAN OpenAsSelf
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
@ Service
Definition: ntsecapi.h:292
#define __kernel_entry
Definition: specstrings.h:355
Definition: compat.h:836
uint32_t * PULONG
Definition: typedefs.h:59
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
INT POOL_TYPE
Definition: typedefs.h:78
#define NTAPI
Definition: typedefs.h:36
ULONG_PTR SIZE_T
Definition: typedefs.h:80
uint32_t ULONG
Definition: typedefs.h:59
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
Definition: wdfdevice.h:2664
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
Definition: wdfdevice.h:3821
#define FORCEINLINE
Definition: wdftypes.h:67
#define NTKERNELAPI
_Out_ PCLIENT_ID ClientId
Definition: kefuncs.h:1151