|
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 |