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 请参阅“备注”部分。

另请参阅

IRP_MN_START_DEVICE

PoStartNextPowerIrp