poSetPowerState 函数 (wdm.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 值。
返回值
在 Windows 2000 及更高版本的操作系统上, PoSetPowerState 返回以前的电源状态。 在 Windows 98/Me 上, PoSetPowerState 返回在 State 中传递 的状态。
注解
PoSetPowerState 通知 电源管理器 设备的新电源状态。 设备堆栈中的每个驱动程序 (筛选器、函数和总线驱动程序) 必须调用 PoSetPowerState ,以通知电源管理器其相应设备对象的电源状态发生更改。 例如:
- 驱动程序在收到设备设置电源请求后和调用 PoStartNextPowerIrp 之前调用此例程。 处理 PnP IRP_MN_START_DEVICE 请求时,驱动程序应调用 PoSetPowerState 以通知电源管理器设备处于 D0 状态。
- 如果设备关机,驱动程序必须在离开 D0 状态之前调用 PoSetPowerState 。 此外,驱动程序必须能够在 PoSetPowerState 返回之前处理客户端请求。
- 如果设备正在通电,驱动程序必须在设备成功进入 D0 状态后调用 PoSetPowerState 。
PoSetPowerState 的调用方必须在 IRQL <= APC_LEVEL运行,除非将状态设置为 D0。 将状态设置为 D0 时,调用方可以在 IRQL <= DISPATCH_LEVEL运行。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows 2000 开始可用。 |
目标平台 | 通用 |
标头 | wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 请参见“备注”部分。 |