ZwTerminateProcess 函数 (ntddk.h)

ZwTerminateProcess 例程终止进程及其所有线程。

语法

NTSYSAPI NTSTATUS ZwTerminateProcess(
  [in, optional] HANDLE   ProcessHandle,
  [in]           NTSTATUS ExitStatus
);

参数

[in, optional] ProcessHandle

表示要终止的进程的进程对象的句柄。

[in] ExitStatus

操作系统用作进程及其每个线程的最终状态的 NTSTATUS 值。

返回值

如果操作成功,ZwTerminateProcess 将返回STATUS_SUCCESS。 其他返回值包括:

返回代码 说明
STATUS_OBJECT_TYPE_MISMATCH
指定的句柄不是进程句柄。
STATUS_INVALID_HANDLE
指定的句柄无效。
STATUS_ACCESS_DENIED
驱动程序无法访问指定的进程对象。
STATUS_PROCESS_IS_TERMINATING
指定的进程已终止。
 

如果调用方指定 ProcessHandle 参数中的当前进程, 则 ZwTerminateProcess 不返回。

注解

若要获取驱动程序可以为 ProcessHandle 参数指定的进程句柄,驱动程序可以调用 ZwOpenProcess。 句 柄必须是内核句柄,一个只能在内核模式下访问的句柄。 如果通过OBJ_KERNEL_HANDLE标志创建句柄,则句柄是内核句柄。 有关详细信息,请参阅 InitializeObjectAttributes

如果资源尚未从内核堆栈中释放,驱动程序不得指定当前进程,因为操作系统不会展开调用线程的内核堆栈。

注意 如果在用户模式下调用此函数,则应使用名称“NtTerminateProcess”而不是“ZwTerminateProcess”。
 
对于内核模式驱动程序的调用,Windows Native System Services 例程的 NtXxxZwXxx 版本在处理和解释输入参数的方式可能有所不同。 有关例程 的 NtXxxZwXxx 版本之间的关系的详细信息,请参阅 使用本机系统服务例程的 Nt 和 Zw 版本

要求

   
最低受支持的客户端 从 Windows 2000 开始可用。
目标平台 通用
标头 ntddk.h (包括 Ntddk.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 符合性规则 HwStorPortProhibitedDDIs (storport) PowerIrpDDis (wdm)

另请参阅

使用本机系统服务例程的 Nt 和 Zw 版本

ZwOpenProcess