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 来注册 EvtChildListCreateDevice 回调函数。

在驱动程序调用 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