poRegisterSystemState 函数 (wdm.h)

由于某些活动, PoRegisterSystemState 例程将系统注册为忙碌。

语法

PVOID PoRegisterSystemState(
  [in, out] PVOID           StateHandle,
  [in]      EXECUTION_STATE Flags
);

参数

[in, out] StateHandle

指向注册状态句柄的调用方提供的缓冲区的指针。 缓冲区的大小(以字节为单位 )的大小为 (ULONG) 。 如果 为 NULL,则为新注册。 如果不是 NULL,则此参数指向先前调用 PoRegisterSystemState 返回的句柄。

[in] Flags

指示活动的类型,由以下一个或多个值的按位 OR 指定:

ES_SYSTEM_REQUIRED

无论明显负载如何,系统都不处于空闲状态。

ES_DISPLAY_REQUIRED

需要使用显示器。

ES_USER_PRESENT

用户存在。

ES_CONTINUOUS

这些设置是连续的,在显式更改之前应保持有效。

返回值

PoRegisterSystemState 返回句柄,稍后将用于更改或取消注册系统繁忙状态。 如果无法分配句柄,则返回 NULL

注解

PoRegisterSystemState 注册标志指示的系统繁忙状态。 注册一直持续,直到调用方通过另一次调用 PoRegisterSystemState 显式更改它,或者通过调用 PoUnregisterSystemState 取消注册。

Flags 参数指定正在进行的活动类型。 驱动程序可以指定标志的任意组合。

设置ES_CONTINUOUS会使忙碌状态一直持续,直到驱动程序通过调用 PoRegisterSystemStatePoUnregisterSystemState 显式更改或取消它。

驱动程序可以设置系统繁忙状态,以请求 电源管理器 避免在驱动程序活动发生时 (S0) 系统电源状态从系统工作状态转换。 但请注意,在某些情况下, ((例如电池电量极低) 电源管理器可能会替代此请求,并使系统进入睡眠状态。

若要设置系统电源状态,请调用 PoSetSystemState

要求

要求
最低受支持的客户端 从 Windows 2000 开始可用。
目标平台 通用
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=APC_LEVEL

另请参阅

PoSetSystemState

PoUnregisterSystemState