WdfPdoInitRemovePowerDependencyOnParent 函数 (wdfpdo.h)

WdfPdoInitRemovePowerDependencyOnParent 方法删除“备注”部分所述的电源依赖项。

语法

void WdfPdoInitRemovePowerDependencyOnParent(
  PWDFDEVICE_INIT DeviceInit
);

参数

DeviceInit

指向 WDFDEVICE_INIT 结构的指针。

返回值

备注

通常,框架要求父总线驱动程序在子设备进入 D0 之前进入 D0 设备电源状态,同样,子设备在父设备离开 D0 之前退出 D0。

但是,可能不需要此行为,尤其是当子设备是不表示任何实际硬件的虚拟设备时。 在 S0 空闲关机时,子设备的电源状态可能与父设备无关。 事实上,子设备可能没有理由执行 S0 空闲检测。 在这种情况下,父设备根据 I/O 活动在 D0 和 Dx 之间转换会更好,而不是依赖于子设备的电源状态。

删除电源依赖项会对总线驱动程序产生以下影响:

  • 当父设备处于 Dx 中时,PDO PnP/Power 回调可能会执行。
  • 当父设备处于 Dx 中时,可能会执行 PDO enable/disable-wake-at-bus 回调。
  • 假设 PDO 是电源策略所有者, () FDO 上的非电源托管队列时,可能会调度从 PDO 上的电源托管队列转发的请求。
  • 子堆栈独立于父堆栈执行电源状态转换。 这包括快速恢复等方案,其中子堆栈可能会接收其 S-IRP,甚至在父堆栈完成处理自己的 D-IRP 之前完成其 D-IRP 的处理。

若要删除电源依赖项,总线驱动程序可以在为子设备创建 PDO 时调用 WdfPdoInitRemovePowerDependencyOnParent

如果父总线驱动程序不是父设备堆栈的电源策略所有者,则此函数不执行任何操作。

要求

要求
最低受支持的客户端 Windows 10 版本 2004
最低 KMDF 版本 1.29
标头 wdfpdo.h (包括 Wdf.h)
Library Wdf01000.sys (KMDF)
IRQL PASSIVE_LEVEL