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