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来注册 EvtChildListCreate 回调函数。
驱动程序调用 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