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

对于内核模式驱动程序的调用,NtXxxZwXxx 版本的 Windows 本机系统服务例程的行为方式可能以不同的方式处理和解释输入参数。 有关 NtXxxZwXxx 例程之间的关系的详细信息,请参阅 使用 Nt 和 Zw 版本的本机系统服务例程

要求

要求 价值
目标平台 普遍
标头 ntddk.h (包括 Ntddk.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 符合性规则 HwStorPortProhibitedDIS(storport)PowerIrpDDis(wdm)

另请参阅

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

ZwOpenProcess