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 启用/禁用总线唤醒回调可能会执行。
  • 从 PDO 上的电源托管队列(假设 PDO 是电源策略所有者)转发到 FDO 上的非电源托管队列的请求可能在总线驱动程序位于 Dx 中时调度。
  • 子堆栈独立于父堆栈执行电源状态转换。 这包括快速恢复等方案,即子堆栈可能会接收其 S-IRP,甚至在父堆栈完成处理自己的 D-IRP 之前完成其 D-IRP 的处理。

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

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

要求

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