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

要求

要求
目标平台 通用
标头 ntddk.h (包括 Ntddk.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 符合性规则 HwStorPortProhibitedDDI (storport) PowerIrpDDis (wdm)

另请参阅

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

ZwOpenProcess