EVT_WDF_CHILD_LIST_DEVICE_REENUMERATED回调函数 (wdfchildlist.h)

[仅适用于 KMDF]

驱动程序的 EvtChildListDeviceReenumerated 事件回调函数使驱动程序能够批准或取消指定设备的恢复。

语法

EVT_WDF_CHILD_LIST_DEVICE_REENUMERATED EvtWdfChildListDeviceReenumerated;

BOOLEAN EvtWdfChildListDeviceReenumerated(
  [in]  WDFCHILDLIST ChildList,
  [in]  WDFDEVICE OldDevice,
  [in]  PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER OldAddressDescription,
  [out] PWDF_CHILD_ADDRESS_DESCRIPTION_HEADER NewAddressDescription
)
{...}

参数

[in] ChildList

框架子列表对象的句柄。

[in] OldDevice

框架设备对象的句柄。

[in] OldAddressDescription

指向标识子地址说明 的WDF_CHILD_ADDRESS_DESCRIPTION_HEADER 结构的可选指针,或 NULL。 如果提供,此结构包含设备重新提供之前相关的地址信息。

[out] NewAddressDescription

指向标识子地址说明 的WDF_CHILD_ADDRESS_DESCRIPTION_HEADER 结构的可选指针,或 NULL。 如果提供,回调函数会在此结构中填充有关设备的新地址信息。

返回值

EvtChildListDeviceReenumerated 回调函数返回 TRUE 以批准重新注册,或返回 FALSE 以取消它。

注解

如果总线驱动程序使用动态枚举,则可以通过调用 WdfFdoInitSetDefaultChildListConfigWdfChildListCreate 来注册 EvtChildListDeviceReenumerated 回调函数。

基于框架的总线驱动程序可以接收来自函数驱动程序的请求,以重新配置特定子设备。 有关这些请求的详细信息,请参阅 处理枚举请求

总线驱动程序的 EvtChildListDeviceReenumerated 回调函数使驱动程序能够批准或取消重新启用。 OldDevice 参数标识设备,ChildList 参数标识设备所属的子列表。 如果回调函数返回 TRUE 来批准恢复,或者如果回调函数不存在,框架将执行以下操作:

  1. 删除设备的框架设备对象 (该对象由 OldDevice) 标识,但保留设备的标识说明。
  2. 调用驱动程序的 EvtChildListCreateDevice 回调函数,传递保存的标识说明,以便回调函数可以调用 WdfDeviceCreate 来创建新的框架设备对象。
如果总线驱动程序使用地址说明, 则 EvtChildListDeviceReenumerated 回调函数接收指向两个地址说明的指针。 其中一个指向与旧设备对象关联的地址说明。 另一个指向回调函数必须使用描述设备当前位置的信息填充的地址说明。

有关动态枚举的详细信息,请参阅 枚举总线上的设备

要求

要求
目标平台 通用
最低 KMDF 版本 1.0
标头 wdfchildlist.h (包括 Wdf.h)
IRQL <= DISPATCH_LEVEL

另请参阅

EvtChildListCreateDevice

WDF_CHILD_ADDRESS_DESCRIPTION_HEADER

WdfChildListCreate

WdfDeviceCreate

WdfFdoInitSetDefaultChildListConfig