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 |