PnpSurpriseRemove ルール (wdm)

PnpSurpriseRemove ルールは、ドライバーが IRP_MN_SURPRISE_REMOVAL 要求の処理中に IoDeleteDevice または IoDetachDevice を呼び出さないよう指定します。

PnP マネージャーは、 IRP_MN_SURPRISE_REMOVAL 要求を送信して、デバイスが I/O 操作に使用できなくなったこと、およびコンピューターから予期せず削除された可能性があることをドライバーに通知します。

  • すべての PnP ドライバーは、 IRP_MN_SURPRI SURPRISE_REMOVAL 要求を処理する必要があります。
  • ドライバーは、IRP_MN_SURPRISE_REMOVAL IRP が成功し、デバイスに対するすべての開いているハンドルが閉じられるまで、デバイス オブジェクトで IoDeleteDevice または IoDetachDevice を呼び出す必要があります。
  • PnP マネージャーは、デバイス スタックに IRP_MN_REMOVE_DEVICE 要求を送信します。 IRP の削除に応答して、ドライバーは、スタックからデバイス オブジェクトをデタッチし、それらを削除します。

ドライバーが IRP_MN_SURPRISE_REMOVAL 要求に 応答する方法の詳細については、「IRP_MN_SURPRISE_REMOVAL要求の処理」を参照してください

ドライバーモデル: WDM

テスト方法

コンパイル時

静的ドライバー検証 を実行し、 PnpSurpriseRemove 規則を指定します。

コードの分析を実行するには、次の手順に従います。
  1. コードを準備します (ロール型宣言を使用します)。
  2. 静的ドライバー検証ツールを実行します。
  3. 結果を表示および分析します。

詳細については、 「静的ドライバー検証ツールを使用してドライバー の欠陥を見つける」を参照してください。

適用対象

IoDeleteDeviceIoDetachDevice

関連項目

検証およびコード分析ツールIRP_MN_SURPRISE_REMOVALIRP_MN_REMOVE_DEVICEを使用して、ドライバーを分析する IRP_MN_SURPRISE_REMOVAL 要求の処理