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多次,框架将停止调用故障设备的回调函数。

言论

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

驱动程序调用 WdfChildListAddOrUpdateChildDescriptionAsPresentWdfChildListUpdateAllChildDescriptionsAsPresent后,框架将调用驱动程序的 EvtChildListCreateDevice 回调函数。 回调函数必须调用 WdfDeviceCreate 才能创建框架设备对象(PDO)。

在调用 WdfDeviceCreate之前,驱动程序必须调用框架提供的函数来初始化WDFDEVICE_INIT结构。 有关这些函数的详细信息,请参阅 WDFDEVICE_INIT

有关调用 WdfDeviceCreate的详细信息,请参阅 创建框架设备对象

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

要求

要求 价值
目标平台 普遍
最低 KMDF 版本 1.0
标头 wdfchildlist.h (包括 Wdf.h)
IRQL PASSIVE_LEVEL

另请参阅

WDFDEVICE_INIT

WDF_CHILD_IDENTIFICATION_DESCRIPTION_HEADER

WdfChildListAddOrUpdateChildDescriptionAsPresent

WdfChildListCreate

WdfChildListUpdateAllChildDescriptionsAsPresent

WdfDeviceCreate

WdfFdoInitSetDefaultChildListConfig