Функция 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 |