2006-05-10 17:47:44 +00:00
|
|
|
/*++ NDK Version: 0098
|
2005-11-22 04:57:45 +00:00
|
|
|
|
|
|
|
Copyright (c) Alex Ionescu. All rights reserved.
|
|
|
|
|
|
|
|
Header Name:
|
|
|
|
|
|
|
|
psfuncs.h
|
|
|
|
|
|
|
|
Abstract:
|
|
|
|
|
|
|
|
Function definitions for the Process Manager
|
|
|
|
|
|
|
|
Author:
|
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
|
2005-11-22 04:57:45 +00:00
|
|
|
|
|
|
|
--*/
|
|
|
|
|
2005-06-18 23:33:40 +00:00
|
|
|
#ifndef _PSFUNCS_H
|
|
|
|
#define _PSFUNCS_H
|
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Dependencies
|
|
|
|
//
|
2005-11-25 00:17:40 +00:00
|
|
|
#include <umtypes.h>
|
|
|
|
#include <pstypes.h>
|
|
|
|
|
2008-06-16 09:20:47 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
2005-11-25 00:17:40 +00:00
|
|
|
#ifndef NTOS_MODE_USER
|
2005-06-18 23:33:40 +00:00
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Win32K Process/Thread Functions
|
|
|
|
//
|
2006-11-15 20:24:55 +00:00
|
|
|
NTKERNELAPI
|
2008-10-16 17:21:08 +00:00
|
|
|
PVOID
|
2005-11-22 04:57:45 +00:00
|
|
|
NTAPI
|
2006-07-20 14:53:47 +00:00
|
|
|
PsGetCurrentThreadWin32Thread(
|
2005-11-22 04:57:45 +00:00
|
|
|
VOID
|
|
|
|
);
|
2005-08-10 18:09:44 +00:00
|
|
|
|
2006-11-15 20:24:55 +00:00
|
|
|
NTKERNELAPI
|
2008-10-18 20:34:36 +00:00
|
|
|
PVOID
|
2005-11-22 04:57:45 +00:00
|
|
|
NTAPI
|
2006-07-20 14:53:47 +00:00
|
|
|
PsGetCurrentProcessWin32Process(
|
2005-11-22 04:57:45 +00:00
|
|
|
VOID
|
|
|
|
);
|
2005-08-10 18:09:44 +00:00
|
|
|
|
2006-11-15 20:24:55 +00:00
|
|
|
NTKERNELAPI
|
2005-06-26 16:06:32 +00:00
|
|
|
PVOID
|
2005-09-05 04:48:20 +00:00
|
|
|
NTAPI
|
2005-11-22 04:57:45 +00:00
|
|
|
PsGetProcessWin32Process(
|
|
|
|
PEPROCESS Process
|
|
|
|
);
|
2005-06-26 16:06:32 +00:00
|
|
|
|
2006-11-15 20:24:55 +00:00
|
|
|
NTKERNELAPI
|
2005-06-26 16:06:32 +00:00
|
|
|
VOID
|
2005-09-05 04:48:20 +00:00
|
|
|
NTAPI
|
2005-06-26 16:06:32 +00:00
|
|
|
PsSetProcessWin32Process(
|
|
|
|
PEPROCESS Process,
|
|
|
|
PVOID Win32Process
|
|
|
|
);
|
|
|
|
|
2006-11-15 20:24:55 +00:00
|
|
|
NTKERNELAPI
|
2005-06-26 16:06:32 +00:00
|
|
|
VOID
|
2005-09-05 04:48:20 +00:00
|
|
|
NTAPI
|
2005-06-26 16:06:32 +00:00
|
|
|
PsSetThreadWin32Thread(
|
|
|
|
PETHREAD Thread,
|
|
|
|
PVOID Win32Thread
|
|
|
|
);
|
|
|
|
|
2006-11-15 20:24:55 +00:00
|
|
|
NTKERNELAPI
|
2005-06-26 16:06:32 +00:00
|
|
|
PVOID
|
2005-09-05 04:48:20 +00:00
|
|
|
NTAPI
|
2005-11-22 04:57:45 +00:00
|
|
|
PsGetThreadWin32Thread(
|
|
|
|
PETHREAD Thread
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2008-09-27 16:24:50 +00:00
|
|
|
NTKERNELAPI
|
|
|
|
PTEB
|
|
|
|
NTAPI
|
|
|
|
PsGetThreadTeb(
|
|
|
|
IN PETHREAD Thread
|
|
|
|
);
|
|
|
|
|
2009-08-06 11:16:42 +00:00
|
|
|
NTKERNELAPI
|
|
|
|
HANDLE
|
|
|
|
NTAPI
|
|
|
|
PsGetThreadId(
|
|
|
|
IN PETHREAD Thread
|
|
|
|
);
|
|
|
|
|
2006-11-15 20:24:55 +00:00
|
|
|
NTKERNELAPI
|
2006-06-23 21:21:45 +00:00
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
PsGetThreadHardErrorsAreDisabled(
|
|
|
|
PETHREAD Thread
|
|
|
|
);
|
|
|
|
|
2006-11-15 20:24:55 +00:00
|
|
|
NTKERNELAPI
|
2007-10-19 23:21:45 +00:00
|
|
|
VOID
|
2006-06-23 21:21:45 +00:00
|
|
|
NTAPI
|
|
|
|
PsSetThreadHardErrorsAreDisabled(
|
|
|
|
PETHREAD Thread,
|
|
|
|
IN BOOLEAN Disabled
|
|
|
|
);
|
|
|
|
|
2006-11-15 20:24:55 +00:00
|
|
|
NTKERNELAPI
|
2007-10-19 23:21:45 +00:00
|
|
|
VOID
|
2005-09-05 04:48:20 +00:00
|
|
|
NTAPI
|
2005-11-22 04:57:45 +00:00
|
|
|
PsEstablishWin32Callouts(
|
2006-05-10 17:47:44 +00:00
|
|
|
PWIN32_CALLOUTS_FPNS CalloutData
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2006-11-15 20:24:55 +00:00
|
|
|
NTKERNELAPI
|
2005-12-06 01:53:03 +00:00
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
PsReturnProcessNonPagedPoolQuota(
|
|
|
|
IN PEPROCESS Process,
|
2008-05-06 23:19:22 +00:00
|
|
|
IN SIZE_T Amount
|
2005-12-06 01:53:03 +00:00
|
|
|
);
|
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Process Impersonation Functions
|
|
|
|
//
|
2006-11-15 20:24:55 +00:00
|
|
|
NTKERNELAPI
|
2005-11-22 04:57:45 +00:00
|
|
|
VOID
|
2005-09-05 04:48:20 +00:00
|
|
|
NTAPI
|
2005-11-22 04:57:45 +00:00
|
|
|
PsRevertThreadToSelf(
|
|
|
|
IN PETHREAD Thread
|
2005-06-18 23:33:40 +00:00
|
|
|
);
|
|
|
|
|
2005-11-22 04:57:45 +00:00
|
|
|
//
|
|
|
|
// Misc. Functions
|
|
|
|
//
|
2006-11-15 20:24:55 +00:00
|
|
|
NTKERNELAPI
|
2006-10-30 14:17:37 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
PsLookupProcessThreadByCid(
|
|
|
|
IN PCLIENT_ID Cid,
|
|
|
|
OUT PEPROCESS *Process OPTIONAL,
|
|
|
|
OUT PETHREAD *Thread
|
|
|
|
);
|
|
|
|
|
2007-04-07 05:33:30 +00:00
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
PsIsProtectedProcess(
|
|
|
|
IN PEPROCESS Process
|
|
|
|
);
|
|
|
|
|
2008-09-25 14:39:38 +00:00
|
|
|
NTKERNELAPI
|
|
|
|
BOOLEAN
|
|
|
|
NTAPI
|
|
|
|
PsIsSystemProcess(
|
|
|
|
IN PEPROCESS Process
|
|
|
|
);
|
|
|
|
|
2009-06-10 19:24:38 +00:00
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
PsSetProcessPriorityByClass(
|
|
|
|
IN PEPROCESS Process,
|
|
|
|
IN PSPROCESSPRIORITYMODE Type
|
|
|
|
);
|
|
|
|
|
2009-08-03 21:01:48 +00:00
|
|
|
HANDLE
|
|
|
|
NTAPI
|
|
|
|
PsGetProcessInheritedFromUniqueProcessId(
|
|
|
|
IN PEPROCESS Process
|
|
|
|
);
|
|
|
|
|
2007-09-26 16:41:35 +00:00
|
|
|
//
|
|
|
|
// Quota Functions
|
|
|
|
//
|
|
|
|
NTKERNELAPI
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
PsChargePoolQuota(
|
|
|
|
IN PEPROCESS Process,
|
|
|
|
IN POOL_TYPE PoolType,
|
2008-05-06 23:19:22 +00:00
|
|
|
IN SIZE_T Amount
|
2007-09-26 16:41:35 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
NTKERNELAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
PsChargeProcessNonPagedPoolQuota(
|
|
|
|
IN PEPROCESS Process,
|
2008-05-06 23:19:22 +00:00
|
|
|
IN SIZE_T Amount
|
2007-09-26 16:41:35 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
NTKERNELAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
PsChargeProcessPagedPoolQuota(
|
|
|
|
IN PEPROCESS Process,
|
2008-05-06 23:19:22 +00:00
|
|
|
IN SIZE_T Amount
|
2007-09-26 16:41:35 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
NTKERNELAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
PsChargeProcessPoolQuota(
|
|
|
|
IN PEPROCESS Process,
|
|
|
|
IN POOL_TYPE PoolType,
|
2008-05-06 23:19:22 +00:00
|
|
|
IN SIZE_T Amount
|
2007-09-26 16:41:35 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
NTKERNELAPI
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
PsReturnPoolQuota(
|
|
|
|
IN PEPROCESS Process,
|
|
|
|
IN POOL_TYPE PoolType,
|
2008-05-06 23:19:22 +00:00
|
|
|
IN SIZE_T Amount
|
2007-09-26 16:41:35 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
NTKERNELAPI
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
PsReturnProcessNonPagedPoolQuota(
|
|
|
|
IN PEPROCESS Process,
|
2008-05-06 23:19:22 +00:00
|
|
|
IN SIZE_T Amount
|
2007-09-26 16:41:35 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
NTKERNELAPI
|
|
|
|
VOID
|
|
|
|
NTAPI
|
|
|
|
PsReturnProcessPagedPoolQuota(
|
|
|
|
IN PEPROCESS Process,
|
2008-05-06 23:19:22 +00:00
|
|
|
IN SIZE_T Amount
|
2007-09-26 16:41:35 +00:00
|
|
|
);
|
|
|
|
|
2005-06-18 23:33:40 +00:00
|
|
|
#endif
|
2005-11-25 00:17:40 +00:00
|
|
|
|
|
|
|
//
|
|
|
|
// Native Calls
|
|
|
|
//
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSCALLAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtAlertResumeThread(
|
|
|
|
IN HANDLE ThreadHandle,
|
|
|
|
OUT PULONG SuspendCount
|
|
|
|
);
|
|
|
|
|
2006-10-23 21:28:17 +00:00
|
|
|
typedef ULONG APPHELPCACHESERVICECLASS;
|
2006-11-15 20:24:55 +00:00
|
|
|
NTSYSCALLAPI
|
2006-10-23 21:28:17 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtApphelpCacheControl(
|
|
|
|
IN APPHELPCACHESERVICECLASS Service,
|
|
|
|
IN PVOID ServiceData
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSCALLAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtAlertThread(
|
|
|
|
IN HANDLE ThreadHandle
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSCALLAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtAssignProcessToJobObject(
|
|
|
|
HANDLE JobHandle,
|
|
|
|
HANDLE ProcessHandle
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSCALLAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtCreateJobObject(
|
|
|
|
PHANDLE JobHandle,
|
|
|
|
ACCESS_MASK DesiredAccess,
|
|
|
|
POBJECT_ATTRIBUTES ObjectAttributes
|
|
|
|
);
|
|
|
|
|
2006-10-23 21:19:15 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtCreateJobSet(
|
|
|
|
IN ULONG NumJob,
|
|
|
|
IN PJOB_SET_ARRAY UserJobSet,
|
|
|
|
IN ULONG Flags
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSCALLAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtCreateProcess(
|
|
|
|
OUT PHANDLE ProcessHandle,
|
|
|
|
IN ACCESS_MASK DesiredAccess,
|
|
|
|
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
|
|
|
IN HANDLE ParentProcess,
|
|
|
|
IN BOOLEAN InheritObjectTable,
|
|
|
|
IN HANDLE SectionHandle OPTIONAL,
|
|
|
|
IN HANDLE DebugPort OPTIONAL,
|
|
|
|
IN HANDLE ExceptionPort OPTIONAL
|
|
|
|
);
|
|
|
|
|
2006-10-23 21:19:15 +00:00
|
|
|
NTSYSCALLAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtCreateProcessEx(
|
|
|
|
OUT PHANDLE ProcessHandle,
|
|
|
|
IN ACCESS_MASK DesiredAccess,
|
|
|
|
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
|
|
|
IN HANDLE ParentProcess,
|
|
|
|
IN ULONG Flags,
|
|
|
|
IN HANDLE SectionHandle OPTIONAL,
|
|
|
|
IN HANDLE DebugPort OPTIONAL,
|
|
|
|
IN HANDLE ExceptionPort OPTIONAL,
|
|
|
|
IN BOOLEAN InJob
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSCALLAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtCreateThread(
|
|
|
|
OUT PHANDLE ThreadHandle,
|
|
|
|
IN ACCESS_MASK DesiredAccess,
|
|
|
|
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
|
|
|
IN HANDLE ProcessHandle,
|
|
|
|
OUT PCLIENT_ID ClientId,
|
|
|
|
IN PCONTEXT ThreadContext,
|
|
|
|
IN PINITIAL_TEB UserStack,
|
|
|
|
IN BOOLEAN CreateSuspended
|
|
|
|
);
|
|
|
|
|
[CACHE]
The cache manager rewrite I started years ago has finally appeared in
ReactOS' trunk and although at this point it's not quite perfectly
integrated, it's enough to boot up the bootcd or livecd. To check out
the more mature original, check out arty-newcc-reactos, branch
arty-newcc on bitbucket.org . Amine Khaldi encouraged me quite a bit
to not give up on it, and was able to reach out and be an advocate
when i really wasn't able to. Others agree that the time has come to
begin removing the old cache manager. I expect the remaining problems
in the version going to trunk will be taken care of relatively
quickly.
The motivation for this effort lies in the particularly hairy
relationship between ReactOS' cache manager and data sections. This
code completely removes page sharing between cache manager and section
and reimagines cache manager as being a facility layered on the memory
manager, not really caring about individual pages, but simply managing
data section objects where caching might occur.
It took me about 2 years to do the first pass of this rewrite and most
of this year to fix some lingering issues, properly implement demand
paging in ReactOS (code which didn't come with this patch in a
recognizable form), and finish getting the PrivateCacheMap and
SharedCacheMap relationship correct.
Currently, the new ntoskrnl/cache directory contains an own
implementation of data file sections. After things have settled down,
we can begin to deprecate and remove the parts of ReactOS' section
implementation that depend on a close relationship with cache
manager. Eventually, I think that the extra code added to
ntoskrnl/cache/section will be removed and ReactOS' own sections will
replace the use of the special MM_CACHE_SECTION_SEGMENT in the cache
path.
Note also, that this makes all cache manager (and new section parts)
use wide file offsets. If my section code were to take over other
parts of the ReactOS memory manager, they would also benefit from
these improvements.
I invite anyone who wants to to peek at this code and fix whatever
bugs can be found.
svn path=/trunk/; revision=49423
2010-11-02 02:32:39 +00:00
|
|
|
#include "inline_ntcurrentteb.h"
|
2006-09-07 21:36:15 +00:00
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSCALLAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtImpersonateThread(
|
|
|
|
IN HANDLE ThreadHandle,
|
|
|
|
IN HANDLE ThreadToImpersonate,
|
|
|
|
IN PSECURITY_QUALITY_OF_SERVICE SecurityQualityOfService
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSCALLAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtIsProcessInJob(
|
|
|
|
IN HANDLE ProcessHandle,
|
|
|
|
IN HANDLE JobHandle OPTIONAL
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSCALLAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtOpenProcess(
|
|
|
|
OUT PHANDLE ProcessHandle,
|
|
|
|
IN ACCESS_MASK DesiredAccess,
|
|
|
|
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
|
|
|
IN PCLIENT_ID ClientId
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSCALLAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtOpenThread(
|
|
|
|
OUT PHANDLE ThreadHandle,
|
|
|
|
IN ACCESS_MASK DesiredAccess,
|
|
|
|
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
|
|
|
IN PCLIENT_ID ClientId
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSCALLAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtOpenThreadToken(
|
|
|
|
IN HANDLE ThreadHandle,
|
|
|
|
IN ACCESS_MASK DesiredAccess,
|
|
|
|
IN BOOLEAN OpenAsSelf,
|
|
|
|
OUT PHANDLE TokenHandle
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSCALLAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtOpenThreadTokenEx(
|
|
|
|
IN HANDLE ThreadHandle,
|
|
|
|
IN ACCESS_MASK DesiredAccess,
|
|
|
|
IN BOOLEAN OpenAsSelf,
|
|
|
|
IN ULONG HandleAttributes,
|
|
|
|
OUT PHANDLE TokenHandle
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSCALLAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtQueryInformationJobObject(
|
|
|
|
HANDLE JobHandle,
|
|
|
|
JOBOBJECTINFOCLASS JobInformationClass,
|
|
|
|
PVOID JobInformation,
|
|
|
|
ULONG JobInformationLength,
|
|
|
|
PULONG ReturnLength
|
|
|
|
);
|
|
|
|
|
|
|
|
#ifndef _NTDDK_
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSCALLAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtQueryInformationProcess(
|
|
|
|
IN HANDLE ProcessHandle,
|
|
|
|
IN PROCESSINFOCLASS ProcessInformationClass,
|
|
|
|
OUT PVOID ProcessInformation,
|
|
|
|
IN ULONG ProcessInformationLength,
|
|
|
|
OUT PULONG ReturnLength OPTIONAL
|
|
|
|
);
|
|
|
|
#endif
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSCALLAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtQueryInformationThread(
|
|
|
|
IN HANDLE ThreadHandle,
|
|
|
|
IN THREADINFOCLASS ThreadInformationClass,
|
|
|
|
OUT PVOID ThreadInformation,
|
|
|
|
IN ULONG ThreadInformationLength,
|
|
|
|
OUT PULONG ReturnLength
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSCALLAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtRegisterThreadTerminatePort(
|
|
|
|
HANDLE TerminationPort
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSCALLAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtResumeThread(
|
|
|
|
IN HANDLE ThreadHandle,
|
|
|
|
OUT PULONG SuspendCount
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSCALLAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtResumeProcess(
|
|
|
|
IN HANDLE ProcessHandle
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSCALLAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtSetInformationJobObject(
|
|
|
|
HANDLE JobHandle,
|
|
|
|
JOBOBJECTINFOCLASS JobInformationClass,
|
|
|
|
PVOID JobInformation,
|
|
|
|
ULONG JobInformationLength
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSCALLAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtSetInformationProcess(
|
|
|
|
IN HANDLE ProcessHandle,
|
|
|
|
IN PROCESSINFOCLASS ProcessInformationClass,
|
|
|
|
IN PVOID ProcessInformation,
|
|
|
|
IN ULONG ProcessInformationLength
|
|
|
|
);
|
|
|
|
|
|
|
|
NTSYSCALLAPI
|
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtSetInformationThread(
|
|
|
|
IN HANDLE ThreadHandle,
|
|
|
|
IN THREADINFOCLASS ThreadInformationClass,
|
|
|
|
IN PVOID ThreadInformation,
|
|
|
|
IN ULONG ThreadInformationLength
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSCALLAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtSuspendProcess(
|
|
|
|
IN HANDLE ProcessHandle
|
|
|
|
);
|
|
|
|
|
2006-05-10 17:47:44 +00:00
|
|
|
NTSYSCALLAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtSuspendThread(
|
|
|
|
IN HANDLE ThreadHandle,
|
|
|
|
IN PULONG PreviousSuspendCount
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSCALLAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtTerminateProcess(
|
|
|
|
IN HANDLE ProcessHandle,
|
|
|
|
IN NTSTATUS ExitStatus
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSCALLAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtTerminateThread(
|
|
|
|
IN HANDLE ThreadHandle,
|
|
|
|
IN NTSTATUS ExitStatus
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSCALLAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
NtTerminateJobObject(
|
|
|
|
HANDLE JobHandle,
|
|
|
|
NTSTATUS ExitStatus
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwAlertResumeThread(
|
|
|
|
IN HANDLE ThreadHandle,
|
|
|
|
OUT PULONG SuspendCount
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwAlertThread(
|
|
|
|
IN HANDLE ThreadHandle
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwAssignProcessToJobObject(
|
|
|
|
HANDLE JobHandle,
|
|
|
|
HANDLE ProcessHandle
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwCreateJobObject(
|
|
|
|
PHANDLE JobHandle,
|
|
|
|
ACCESS_MASK DesiredAccess,
|
|
|
|
POBJECT_ATTRIBUTES ObjectAttributes
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwCreateProcess(
|
|
|
|
OUT PHANDLE ProcessHandle,
|
|
|
|
IN ACCESS_MASK DesiredAccess,
|
|
|
|
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
|
|
|
IN HANDLE ParentProcess,
|
|
|
|
IN BOOLEAN InheritObjectTable,
|
|
|
|
IN HANDLE SectionHandle OPTIONAL,
|
|
|
|
IN HANDLE DebugPort OPTIONAL,
|
|
|
|
IN HANDLE ExceptionPort OPTIONAL
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwCreateThread(
|
|
|
|
OUT PHANDLE ThreadHandle,
|
|
|
|
IN ACCESS_MASK DesiredAccess,
|
|
|
|
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
|
|
|
IN HANDLE ProcessHandle,
|
|
|
|
OUT PCLIENT_ID ClientId,
|
|
|
|
IN PCONTEXT ThreadContext,
|
|
|
|
IN PINITIAL_TEB UserStack,
|
|
|
|
IN BOOLEAN CreateSuspended
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwImpersonateThread(
|
|
|
|
IN HANDLE ThreadHandle,
|
|
|
|
IN HANDLE ThreadToImpersonate,
|
|
|
|
IN PSECURITY_QUALITY_OF_SERVICE SecurityQualityOfService
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwIsProcessInJob(
|
|
|
|
IN HANDLE ProcessHandle,
|
|
|
|
IN HANDLE JobHandle OPTIONAL
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwOpenProcess(
|
|
|
|
OUT PHANDLE ProcessHandle,
|
|
|
|
IN ACCESS_MASK DesiredAccess,
|
|
|
|
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
|
|
|
IN PCLIENT_ID ClientId
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwOpenThread(
|
|
|
|
OUT PHANDLE ThreadHandle,
|
|
|
|
IN ACCESS_MASK DesiredAccess,
|
|
|
|
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
|
|
|
IN PCLIENT_ID ClientId
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwOpenThreadToken(
|
|
|
|
IN HANDLE ThreadHandle,
|
|
|
|
IN ACCESS_MASK DesiredAccess,
|
|
|
|
IN BOOLEAN OpenAsSelf,
|
|
|
|
OUT PHANDLE TokenHandle
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwOpenThreadTokenEx(
|
|
|
|
IN HANDLE ThreadHandle,
|
|
|
|
IN ACCESS_MASK DesiredAccess,
|
|
|
|
IN BOOLEAN OpenAsSelf,
|
|
|
|
IN ULONG HandleAttributes,
|
|
|
|
OUT PHANDLE TokenHandle
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwQueryInformationJobObject(
|
|
|
|
HANDLE JobHandle,
|
|
|
|
JOBOBJECTINFOCLASS JobInformationClass,
|
|
|
|
PVOID JobInformation,
|
|
|
|
ULONG JobInformationLength,
|
|
|
|
PULONG ReturnLength
|
|
|
|
);
|
|
|
|
|
|
|
|
#ifndef _NTDDK_
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwQueryInformationProcess(
|
|
|
|
IN HANDLE ProcessHandle,
|
|
|
|
IN PROCESSINFOCLASS ProcessInformationClass,
|
|
|
|
OUT PVOID ProcessInformation,
|
|
|
|
IN ULONG ProcessInformationLength,
|
|
|
|
OUT PULONG ReturnLength OPTIONAL
|
|
|
|
);
|
|
|
|
#endif
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwQueryInformationThread(
|
|
|
|
IN HANDLE ThreadHandle,
|
|
|
|
IN THREADINFOCLASS ThreadInformationClass,
|
|
|
|
OUT PVOID ThreadInformation,
|
|
|
|
IN ULONG ThreadInformationLength,
|
|
|
|
OUT PULONG ReturnLength
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwRegisterThreadTerminatePort(
|
|
|
|
HANDLE TerminationPort
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwResumeThread(
|
|
|
|
IN HANDLE ThreadHandle,
|
|
|
|
OUT PULONG SuspendCount
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwResumeProcess(
|
|
|
|
IN HANDLE ProcessHandle
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwSetInformationJobObject(
|
|
|
|
HANDLE JobHandle,
|
|
|
|
JOBOBJECTINFOCLASS JobInformationClass,
|
|
|
|
PVOID JobInformation,
|
|
|
|
ULONG JobInformationLength
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwSetInformationProcess(
|
|
|
|
IN HANDLE ProcessHandle,
|
|
|
|
IN PROCESSINFOCLASS ProcessInformationClass,
|
|
|
|
IN PVOID ProcessInformation,
|
|
|
|
IN ULONG ProcessInformationLength
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwSetInformationThread(
|
|
|
|
IN HANDLE ThreadHandle,
|
|
|
|
IN THREADINFOCLASS ThreadInformationClass,
|
|
|
|
IN PVOID ThreadInformation,
|
|
|
|
IN ULONG ThreadInformationLength
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwSuspendProcess(
|
|
|
|
IN HANDLE ProcessHandle
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwSuspendThread(
|
|
|
|
IN HANDLE ThreadHandle,
|
|
|
|
IN PULONG PreviousSuspendCount
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwTerminateProcess(
|
|
|
|
IN HANDLE ProcessHandle,
|
|
|
|
IN NTSTATUS ExitStatus
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwTerminateThread(
|
|
|
|
IN HANDLE ThreadHandle,
|
|
|
|
IN NTSTATUS ExitStatus
|
|
|
|
);
|
|
|
|
|
2006-03-04 17:27:40 +00:00
|
|
|
NTSYSAPI
|
2005-11-25 00:17:40 +00:00
|
|
|
NTSTATUS
|
|
|
|
NTAPI
|
|
|
|
ZwTerminateJobObject(
|
|
|
|
HANDLE JobHandle,
|
|
|
|
NTSTATUS ExitStatus
|
|
|
|
);
|
|
|
|
|
2008-06-16 09:20:47 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2005-11-25 00:17:40 +00:00
|
|
|
#endif
|