Process Hacker
|
Go to the source code of this file.
Data Structures | |
struct | _KPH_PARAMETERS |
Macros | |
#define | PHNT_MODE PHNT_MODE_KERNEL |
#define | dprintf |
Typedefs | |
typedef struct _KPH_PARAMETERS | KPH_PARAMETERS |
typedef struct _KPH_PARAMETERS * | PKPH_PARAMETERS |
Functions | |
NTSTATUS | KpiGetFeatures (__out PULONG Features, __in KPROCESSOR_MODE AccessMode) |
NTSTATUS | KphEnumerateSystemModules (__out PRTL_PROCESS_MODULES *Modules) |
Enumerates the modules loaded by the kernel. | |
NTSTATUS | KphValidateAddressForSystemModules (__in PVOID Address, __in SIZE_T Length) |
Checks if an address range lies within a kernel module. | |
__drv_dispatchType (IRP_MJ_DEVICE_CONTROL) DRIVER_DISPATCH KphDispatchDeviceControl | |
NTSTATUS | KphDispatchDeviceControl (__in PDEVICE_OBJECT DeviceObject, __in PIRP Irp) |
VOID | KphDynamicImport (VOID) |
Dynamically imports routines. | |
PVOID | KphGetSystemRoutineAddress (__in PWSTR SystemRoutineName) |
Retrieves the address of a function exported by NTOS or HAL. | |
POBJECT_TYPE | KphGetObjectType (__in PVOID Object) |
Gets the type of an object. | |
PHANDLE_TABLE | KphReferenceProcessHandleTable (__in PEPROCESS Process) |
Gets a pointer to the handle table of a process. | |
VOID | KphDereferenceProcessHandleTable (__in PEPROCESS Process) |
Dereferences the handle table of a process. | |
VOID | KphUnlockHandleTableEntry (__in PHANDLE_TABLE HandleTable, __in PHANDLE_TABLE_ENTRY HandleTableEntry) |
NTSTATUS | KpiEnumerateProcessHandles (__in HANDLE ProcessHandle, __out_bcount(BufferLength) PVOID Buffer, __in_opt ULONG BufferLength, __out_opt PULONG ReturnLength, __in KPROCESSOR_MODE AccessMode) |
Enumerates the handles of a process. | |
NTSTATUS | KphQueryNameObject (__in PVOID Object, __out_bcount(BufferLength) POBJECT_NAME_INFORMATION Buffer, __in ULONG BufferLength, __out PULONG ReturnLength) |
Queries the name of an object. | |
NTSTATUS | KphQueryNameFileObject (__in PFILE_OBJECT FileObject, __out_bcount(BufferLength) POBJECT_NAME_INFORMATION Buffer, __in ULONG BufferLength, __out PULONG ReturnLength) |
Queries the name of a file object. | |
NTSTATUS | KpiQueryInformationObject (__in HANDLE ProcessHandle, __in HANDLE Handle, __in KPH_OBJECT_INFORMATION_CLASS ObjectInformationClass, __out_bcount(ObjectInformationLength) PVOID ObjectInformation, __in ULONG ObjectInformationLength, __out_opt PULONG ReturnLength, __in KPROCESSOR_MODE AccessMode) |
Queries object information. | |
NTSTATUS | KpiSetInformationObject (__in HANDLE ProcessHandle, __in HANDLE Handle, __in KPH_OBJECT_INFORMATION_CLASS ObjectInformationClass, __in_bcount(ObjectInformationLength) PVOID ObjectInformation, __in ULONG ObjectInformationLength, __in KPROCESSOR_MODE AccessMode) |
Sets object information. | |
NTSTATUS | KphDuplicateObject (__in PEPROCESS SourceProcess, __in_opt PEPROCESS TargetProcess, __in HANDLE SourceHandle, __out_opt PHANDLE TargetHandle, __in ACCESS_MASK DesiredAccess, __in ULONG HandleAttributes, __in ULONG Options, __in KPROCESSOR_MODE AccessMode) |
Re-opens an object. | |
NTSTATUS | KpiDuplicateObject (__in HANDLE SourceProcessHandle, __in HANDLE SourceHandle, __in_opt HANDLE TargetProcessHandle, __out_opt PHANDLE TargetHandle, __in ACCESS_MASK DesiredAccess, __in ULONG HandleAttributes, __in ULONG Options, __in KPROCESSOR_MODE AccessMode) |
Re-opens an object. | |
NTSTATUS | KphOpenNamedObject (__out PHANDLE ObjectHandle, __in ACCESS_MASK DesiredAccess, __in POBJECT_ATTRIBUTES ObjectAttributes, __in POBJECT_TYPE ObjectType, __in KPROCESSOR_MODE AccessMode) |
NTSTATUS | KpiOpenProcess (__out PHANDLE ProcessHandle, __in ACCESS_MASK DesiredAccess, __in PCLIENT_ID ClientId, __in KPROCESSOR_MODE AccessMode) |
Opens a process. | |
NTSTATUS | KpiOpenProcessToken (__in HANDLE ProcessHandle, __in ACCESS_MASK DesiredAccess, __out PHANDLE TokenHandle, __in KPROCESSOR_MODE AccessMode) |
Opens the token of a process. | |
NTSTATUS | KpiOpenProcessJob (__in HANDLE ProcessHandle, __in ACCESS_MASK DesiredAccess, __out PHANDLE JobHandle, __in KPROCESSOR_MODE AccessMode) |
Opens the job object of a process. | |
NTSTATUS | KpiSuspendProcess (__in HANDLE ProcessHandle, __in KPROCESSOR_MODE AccessMode) |
Suspends a process. | |
NTSTATUS | KpiResumeProcess (__in HANDLE ProcessHandle, __in KPROCESSOR_MODE AccessMode) |
Resumes a process. | |
NTSTATUS | KphTerminateProcessInternal (__in PEPROCESS Process, __in NTSTATUS ExitStatus) |
Terminates a process using PsTerminateProcess. | |
NTSTATUS | KpiTerminateProcess (__in HANDLE ProcessHandle, __in NTSTATUS ExitStatus, __in KPROCESSOR_MODE AccessMode) |
Terminates a process using PsTerminateProcess. | |
NTSTATUS | KpiQueryInformationProcess (__in HANDLE ProcessHandle, __in KPH_PROCESS_INFORMATION_CLASS ProcessInformationClass, __out_bcount(ProcessInformationLength) PVOID ProcessInformation, __in ULONG ProcessInformationLength, __out_opt PULONG ReturnLength, __in KPROCESSOR_MODE AccessMode) |
Queries process information. | |
NTSTATUS | KpiSetInformationProcess (__in HANDLE ProcessHandle, __in KPH_PROCESS_INFORMATION_CLASS ProcessInformationClass, __in_bcount(ProcessInformationLength) PVOID ProcessInformation, __in ULONG ProcessInformationLength, __in KPROCESSOR_MODE AccessMode) |
Sets process information. | |
BOOLEAN | KphAcquireProcessRundownProtection (__in PEPROCESS Process) |
Prevents a process from terminating. | |
VOID | KphReleaseProcessRundownProtection (__in PEPROCESS Process) |
Allows a process to terminate. | |
NTSTATUS | KpiOpenDriver (__out PHANDLE DriverHandle, __in POBJECT_ATTRIBUTES ObjectAttributes, __in KPROCESSOR_MODE AccessMode) |
NTSTATUS | KpiQueryInformationDriver (__in HANDLE DriverHandle, __in DRIVER_INFORMATION_CLASS DriverInformationClass, __out_bcount(DriverInformationLength) PVOID DriverInformation, __in ULONG DriverInformationLength, __out_opt PULONG ReturnLength, __in KPROCESSOR_MODE AccessMode) |
NTSTATUS | KpiOpenThread (__out PHANDLE ThreadHandle, __in ACCESS_MASK DesiredAccess, __in PCLIENT_ID ClientId, __in KPROCESSOR_MODE AccessMode) |
Opens a thread. | |
NTSTATUS | KpiOpenThreadProcess (__in HANDLE ThreadHandle, __in ACCESS_MASK DesiredAccess, __out PHANDLE ProcessHandle, __in KPROCESSOR_MODE AccessMode) |
Opens the process of a thread. | |
NTSTATUS | KphTerminateThreadByPointerInternal (__in PETHREAD Thread, __in NTSTATUS ExitStatus) |
Terminates a thread using PspTerminateThreadByPointer. | |
NTSTATUS | KpiTerminateThread (__in HANDLE ThreadHandle, __in NTSTATUS ExitStatus, __in KPROCESSOR_MODE AccessMode) |
Terminates a thread. | |
NTSTATUS | KpiTerminateThreadUnsafe (__in HANDLE ThreadHandle, __in NTSTATUS ExitStatus, __in KPROCESSOR_MODE AccessMode) |
Terminates a thread using an unsafe method. | |
NTSTATUS | KpiGetContextThread (__in HANDLE ThreadHandle, __inout PCONTEXT ThreadContext, __in KPROCESSOR_MODE AccessMode) |
Gets the context of a thread. | |
NTSTATUS | KpiSetContextThread (__in HANDLE ThreadHandle, __in PCONTEXT ThreadContext, __in KPROCESSOR_MODE AccessMode) |
Sets the context of a thread. | |
ULONG | KphCaptureStackBackTrace (__in ULONG FramesToSkip, __in ULONG FramesToCapture, __in_opt ULONG Flags, __out_ecount(FramesToCapture) PVOID *BackTrace, __out_opt PULONG BackTraceHash) |
Captures a stack trace of the current thread. | |
NTSTATUS | KphCaptureStackBackTraceThread (__in PETHREAD Thread, __in ULONG FramesToSkip, __in ULONG FramesToCapture, __out_ecount(FramesToCapture) PVOID *BackTrace, __out_opt PULONG CapturedFrames, __out_opt PULONG BackTraceHash, __in KPROCESSOR_MODE AccessMode) |
Captures the stack trace of a thread. | |
NTSTATUS | KpiCaptureStackBackTraceThread (__in HANDLE ThreadHandle, __in ULONG FramesToSkip, __in ULONG FramesToCapture, __out_ecount(FramesToCapture) PVOID *BackTrace, __out_opt PULONG CapturedFrames, __out_opt PULONG BackTraceHash, __in KPROCESSOR_MODE AccessMode) |
Captures the stack trace of a thread. | |
NTSTATUS | KpiQueryInformationThread (__in HANDLE ThreadHandle, __in KPH_THREAD_INFORMATION_CLASS ThreadInformationClass, __out_bcount(ProcessInformationLength) PVOID ThreadInformation, __in ULONG ThreadInformationLength, __out_opt PULONG ReturnLength, __in KPROCESSOR_MODE AccessMode) |
Queries thread information. | |
NTSTATUS | KpiSetInformationThread (__in HANDLE ThreadHandle, __in KPH_THREAD_INFORMATION_CLASS ThreadInformationClass, __in_bcount(ThreadInformationLength) PVOID ThreadInformation, __in ULONG ThreadInformationLength, __in KPROCESSOR_MODE AccessMode) |
Sets thread information. | |
NTSTATUS | KphCopyVirtualMemory (__in PEPROCESS FromProcess, __in PVOID FromAddress, __in PEPROCESS ToProcess, __in PVOID ToAddress, __in SIZE_T BufferLength, __in KPROCESSOR_MODE AccessMode, __out PSIZE_T ReturnLength) |
Copies memory from one process to another. | |
NTSTATUS | KpiReadVirtualMemory (__in HANDLE ProcessHandle, __in PVOID BaseAddress, __out_bcount(BufferSize) PVOID Buffer, __in SIZE_T BufferSize, __out_opt PSIZE_T NumberOfBytesRead, __in KPROCESSOR_MODE AccessMode) |
Copies memory from another process into the current process. | |
NTSTATUS | KpiWriteVirtualMemory (__in HANDLE ProcessHandle, __in_opt PVOID BaseAddress, __in_bcount(BufferSize) PVOID Buffer, __in SIZE_T BufferSize, __out_opt PSIZE_T NumberOfBytesWritten, __in KPROCESSOR_MODE AccessMode) |
Copies memory from the current process into another process. | |
NTSTATUS | KpiReadVirtualMemoryUnsafe (__in_opt HANDLE ProcessHandle, __in PVOID BaseAddress, __out_bcount(BufferSize) PVOID Buffer, __in SIZE_T BufferSize, __out_opt PSIZE_T NumberOfBytesRead, __in KPROCESSOR_MODE AccessMode) |
Copies process or kernel memory into the current process. | |
FORCEINLINE VOID | KphFreeCapturedUnicodeString (__in PUNICODE_STRING CapturedUnicodeString) |
FORCEINLINE NTSTATUS | KphCaptureUnicodeString (__in PUNICODE_STRING UnicodeString, __out PUNICODE_STRING CapturedUnicodeString) |
#define PHNT_MODE PHNT_MODE_KERNEL |
typedef struct _KPH_PARAMETERS KPH_PARAMETERS |
typedef struct _KPH_PARAMETERS * PKPH_PARAMETERS |
__drv_dispatchType | ( | IRP_MJ_DEVICE_CONTROL | ) |
BOOLEAN KphAcquireProcessRundownProtection | ( | __in PEPROCESS | Process | ) |
ULONG KphCaptureStackBackTrace | ( | __in ULONG | FramesToSkip, |
__in ULONG | FramesToCapture, | ||
__in_opt ULONG | Flags, | ||
__out_ecount(FramesToCapture) PVOID * | BackTrace, | ||
__out_opt PULONG | BackTraceHash | ||
) |
Captures a stack trace of the current thread.
FramesToSkip | The number of frames to skip from the bottom of the stack. |
FramesToCapture | The number of frames to capture. |
Flags | A combination of the following:
|
BackTrace | An array in which the stack trace will be stored. |
BackTraceHash | A variable which receives a hash of the stack trace. |
NTSTATUS KphCaptureStackBackTraceThread | ( | __in PETHREAD | Thread, |
__in ULONG | FramesToSkip, | ||
__in ULONG | FramesToCapture, | ||
__out_ecount(FramesToCapture) PVOID * | BackTrace, | ||
__out_opt PULONG | CapturedFrames, | ||
__out_opt PULONG | BackTraceHash, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
Captures the stack trace of a thread.
Thread | The thread to capture the stack trace of. |
FramesToSkip | The number of frames to skip from the bottom of the stack. |
FramesToCapture | The number of frames to capture. |
BackTrace | An array in which the stack trace will be stored. |
CapturedFrames | A variable which receives the number of frames captured. |
BackTraceHash | A variable which receives a hash of the stack trace. |
AccessMode | The mode in which to perform access checks. |
FORCEINLINE NTSTATUS KphCaptureUnicodeString | ( | __in PUNICODE_STRING | UnicodeString, |
__out PUNICODE_STRING | CapturedUnicodeString | ||
) |
NTSTATUS KphCopyVirtualMemory | ( | __in PEPROCESS | FromProcess, |
__in PVOID | FromAddress, | ||
__in PEPROCESS | ToProcess, | ||
__in PVOID | ToAddress, | ||
__in SIZE_T | BufferLength, | ||
__in KPROCESSOR_MODE | AccessMode, | ||
__out PSIZE_T | ReturnLength | ||
) |
Copies memory from one process to another.
FromProcess | The source process. |
FromAddress | The source address. |
ToProcess | The target process. |
ToAddress | The target address. |
BufferLength | The number of bytes to copy. |
AccessMode | The mode in which to perform access checks. |
ReturnLength | A variable which receives the number of bytes copied. |
VOID KphDereferenceProcessHandleTable | ( | __in PEPROCESS | Process | ) |
NTSTATUS KphDispatchDeviceControl | ( | __in PDEVICE_OBJECT | DeviceObject, |
__in PIRP | Irp | ||
) |
NTSTATUS KphDuplicateObject | ( | __in PEPROCESS | SourceProcess, |
__in_opt PEPROCESS | TargetProcess, | ||
__in HANDLE | SourceHandle, | ||
__out_opt PHANDLE | TargetHandle, | ||
__in ACCESS_MASK | DesiredAccess, | ||
__in ULONG | HandleAttributes, | ||
__in ULONG | Options, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
Re-opens an object.
SourceProcess | The source process from which the object will be referenced. |
TargetProcess | The target process to which the object handle will be duplicated. |
SourceHandle | The source handle, present in SourceProcess. |
TargetHandle | A variable which receives the new handle. |
DesiredAccess | The desired access to the object for the new handle. |
HandleAttributes | The attributes of the new handle. |
Options | A combination of the following:
|
AccessMode | The mode in which access checks will be performed. |
NTSTATUS KphEnumerateSystemModules | ( | __out PRTL_PROCESS_MODULES * | Modules | ) |
FORCEINLINE VOID KphFreeCapturedUnicodeString | ( | __in PUNICODE_STRING | CapturedUnicodeString | ) |
POBJECT_TYPE KphGetObjectType | ( | __in PVOID | Object | ) |
PVOID KphGetSystemRoutineAddress | ( | __in PWSTR | SystemRoutineName | ) |
NTSTATUS KphOpenNamedObject | ( | __out PHANDLE | ObjectHandle, |
__in ACCESS_MASK | DesiredAccess, | ||
__in POBJECT_ATTRIBUTES | ObjectAttributes, | ||
__in POBJECT_TYPE | ObjectType, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
NTSTATUS KphQueryNameFileObject | ( | __in PFILE_OBJECT | FileObject, |
__out_bcount(BufferLength) POBJECT_NAME_INFORMATION | Buffer, | ||
__in ULONG | BufferLength, | ||
__out PULONG | ReturnLength | ||
) |
Queries the name of a file object.
FileObject | A pointer to a file object. |
Buffer | The buffer in which the object name will be stored. |
BufferLength | The number of bytes available in Buffer. |
ReturnLength | A variable which receives the number of bytes required to be available in Buffer. |
NTSTATUS KphQueryNameObject | ( | __in PVOID | Object, |
__out_bcount(BufferLength) POBJECT_NAME_INFORMATION | Buffer, | ||
__in ULONG | BufferLength, | ||
__out PULONG | ReturnLength | ||
) |
Queries the name of an object.
Object | A pointer to an object. |
Buffer | The buffer in which the object name will be stored. |
BufferLength | The number of bytes available in Buffer. |
ReturnLength | A variable which receives the number of bytes required to be available in Buffer. |
PHANDLE_TABLE KphReferenceProcessHandleTable | ( | __in PEPROCESS | Process | ) |
Gets a pointer to the handle table of a process.
Process | A process object. |
VOID KphReleaseProcessRundownProtection | ( | __in PEPROCESS | Process | ) |
NTSTATUS KphTerminateProcessInternal | ( | __in PEPROCESS | Process, |
__in NTSTATUS | ExitStatus | ||
) |
NTSTATUS KphTerminateThreadByPointerInternal | ( | __in PETHREAD | Thread, |
__in NTSTATUS | ExitStatus | ||
) |
VOID KphUnlockHandleTableEntry | ( | __in PHANDLE_TABLE | HandleTable, |
__in PHANDLE_TABLE_ENTRY | HandleTableEntry | ||
) |
NTSTATUS KphValidateAddressForSystemModules | ( | __in PVOID | Address, |
__in SIZE_T | Length | ||
) |
NTSTATUS KpiCaptureStackBackTraceThread | ( | __in HANDLE | ThreadHandle, |
__in ULONG | FramesToSkip, | ||
__in ULONG | FramesToCapture, | ||
__out_ecount(FramesToCapture) PVOID * | BackTrace, | ||
__out_opt PULONG | CapturedFrames, | ||
__out_opt PULONG | BackTraceHash, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
Captures the stack trace of a thread.
ThreadHandle | A handle to the thread to capture the stack trace of. |
FramesToSkip | The number of frames to skip from the bottom of the stack. |
FramesToCapture | The number of frames to capture. |
BackTrace | An array in which the stack trace will be stored. |
CapturedFrames | A variable which receives the number of frames captured. |
BackTraceHash | A variable which receives a hash of the stack trace. |
AccessMode | The mode in which to perform access checks. |
NTSTATUS KpiDuplicateObject | ( | __in HANDLE | SourceProcessHandle, |
__in HANDLE | SourceHandle, | ||
__in_opt HANDLE | TargetProcessHandle, | ||
__out_opt PHANDLE | TargetHandle, | ||
__in ACCESS_MASK | DesiredAccess, | ||
__in ULONG | HandleAttributes, | ||
__in ULONG | Options, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
Re-opens an object.
SourceProcessHandle | A handle to the source process from which the object will be referenced. |
SourceHandle | The source handle, present in SourceProcess. |
TargetProcessHandle | A handle to the target process to which the object handle will be duplicated. |
TargetHandle | A variable which receives the new handle. |
DesiredAccess | The desired access to the object for the new handle. |
HandleAttributes | The attributes of the new handle. |
Options | A combination of the following:
|
AccessMode | The mode in which access checks will be performed. |
NTSTATUS KpiEnumerateProcessHandles | ( | __in HANDLE | ProcessHandle, |
__out_bcount(BufferLength) PVOID | Buffer, | ||
__in_opt ULONG | BufferLength, | ||
__out_opt PULONG | ReturnLength, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
Enumerates the handles of a process.
ProcessHandle | A handle to a process. |
Buffer | The buffer in which the handle information will be stored. |
BufferLength | The number of bytes available in Buffer. |
ReturnLength | A variable which receives the number of bytes required to be available in Buffer. |
AccessMode | The mode in which to perform access checks. |
NTSTATUS KpiGetContextThread | ( | __in HANDLE | ThreadHandle, |
__inout PCONTEXT | ThreadContext, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
NTSTATUS KpiGetFeatures | ( | __out PULONG | Features, |
__in KPROCESSOR_MODE | AccessMode | ||
) |
NTSTATUS KpiOpenDriver | ( | __out PHANDLE | DriverHandle, |
__in POBJECT_ATTRIBUTES | ObjectAttributes, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
NTSTATUS KpiOpenProcess | ( | __out PHANDLE | ProcessHandle, |
__in ACCESS_MASK | DesiredAccess, | ||
__in PCLIENT_ID | ClientId, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
Opens a process.
ProcessHandle | A variable which receives the process handle. |
DesiredAccess | The desired access to the process. |
ClientId | The identifier of a process or thread. If UniqueThread is present, the process of the identified thread will be opened. If UniqueProcess is present, the identified process will be opened. |
AccessMode | The mode in which to perform access checks. |
NTSTATUS KpiOpenProcessJob | ( | __in HANDLE | ProcessHandle, |
__in ACCESS_MASK | DesiredAccess, | ||
__out PHANDLE | JobHandle, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
NTSTATUS KpiOpenProcessToken | ( | __in HANDLE | ProcessHandle, |
__in ACCESS_MASK | DesiredAccess, | ||
__out PHANDLE | TokenHandle, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
NTSTATUS KpiOpenThread | ( | __out PHANDLE | ThreadHandle, |
__in ACCESS_MASK | DesiredAccess, | ||
__in PCLIENT_ID | ClientId, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
Opens a thread.
ThreadHandle | A variable which receives the thread handle. |
DesiredAccess | The desired access to the thread. |
ClientId | The identifier of a thread. UniqueThread must be present. If UniqueProcess is present, the process of the referenced thread will be checked against this identifier. |
AccessMode | The mode in which to perform access checks. |
NTSTATUS KpiOpenThreadProcess | ( | __in HANDLE | ThreadHandle, |
__in ACCESS_MASK | DesiredAccess, | ||
__out PHANDLE | ProcessHandle, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
NTSTATUS KpiQueryInformationDriver | ( | __in HANDLE | DriverHandle, |
__in DRIVER_INFORMATION_CLASS | DriverInformationClass, | ||
__out_bcount(DriverInformationLength) PVOID | DriverInformation, | ||
__in ULONG | DriverInformationLength, | ||
__out_opt PULONG | ReturnLength, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
NTSTATUS KpiQueryInformationObject | ( | __in HANDLE | ProcessHandle, |
__in HANDLE | Handle, | ||
__in KPH_OBJECT_INFORMATION_CLASS | ObjectInformationClass, | ||
__out_bcount(ObjectInformationLength) PVOID | ObjectInformation, | ||
__in ULONG | ObjectInformationLength, | ||
__out_opt PULONG | ReturnLength, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
Queries object information.
ProcessHandle | A handle to a process. |
Handle | A handle which is present in the process referenced by ProcessHandle. |
ObjectInformationClass | The type of information to retrieve. |
ObjectInformation | The buffer in which the information will be stored. |
ObjectInformationLength | The number of bytes available in ObjectInformation. |
ReturnLength | A variable which receives the number of bytes required to be available in ObjectInformation. |
AccessMode | The mode in which to perform access checks. |
NTSTATUS KpiQueryInformationProcess | ( | __in HANDLE | ProcessHandle, |
__in KPH_PROCESS_INFORMATION_CLASS | ProcessInformationClass, | ||
__out_bcount(ProcessInformationLength) PVOID | ProcessInformation, | ||
__in ULONG | ProcessInformationLength, | ||
__out_opt PULONG | ReturnLength, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
Queries process information.
ProcessHandle | A handle to a process. |
ProcessInformationClass | The type of information to query. |
ProcessInformation | The buffer in which the information will be stored. |
ProcessInformationLength | The number of bytes available in ProcessInformation. |
ReturnLength | A variable which receives the number of bytes required to be available in ProcessInformation. |
AccessMode | The mode in which to perform access checks. |
NTSTATUS KpiQueryInformationThread | ( | __in HANDLE | ThreadHandle, |
__in KPH_THREAD_INFORMATION_CLASS | ThreadInformationClass, | ||
__out_bcount(ProcessInformationLength) PVOID | ThreadInformation, | ||
__in ULONG | ThreadInformationLength, | ||
__out_opt PULONG | ReturnLength, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
Queries thread information.
ThreadHandle | A handle to a thread. |
ThreadInformationClass | The type of information to query. |
ThreadInformation | The buffer in which the information will be stored. |
ThreadInformationLength | The number of bytes available in ThreadInformation. |
ReturnLength | A variable which receives the number of bytes required to be available in ThreadInformation. |
AccessMode | The mode in which to perform access checks. |
NTSTATUS KpiReadVirtualMemory | ( | __in HANDLE | ProcessHandle, |
__in PVOID | BaseAddress, | ||
__out_bcount(BufferSize) PVOID | Buffer, | ||
__in SIZE_T | BufferSize, | ||
__out_opt PSIZE_T | NumberOfBytesRead, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
Copies memory from another process into the current process.
ProcessHandle | A handle to a process. The handle must have PROCESS_VM_READ access. |
BaseAddress | The address from which memory is to be copied. |
Buffer | A buffer which receives the copied memory. |
BufferSize | The number of bytes to copy. |
NumberOfBytesRead | A variable which receives the number of bytes copied to the buffer. |
AccessMode | The mode in which to perform access checks. |
NTSTATUS KpiReadVirtualMemoryUnsafe | ( | __in_opt HANDLE | ProcessHandle, |
__in PVOID | BaseAddress, | ||
__out_bcount(BufferSize) PVOID | Buffer, | ||
__in SIZE_T | BufferSize, | ||
__out_opt PSIZE_T | NumberOfBytesRead, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
Copies process or kernel memory into the current process.
ProcessHandle | A handle to a process. The handle must have PROCESS_VM_READ access. This parameter may be NULL if BaseAddress lies above the user-mode range. |
BaseAddress | The address from which memory is to be copied. |
Buffer | A buffer which receives the copied memory. |
BufferSize | The number of bytes to copy. |
NumberOfBytesRead | A variable which receives the number of bytes copied to the buffer. |
AccessMode | The mode in which to perform access checks. |
NTSTATUS KpiResumeProcess | ( | __in HANDLE | ProcessHandle, |
__in KPROCESSOR_MODE | AccessMode | ||
) |
NTSTATUS KpiSetContextThread | ( | __in HANDLE | ThreadHandle, |
__in PCONTEXT | ThreadContext, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
NTSTATUS KpiSetInformationObject | ( | __in HANDLE | ProcessHandle, |
__in HANDLE | Handle, | ||
__in KPH_OBJECT_INFORMATION_CLASS | ObjectInformationClass, | ||
__in_bcount(ObjectInformationLength) PVOID | ObjectInformation, | ||
__in ULONG | ObjectInformationLength, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
Sets object information.
ProcessHandle | A handle to a process. |
Handle | A handle which is present in the process referenced by ProcessHandle. |
ObjectInformationClass | The type of information to set. |
ObjectInformation | A buffer which contains the information to set. |
ObjectInformationLength | The number of bytes present in ObjectInformation. |
AccessMode | The mode in which to perform access checks. |
NTSTATUS KpiSetInformationProcess | ( | __in HANDLE | ProcessHandle, |
__in KPH_PROCESS_INFORMATION_CLASS | ProcessInformationClass, | ||
__in_bcount(ProcessInformationLength) PVOID | ProcessInformation, | ||
__in ULONG | ProcessInformationLength, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
Sets process information.
ProcessHandle | A handle to a process. |
ProcessInformationClass | The type of information to set. |
ProcessInformation | A buffer which contains the information to set. |
ProcessInformationLength | The number of bytes present in ProcessInformation. |
AccessMode | The mode in which to perform access checks. |
NTSTATUS KpiSetInformationThread | ( | __in HANDLE | ThreadHandle, |
__in KPH_THREAD_INFORMATION_CLASS | ThreadInformationClass, | ||
__in_bcount(ThreadInformationLength) PVOID | ThreadInformation, | ||
__in ULONG | ThreadInformationLength, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
Sets thread information.
ThreadHandle | A handle to a thread. |
ThreadInformationClass | The type of information to set. |
ThreadInformation | A buffer which contains the information to set. |
ThreadInformationLength | The number of bytes present in ThreadInformation. |
AccessMode | The mode in which to perform access checks. |
NTSTATUS KpiSuspendProcess | ( | __in HANDLE | ProcessHandle, |
__in KPROCESSOR_MODE | AccessMode | ||
) |
NTSTATUS KpiTerminateProcess | ( | __in HANDLE | ProcessHandle, |
__in NTSTATUS | ExitStatus, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
NTSTATUS KpiTerminateThread | ( | __in HANDLE | ThreadHandle, |
__in NTSTATUS | ExitStatus, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
NTSTATUS KpiTerminateThreadUnsafe | ( | __in HANDLE | ThreadHandle, |
__in NTSTATUS | ExitStatus, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
Terminates a thread using an unsafe method.
ThreadHandle | A handle to a thread. |
ExitStatus | A status value which indicates why the thread is being terminated. |
AccessMode | The mode in which to perform access checks. |
NTSTATUS KpiWriteVirtualMemory | ( | __in HANDLE | ProcessHandle, |
__in_opt PVOID | BaseAddress, | ||
__in_bcount(BufferSize) PVOID | Buffer, | ||
__in SIZE_T | BufferSize, | ||
__out_opt PSIZE_T | NumberOfBytesWritten, | ||
__in KPROCESSOR_MODE | AccessMode | ||
) |
Copies memory from the current process into another process.
ProcessHandle | A handle to a process. The handle must have PROCESS_VM_WRITE access. |
BaseAddress | The address to which memory is to be copied. |
Buffer | A buffer which contains the memory to copy. |
BufferSize | The number of bytes to copy. |
NumberOfBytesWritten | A variable which receives the number of bytes copied from the buffer. |
AccessMode | The mode in which to perform access checks. |
_ExfUnblockPushLock ExfUnblockPushLock_I |
ULONG KphFeatures |
KPH_PARAMETERS KphParameters |
_ObGetObjectType ObGetObjectType_I |
_PsAcquireProcessExitSynchronization PsAcquireProcessExitSynchronization_I |
_PsIsProtectedProcess PsIsProtectedProcess_I |
_PsReleaseProcessExitSynchronization PsReleaseProcessExitSynchronization_I |
_PsResumeProcess PsResumeProcess_I |
_PsSuspendProcess PsSuspendProcess_I |