处理 GUID_TARGET_DEVICE_REMOVE_CANCELLED 事件

如果 IRP_MN_QUERY_REMOVE_DEVICE 请求失败,PnP 管理器会将 IRP_MN_CANCEL_REMOVE_DEVICE IRP 发送到设备的驱动程序。 取消-删除 IRP 成功完成后,PnP 管理器将调用设备上为 EventCategoryTargetDeviceChange 注册的任何通知回调例程。 PnP 管理器指定 NotificationStructure。GUID_TARGET_DEVICE_REMOVE_CANCELLED事件

处理GUID_TARGET_DEVICE_REMOVE_CANCELLED事件时,通知回调例程应:

  • 重新注册目标设备通知。

    由于驱动程序关闭了以前的注册句柄以响应查询删除通知,因此驱动程序必须打开一个新句柄。 驱动程序必须:

    1. 使用 IoUnregisterPlugPlayNotification 删除旧注册。

    2. 打开设备的新句柄。

    3. 使用 IoRegisterPlugPlayNotification 重新注册新句柄上的通知。