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 |