ZwTerminateProcess 函式 (ntddk.h)

ZwTerminateProcess 例程會終止進程及其所有線程。

語法

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

參數

[in, optional] ProcessHandle

進程物件的句柄,表示要終止的進程。

[in] ExitStatus

操作系統使用的NTSTATUS值,做為進程及其每個線程的最終狀態。

傳回值

如果作業成功,ZwTerminateProcess 會傳回STATUS_SUCCESS。 其他傳回值包括:

傳回碼 Description
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 原生系統服務例程的 NtXxxZwXxx 版本會以處理和解譯輸入參數的方式,以不同的方式運作。 如需 例程 NtXxxZwXxx 版本之間關聯性的詳細資訊,請參閱 使用原生系統服務例程的 Nt 和 Zw 版本

規格需求

需求
目標平台 Universal
標頭 ntddk.h (包含 Ntddk.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 合規性規則 HwStorPortProhibitedDIS (storport) PowerIrpDDis (wdm)

另請參閱

使用 Nt 和 Zw 版本的原生系統服務例程

ZwOpenProcess