共用方式為


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 原生系統服務例程,在處理和解譯輸入參數的方式上可能會有不同的行為。 如需 nt NtXxxZwXxx 例程之間關聯性的詳細資訊,請參閱 使用 Nt 和 Zw 版本的原生系統服務例程

要求

要求 價值
目標平臺 普遍
標頭 ntddk.h (包括 Ntddk.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 合規性規則 HwStorPortProhibitedDIs(storport)PowerIrpDDis(wdm)

另請參閱

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

ZwOpenProcess