处理枚举请求

PnP 管理器可以随时请求总线驱动程序枚举其子级。 (如果熟悉 WDM 接口,则枚举请求 IRP_MN_QUERY_DEVICE_RELATIONS 关系类型为 BusRelations.) Framework 驱动程序的请求看不到这些请求。 相反,框架使用存储在设备的子列表中的信息来处理请求。 驱动程序负责使子列表保持最新状态,以便框架可以在 PnP 管理器请求枚举时提供正确的信息。

支持动态枚举的基于框架的总线驱动程序可以接收请求,要求恢复特定子设备。 在驱动程序检测到设备故障后,子设备的功能驱动程序可能会发送此类请求。 (框架通过实现 REENUMERATE_SELF_INTERFACE_STANDARD 接口来支持这种类型的请求,该接口是在 wdm.h.)

支持动态枚举的基于框架的总线驱动程序可以提供 EvtChildListDeviceReenumerated 回调函数,框架在收到来自子设备的驱动程序的恢复请求时调用该函数。 如果此回调函数返回 TRUE 或不存在,框架会将子设备标记为不再存在,并通知 PnP 管理器总线驱动程序的子列表已更改。 因此,PnP 管理器请求恢复,框架调用驱动程序的 EvtChildListCreateDevice 回调函数,该函数为子设备创建新的 PDO。