#ifndef _NTPSAPI_H
//
// Processes
//
#if (PHNT_MODE != PHNT_MODE_KERNEL)
/**
* Resumes the specified process.
*
* \param ProcessHandle A handle to the process to be resumed.
* \return NTSTATUS Successful or errant status.
* \remarks Use NtCreateProcessStateChange instead.
* \remarks Requires PROCESS_SUSPEND_RESUME (0x800) and uses PsMultiResumeProcess. Resuming does not prove every thread
* is runnable: individual suspension counts, process freezing and ordinary waits are separate state. The WoW64
* suspend path uses RtlWow64SuspendProcess, whereas this resume wrapper forwards directly.
*/
_Kernel_entry_
NTSYSCALLAPI
NTSTATUS
NTAPI
NtResumeProcess(
_In_ HANDLE ProcessHandle
);
View code on GitHub#ifndef _NTZWAPI_H
_Kernel_entry_
NTSYSCALLAPI
NTSTATUS
NTAPI
ZwResumeProcess(
_In_ HANDLE ProcessHandle
);
View code on GitHubResumes all threads in the process.
ProcessHandle - a handle to a process granting PROCESS_SUSPEND_RESUME access.This function enumerates and resumes threads one-by-one and is, therefore, prone to race conditions.
The function ignores threads created with the THREAD_CREATE_FLAGS_BYPASS_PROCESS_FREEZE flag.
This functionality is not exposed in Win32 API.