在总线驱动程序中创建设备对象

当每个 总线驱动程序 发现子设备连接到父设备时,都必须创建一个框架设备对象。 父设备通常是总线,但它也可以是多功能设备,每个功能都需要一组单独的驱动程序 (,例如支持数字音频的声卡和 MIDI) 。 总线驱动程序创建的设备对象称为物理设备对象 (PDO) ,因为每个对象都表示一个硬件块的实际连接, (子) 到另一个 (父) 。

标识和报告连接到总线的设备的过程称为 总线枚举

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

总线驱动程序可以调用一组 框架设备对象初始化方法,这些方法将信息存储在 WDFDEVICE_INIT 结构中。 此外,总线驱动程序可以调用 框架 PDO 初始化方法

为枚举的子设备创建框架设备对象通常包括以下步骤:

如果驱动程序在初始化从 WdfPdoInitAllocate 获取的 WDFDEVICE_INIT 结构时遇到错误,则驱动程序必须调用 WdfDeviceInitFree 而不是 WdfDeviceCreate

总线驱动程序创建设备对象后,通常调用 WdfDeviceSetPnpCapabilitiesWdfDeviceSetPowerCapabilities 来报告设备的即插即用和电源功能。

每个总线驱动程序也是总线适配器的函数驱动程序。 因此,驱动程序还必须提供 EvtDriverDeviceAdd 回调函数。 此回调函数为系统上的每个总线适配器创建一个功能设备对象 (FDO) 。 有关创建 FDO 的详细信息,请参阅 在函数驱动程序中创建设备对象