使用 PnP 目标设备更改通知

驱动程序在设备上注册 EventCategoryTargetDeviceChange 通知,以便在设备即将删除时通知驱动程序。 例如,如果驱动程序打开设备的句柄,驱动程序应在设备上注册 EventCategoryTargetDeviceChange 通知,以便驱动程序可以在 PnP 管理器需要删除设备时关闭其句柄。

驱动程序还可以将 EventCategoryTargetDeviceChange 通知用于自定义通知。 (请参阅 使用 PnP 自定义通知。)

重要

注册 PnP 目标设备更改通知的目的不是通知侦听器目标设备电源状态更改。 如果驱动程序需要了解目标设备的电源更改,驱动程序应改为定义设备之间的电源关系。

为了定义电源关系,驱动程序使用 Type 参数设置为 PowerRelations 调用 IoInvalidateDeviceRelations,然后使用正确的信息响应 PnP 管理器对 PowerRelations的IRP_MN_QUERY_DEVICE_RELATIONS查询。

以下小节讨论如何注册目标设备更改通知,以及如何在 PnP 通知回调例程中处理目标设备更改事件:

注册目标设备更改通知

处理 GUID_TARGET_DEVICE_QUERY_REMOVE 事件

处理 GUID_TARGET_DEVICE_REMOVE_COMPLETE 事件

处理 GUID_TARGET_DEVICE_REMOVE_CANCELLED 事件