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”。
对于内核模式驱动程序的调用,NtXxx 和 ZwXxx 版本的 Windows 本机系统服务例程的行为方式可能以不同的方式处理和解释输入参数。 有关 NtXxx 与 ZwXxx 例程之间的关系的详细信息,请参阅 使用 Nt 和 Zw 版本的本机系统服务例程。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
标头 | ntddk.h (包括 Ntddk.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 符合性规则 | HwStorPortProhibitedDIS(storport),PowerIrpDDis(wdm) |