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 原生系統服務例程的 NtXxx 和 ZwXxx 版本會以處理和解譯輸入參數的方式,以不同的方式運作。 如需 例程 NtXxx 和 ZwXxx 版本之間關聯性的詳細資訊,請參閱 使用原生系統服務例程的 Nt 和 Zw 版本。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | ntddk.h (包含 Ntddk.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 合規性規則 | HwStorPortProhibitedDIS (storport) 、 PowerIrpDDis (wdm) |