IRP_MN_STOP_DEVICE

所有 PnP 驅動程式都必須處理此 IRP。

0x04

主要程式碼

IRP_MJ_PNP

傳送時

PnP 管理員會傳送此 IRP 來停止裝置,以便重新設定裝置的硬體資源。

在 Windows 2000 和更新版本系統上,只有先前 的IRP_MN_QUERY_STOP_DEVICE 成功完成時,PnP 管理員才會傳送此 IRP。

在 Windows 98/Me 上,PnP 管理員也會在裝置停用時以及裝置堆疊失敗時傳送此 IRP IRP_MN_START_DEVICE 要求。 如果啟動失敗,PnP 管理員會在沒有先前 IRP_MN_QUERY_STOP_DEVICE 要求的情況下傳送此 IRP。

PnP 管理員會在系統執行緒的內容中,在 IRQL PASSIVE_LEVEL傳送此 IRP。

輸入參數

輸出參數

I/O 狀態欄塊

驅動程式必須將 Irp-IoStatus.Status > 設定為 STATUS_SUCCESS。

作業

此 IRP 會先由裝置堆疊頂端的驅動程式處理,然後向下傳遞至堆疊中的每個較低驅動程式。

為了回應此 IRP,Windows 2000 和更新版本的驅動程式會停止裝置,並釋放裝置所使用的任何硬體資源,例如 I/O 埠和中斷。

在 Windows 2000 和更新版本上,只會使用停止 IRP 來釋放裝置的硬體資源,以便重新設定它們。 重新設定資源之後,裝置就會重新開機。 停止 IRP 不是移除 IRP 的前導項。 如需 PnP IRP 傳送至裝置順序的詳細資訊,請參閱隨插即用

在 Windows 98/Me 上,停止 IRP 也會在啟動失敗後使用,以及停用裝置時。 在這些作業系統上執行的 WDM 驅動程式應該停止裝置、失敗任何傳入的 I/O,以及停用並取消註冊任何使用者模式介面。

驅動程式不得失敗此 IRP。 如果驅動程式無法釋放裝置的硬體資源,它必須失敗上述查詢停止 IRP。

如需處理停止 IRP 的詳細資訊 ,請參閱停止裝置

傳送此 IRP

保留供系統使用。 驅動程式不得傳送此 IRP。

規格需求

標頭

Wdm.h (包括 Wdm.h、Ntddk.h 或 Ntifs.h)

另請參閱

IRP_MN_QUERY_STOP_DEVICE

IRP_MN_START_DEVICE

IoSetDeviceInterfaceState

IoRegisterDeviceInterface