PoRegisterSystemState 函数 (ntifs.h)

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

语法

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

参数

[in, out] StateHandle

指向注册状态句柄的调用方提供的缓冲区的指针。 缓冲区的大小(以字节为单位)为 sizeof(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
目标平台 通用
标头 ntifs.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=APC_LEVEL

另请参阅

PoSetSystemState

PoUnregisterSystemState