共用方式為


PnpSurpriseRemove 規則 (wdm)

PnpSurpriseRemove 規則會指定驅動程式在處理IRP_MN_SURPRISE_REMOVAL要求時,不會呼叫 IoDeleteDevice 或 IoDetachDevice。

PnP 管理員會傳送 IRP_MN_SURPRISE_REMOVAL 要求來通知驅動程式,裝置已無法再用於 I/O 作業,而且可能未預期地從計算機中移除。

  • 所有 PnP 驅動程式都必須處理 IRP_MN_SURPRISE_REMOVAL 要求。
  • 驅動程式在裝置物件上不得呼叫 IoDeleteDeviceIoDetachDevice ,直到IRP_MN_SURPRISE_REMOVAL IRP 成功且裝置的所有開啟句柄都關閉為止。
  • 接著,PnP 管理員會將 IRP_MN_REMOVE_DEVICE 要求傳送至裝置堆疊。 為了回應移除 IRP,驅動程式會將其裝置物件從堆疊中斷連結,並加以刪除。

如需驅動程式如何回應 IRP_MN_SURPRISE_REMOVAL 要求的詳細資訊,請參閱 處理IRP_MN_SURPRISE_REMOVAL要求

驅動程式模型:WDM

測試方法

在編譯時期

執行 靜態驅動程式驗證程式 ,並指定 PnpSurpriseRemove 規則。

使用下列步驟來執行程式碼的分析:
  1. 準備程式代碼 (使用角色類型宣告) 。
  2. 執行靜態驅動程式驗證程式。
  3. 檢視和分析結果。

如需詳細資訊,請參閱 使用靜態驅動程式驗證器尋找驅動程式中的瑕疵

適用於

IoDeleteDeviceIoDetachDevice

另請參閱

使用驗證和程式代碼分析工具IRP_MN_SURPRISE_REMOVAL IRP_MN_REMOVE_DEVICE處理IRP_MN_SURPRISE_REMOVAL要求分析驅動程式