共用方式為


IRP_MN_CANCEL_REMOVE_DEVICE

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

0x03

主要程式碼

IRP_MJ_PNP

傳送時

PnP 管理員會傳送此 IRP 來通知裝置的驅動程式不會移除裝置。

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

輸入參數

輸出參數

I/O 狀態欄塊

驅動程式必須將 此 IRP 的 Irp-IoStatus.Status > 設定為STATUS_SUCCESS。 如果驅動程式失敗此 IRP,裝置會處於不一致的狀態。

作業

此 IRP 必須先由裝置的父匯流排驅動程式處理,然後由裝置堆疊中的每個較高驅動程式處理。

為了回應此 IRP,驅動程式會在收到 IRP_MN_QUERY_REMOVE_DEVICE 要求之前,將裝置傳回它所在的狀態。

如果驅動程式收到此 IRP 時已經啟動裝置,驅動程式只會將狀態設定為成功,並將 IRP 傳遞至下一個驅動程式 (,如果驅動程式是匯流排驅動程式) ,則會完成 IRP。 對於這類取消移除 IRP,函式或篩選驅動程式不需要設定完成常式。 裝置可能無法處於移除擱置狀態,例如,驅動程式會失敗先前 的IRP_MN_QUERY_REMOVE_DEVICE

PnP 管理員會在IRP_MN_CANCEL_REMOVE_DEVICE要求完成之後,使用 GUID_TARGET_DEVICE_REMOVE_CANCELLED 呼叫任何EventCategoryTargetDeviceChange通知回呼。 這類回呼已在裝置上註冊,方法是呼叫 IoRegisterPlugPlayNotification。 PnP 管理員也會呼叫任何已註冊通知的使用者模式元件,方法是呼叫 RegisterDeviceNotification

如果檔案系統掛接在裝置上,它必須復原它所執行的任何作業,以回應查詢移除通知。

如需處理移除 IRP 的詳細資訊,以及處理所有隨插即用次要 IRP 的一般規則,請參閱隨插即用

傳送此 IRP

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

規格需求

標頭

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

另請參閱

IoRegisterPlugPlayNotification

IRP_MN_QUERY_REMOVE_DEVICE