次の方法で共有


GUID_TARGET_DEVICE_REMOVE_COMPLETE イベントの処理

PnP マネージャーがデバイスのドライバーに IRP_MN_REMOVE_DEVICE IRP を送信する前に、PnP マネージャーは、デバイス上の EventCategoryTargetDeviceChange に登録されているカーネル モード通知コールバック ルーチンを呼び出します。 PnP マネージャーは、GUID_TARGET_DEVICE_REMOVE_COMPLETE の NotificationStructure.Event を指定します。

GUID_TARGET_DEVICE_REMOVE_COMPLETE イベントを処理するとき、通知コールバック ルーチンは次の操作を行う必要があります。

  • デバイスの通知登録を削除します。

    デバイスが削除されたため、ドライバーは IoUnregisterPlugPlayNotification を呼び出して通知登録を削除します。

    デバイスはコンピューター上にまだ物理的に存在する可能性がありますが、すべてのデバイス オブジェクトが削除され、デバイスは使用することができません。

  • ドライバーが以前のクエリ削除通知を受信しなかった場合、突然の削除処理を実行します。

    デバイスが突然削除された場合、PnP マネージャーは、以前のクエリ削除通知なしで、登録済みのドライバーに削除完了通知を送信します。 この場合、ドライバーは、デバイスへのハンドルを閉じる、ファイル オブジェクトへの未処理の参照を削除するなど、必要なクリーンアップを実行する必要があります。