PoSetPowerState 函数 (ntifs.h)
PoSetPowerState 例程通知系统设备电源状态发生更改。
语法
POWER_STATE PoSetPowerState(
[in] PDEVICE_OBJECT DeviceObject,
[in] POWER_STATE_TYPE Type,
[in] POWER_STATE State
);
参数
[in] DeviceObject
指向目标 DEVICE_OBJECT的指针。
[in] Type
指示 POWER_STATE_TYPE 值。 驱动程序必须指定 DevicePowerState。
[in] State
指定要设置的电源状态。 驱动程序必须指定 DEVICE_POWER_STATE 值。
返回值
PoSetPowerState 返回以前的电源状态。
注解
PoSetPowerState 通知 电源管理器 设备的新电源状态。 设备堆栈中的每个驱动程序 (筛选器、函数和总线驱动程序) 必须调用 PoSetPowerState ,以通知电源管理器其相应设备对象的电源状态发生更改。 例如:
驱动程序在收到设备 set-power 请求和调用 PoStartNextPowerIrp 之前调用此例程。 处理 PnP IRP_MN_START_DEVICE 请求时,驱动程序应调用 PoSetPowerState 以通知电源管理器设备处于 D0 状态。
如果设备关闭电源,驱动程序必须在离开 D0 状态之前调用 PoSetPowerState 。 此外,驱动程序必须能够在 PoSetPowerState 返回之前处理客户端请求。
如果设备正在通电,驱动程序必须在设备成功进入 D0 状态后调用 PoSetPowerState 。
有关打开和关闭设备电源的详细信息,请参阅 处理设备电源状态的IRP_MN_SET_POWER。
PoSetPowerState 的调用方必须在 IRQL <= APC_LEVEL运行,除非将状态设置为 D0。 将状态设置为 D0 时,调用方可以在 IRQL <= DISPATCH_LEVEL 运行。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 |
目标平台 | 通用 |
标头 | ntifs.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 请参见“备注”部分。 |