EVT_WDF_CHILD_LIST_CREATE_DEVICE回调函数 (wdfchildlist.h)
[仅适用于 KMDF]
总线驱动程序的EvtChildListCreateDevice 事件回调函数为已动态枚举的新设备创建框架设备对象。
语法
EVT_WDF_CHILD_LIST_CREATE_DEVICE EvtWdfChildListCreateDevice;
NTSTATUS EvtWdfChildListCreateDevice(
[in] WDFCHILDLIST ChildList,
[in] PWDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER IdentificationDescription,
[in] PWDFDEVICE_INIT ChildInit
)
{...}
参数
[in] ChildList
驱动程序在调用 WdfChildListAddOrUpdateChildDescriptionAsPresent 时指定的框架子列表对象的句柄。
[in] IdentificationDescription
指向驱动程序在调用 WdfChildListAddOrUpdateChildDescriptionAsPresent 时指定的 WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER 结构副本的指针。
[in] ChildInit
指向 WDFDEVICE_INIT 结构的指针。
返回值
如果操作成功,EvtChildListCreateDevice 回调函数必须返回STATUS_SUCCESS或NT_SUCCESS ( 状态) 等于 TRUE 的另一个状态值。 否则,此函数必须返回状态值,NT_SUCCESS (状态) 等于 FALSE。
如果操作失败,但你认为驱动程序应稍后重试,并且驱动程序的 EvtChildListCreateDevice 回调函数未调用 WdfDeviceCreate,则驱动程序可以返回STATUS_RETRY。 因此,框架稍后再次调用 EvtChildListCreateDevice 回调函数。 如果驱动程序返回STATUS_RETRY多次,框架将停止调用故障设备的回调函数。
注解
如果总线驱动程序使用动态枚举,它可以通过调用 WdfFdoInitSetDefaultChildListConfig 或 WdfChildListCreate 来注册 EvtChildListCreateDevice 回调函数。
在驱动程序调用 WdfChildListAddOrUpdateChildDescriptionAsPresent 或 WdfChildListUpdateAllChildDescriptionsAsPresent 后,框架调用驱动程序的 EvtChildListCreateDevice 回调函数。 回调函数必须调用 WdfDeviceCreate 以 (PDO) 创建框架设备对象。
在调用 WdfDeviceCreate 之前,驱动程序必须调用框架提供的用于初始化 WDFDEVICE_INIT 结构的函数。 有关这些函数的详细信息,请参阅 WDFDEVICE_INIT。
有关调用 WdfDeviceCreate 的详细信息,请参阅 创建框架设备对象。
有关动态枚举的详细信息,请参阅 枚举总线上的设备。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
最低 KMDF 版本 | 1.0 |
标头 | wdfchildlist.h (包括 Wdf.h) |
IRQL | PASSIVE_LEVEL |
另请参阅
WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER
WdfChildListAddOrUpdateChildDescriptionAsPresent