Функция PoRegisterSystemState (ntifs.h)

Подпрограмма PoRegisterSystemState регистрирует систему как занятую из-за определенных действий.

Синтаксис

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

Параметры

[in, out] StateHandle

Указатель на предоставленный вызывающим объектом буфер для дескриптора состояния регистрации. Размер буфера в байтах равен sizeof(ULONG). Если значение РАВНО NULL, это новая регистрация. Если значение не равно NULL, этот параметр указывает на дескриптор, возвращенный предыдущим вызовом PoRegisterSystemState.

[in] Flags

Указывает тип действия, заданный побитовой операцией ИЛИ одного или нескольких из следующих значений:

Значение Значение
ES_SYSTEM_REQUIRED Система не простаит, независимо от видимой нагрузки.
ES_DISPLAY_REQUIRED Требуется использовать дисплей.
ES_USER_PRESENT Пользователь присутствует.
ES_CONTINUOUS Параметры являются непрерывными и должны действовать до явного изменения.

Возвращаемое значение

PoRegisterSystemState возвращает дескриптор, который будет использоваться позже для изменения или отмены регистрации состояния занятости системы. Он возвращает значение NULL, если дескриптор не может быть выделен.

Комментарии

PoRegisterSystemState регистрирует состояние занятости системы, как указано флагами. Регистрация сохраняется до тех пор, пока вызывающий объект не изменит ее явным образом с помощью другого вызова PoRegisterSystemState или не отменит ее с помощью вызова PoUnregisterSystemState.

Параметр Flags указывает тип выполнения действия. Драйверы могут указывать любое сочетание флагов.

При установке ES_CONTINUOUS состояние занятости сохраняется до тех пор, пока драйвер явно не изменит или не отменит его, вызвав PoRegisterSystemState или PoUnregisterSystemState.

Драйвер может задать состояние занятости системы, чтобы запросить, чтобы диспетчер питания избегал перехода состояния питания системы из рабочего состояния системы (S0) во время активности драйвера. Однако обратите внимание, что при некоторых обстоятельствах (например, при критически низком заряде батареи) диспетчер питания может переопределить этот запрос и в любом случае переложить систему в спящий режим.

Чтобы задать состояние питания системы, вызовите PoSetSystemState.

Требования

Требование Значение
Минимальная версия клиента Windows 2000
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=APC_LEVEL

См. также раздел

PoSetSystemState

PoUnregisterSystemState