ReactOS 0.4.17-dev-806-gffa4164
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#ifndef NTOS_MODE_USER
443{
444#if defined(_M_IX86)
445 return (struct _TEB *)__readfsdword(0x18);
446#elif defined (_M_AMD64)
447 return (struct _TEB *)__readgsqword(FIELD_OFFSET(NT_TIB, Self));
448#elif defined (_M_ARM)
449 // return (struct _TEB *)KeGetPcr()->Used_Self;
450 return (struct _TEB *)(ULONG_PTR)_MoveFromCoprocessor(CP15_TPIDRURW);
451#elif defined (_M_ARM64)
452 return (struct _TEB *)__getReg(18);
453// #elif defined(_M_PPC)
454// return (struct _TEB *)_read_teb_dword(0x18);
455#else
456#error Unsupported architecture
457#endif
458}
459#else
460struct _TEB * NtCurrentTeb(VOID);
461#endif
462
465NTAPI
467 _In_ HANDLE ThreadHandle,
468 _In_ HANDLE ThreadToImpersonate,
469 _In_ PSECURITY_QUALITY_OF_SERVICE SecurityQualityOfService
470);
471
474NTAPI
477 _In_opt_ HANDLE JobHandle
478);
479
483NTAPI
489);
490
495NTAPI
500);
501
504NTAPI
506 _Out_ PHANDLE ThreadHandle,
510);
511
514NTAPI
516 _In_ HANDLE ThreadHandle,
520);
521
524NTAPI
526 _In_ HANDLE ThreadHandle,
531);
532
535NTAPI
537 _In_ HANDLE JobHandle,
538 _In_ JOBOBJECTINFOCLASS JobInformationClass,
539 _Out_bytecap_(JobInformationLength) PVOID JobInformation,
540 _In_ ULONG JobInformationLength,
542);
543
544#ifndef _NTDDK_
548NTAPI
551 _In_ PROCESSINFOCLASS ProcessInformationClass,
552 _Out_writes_bytes_to_opt_(ProcessInformationLength, *ReturnLength)
553 PVOID ProcessInformation,
554 _In_ ULONG ProcessInformationLength,
556);
557#endif
558
561NTAPI
563 _In_ HANDLE ThreadHandle,
566 PVOID ThreadInformation,
569);
570
573NTAPI
575 _In_ HANDLE TerminationPort
576);
577
580NTAPI
582 _In_ HANDLE ThreadHandle,
583 _Out_opt_ PULONG SuspendCount
584);
585
588NTAPI
591);
592
595NTAPI
597 _In_ HANDLE JobHandle,
598 _In_ JOBOBJECTINFOCLASS JobInformationClass,
599 _In_bytecount_(JobInformationLength) PVOID JobInformation,
600 _In_ ULONG JobInformationLength
601);
602
605NTAPI
608 _In_ PROCESSINFOCLASS ProcessInformationClass,
609 _In_reads_bytes_(ProcessInformationLength) PVOID ProcessInformation,
610 _In_ ULONG ProcessInformationLength
611);
612
616NTAPI
618 _In_ HANDLE ThreadHandle,
622);
623
626NTAPI
629);
630
633NTAPI
635 _In_ HANDLE ThreadHandle,
636 _In_ PULONG PreviousSuspendCount
637);
638
641NTAPI
645);
646
649NTAPI
651 _In_ HANDLE ThreadHandle,
653);
654
657NTAPI
659 _In_ HANDLE JobHandle,
661);
662
665NTAPI
667 _In_ HANDLE ThreadHandle,
668 _Out_opt_ PULONG SuspendCount
669);
670
673NTAPI
675 _In_ HANDLE ThreadHandle
676);
677
680NTAPI
682 _In_ HANDLE JobHandle,
684);
685
688NTAPI
690 _Out_ PHANDLE JobHandle,
693);
694
697NTAPI
702 _In_ HANDLE ParentProcess,
703 _In_ BOOLEAN InheritObjectTable,
704 _In_opt_ HANDLE SectionHandle,
705 _In_opt_ HANDLE DebugPort,
706 _In_opt_ HANDLE ExceptionPort
707);
708
711NTAPI
713 _Out_ PHANDLE ThreadHandle,
718 _In_ PCONTEXT ThreadContext,
719 _In_ PINITIAL_TEB UserStack,
720 _In_ BOOLEAN CreateSuspended
721);
722
725NTAPI
727 _In_ HANDLE ThreadHandle,
728 _In_ HANDLE ThreadToImpersonate,
729 _In_ PSECURITY_QUALITY_OF_SERVICE SecurityQualityOfService
730);
731
734NTAPI
737 _In_opt_ HANDLE JobHandle
738);
739
743NTAPI
744ZwOpenProcessTokenEx(
749);
750
753NTAPI
755 _Out_ PHANDLE ThreadHandle,
759);
760
763NTAPI
765 _In_ HANDLE ThreadHandle,
769);
770
773NTAPI
775 _In_ HANDLE ThreadHandle,
780);
781
784NTAPI
786 _In_ HANDLE JobHandle,
787 _In_ JOBOBJECTINFOCLASS JobInformationClass,
788 _Out_bytecap_(JobInformationLength) PVOID JobInformation,
789 _In_ ULONG JobInformationLength,
791);
792
795NTAPI
798 _In_ PROCESSINFOCLASS ProcessInformationClass,
799 _Out_ PVOID ProcessInformation,
800 _In_ ULONG ProcessInformationLength,
802);
803
806NTAPI
808 _In_ HANDLE ThreadHandle,
810 _Out_ PVOID ThreadInformation,
813);
814
817NTAPI
819 _In_ HANDLE TerminationPort
820);
821
824NTAPI
826 _In_ HANDLE ThreadHandle,
827 _Out_opt_ PULONG SuspendCount
828);
829
832NTAPI
835);
836
839NTAPI
841 _In_ HANDLE JobHandle,
842 _In_ JOBOBJECTINFOCLASS JobInformationClass,
843 _In_ PVOID JobInformation,
844 _In_ ULONG JobInformationLength
845);
846
849NTAPI
852 _In_ PROCESSINFOCLASS ProcessInformationClass,
853 _In_ PVOID ProcessInformation,
854 _In_ ULONG ProcessInformationLength
855);
856
860NTAPI
861ZwSetInformationThread(
862 _In_ HANDLE ThreadHandle,
866);
867
870NTAPI
873);
874
877NTAPI
879 _In_ HANDLE ThreadHandle,
880 _In_ PULONG PreviousSuspendCount
881);
882
886NTAPI
887ZwTerminateProcess (
890 );
891
894NTAPI
896 _In_ HANDLE ThreadHandle,
898);
899
902NTAPI
904 _In_ HANDLE JobHandle,
906);
907
908#ifdef __cplusplus
909}
910#endif
911
912#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
#define __getReg(reg)
Definition: intrin_arm64.h:753
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:1287
_In_ NTSTATUS ExitStatus
Definition: psfuncs.h:890
NTSYSCALLAPI NTSTATUS NTAPI NtSuspendThread(_In_ HANDLE ThreadHandle, _In_ PULONG PreviousSuspendCount)
NTKERNELAPI PVOID NTAPI PsGetCurrentProcessWin32Process(VOID)
Definition: process.c:1213
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:749
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:866
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 NtRegisterThreadTerminatePort(_In_ HANDLE TerminationPort)
NTKERNELAPI ULONG NTAPI PsGetCurrentProcessSessionId(VOID)
Definition: process.c:1163
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:805
_In_ THREADINFOCLASS ThreadInformationClass
Definition: psfuncs.h:863
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:747
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:755
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:728
__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
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