WdfDeviceInitSetPowerPageable 函数 (wdfdevice.h)

[仅适用于 KMDF]

WdfDeviceInitSetPowerPageable 方法通知电源管理器,当系统在睡眠状态与工作 (S0) 状态之间转换时,驱动程序必须能够访问可分页数据。

语法

void WdfDeviceInitSetPowerPageable(
  [in] PWDFDEVICE_INIT DeviceInit
);

参数

[in] DeviceInit

调用方提供的指向 WDFDEVICE_INIT 结构的指针。

返回值

备注

如果函数驱动程序或总线驱动程序调用 WdfDeviceInitSetPowerPageable,则当驱动程序的设备 进入低功耗 状态或 返回到工作状态时,系统将确保分页文件的设备处于其工作 (D0) 状态。 这样,驱动程序就可以在设备的电源转换期间访问文件、注册表和分页池。

默认情况下,框架允许访问函数驱动程序的可分页数据。 框架对总线驱动程序枚举的每个子设备使用父设备的设置,除非总线驱动程序为子设备调用 WdfDeviceInitSetPowerPageableWdfDeviceInitSetPowerNotPageable 。 如果为子设备编写调用 WdfDeviceInitSetPowerPageable 的 总线驱动程序,则子设备堆栈中没有任何驱动程序可以调用 WdfDeviceInitSetPowerNotPageable

从筛选器驱动程序调用 WdfDeviceInitSetPowerPageableWdfDeviceInitSetPowerNotPageable 不起作用。 框架使用下一个下级驱动程序指定的设置。

大多数驱动程序不需要调用 WdfDeviceInitSetPowerPageableWdfDeviceInitSetPowerNotPageable。 相反,你应该让框架使用适合你的驱动程序的默认设置。 但是,如果驱动程序是驱动程序堆栈的一部分,该驱动程序不得在电源转换 (期间访问可分页数据,例如存储堆栈或视频堆栈) ,或者驱动程序是枚举可能是存储或视频设备的总线驱动程序,则驱动程序应调用 WdfDeviceInitSetPowerNotPageable

如果驱动程序调用 WdfDeviceInitSetPowerInrush,则它不得调用 WdfDeviceInitSetPowerPageable

驱动程序必须先调用 WdfDeviceInitSetPowerPageable ,然后才能调用 WdfDeviceCreate

有关调用 WdfDeviceCreate 的详细信息,请参阅 创建框架设备对象

示例

下面的代码示例通知电源管理器,当系统在睡眠状态与工作 (S0) 状态之间转换时,驱动程序必须能够访问可分页数据。

WdfDeviceInitSetPowerPageable(DeviceInit);

要求

要求
目标平台 通用
最低 KMDF 版本 1.0
标头 wdfdevice.h (包括 Wdf.h)
Library Wdf01000.sys (请参阅框架库 Versioning.)
IRQL <= DISPATCH_LEVEL
DDI 符合性规则 ChildDeviceInitAPI (kmdf) DeviceInitAPI (kmdf) DriverCreate (kmdf) KmdfIrql (kmdf) KmdfIrql2 (kmdf) 、KmdfIrqlExplicit (kmdf) , PdoDeviceInitAPI (kmdf)

另请参阅

WdfDeviceInitSetPowerNotPageable