Поделиться через


Функция PoRegisterSystemState (wdm.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.
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=APC_LEVEL

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

PoSetSystemState

PoUnregisterSystemState