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,以通知电源管理器对其相应设备对象的电源状态发生更改。 例如:
驱动程序在收到设备集电源请求以及调用 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) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 请参阅“备注”部分。 |