Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Хотя драйверы не могут напрямую установить системную политику питания, диспетчер питания предоставляет три подпрограммы, с помощью которых драйвер может предотвратить переход системы из рабочего состояния: PoSetSystemState, PoRegisterSystemState и PoUnregisterSystemState.
Вызывая PoRegisterSystemState или PoSetSystemState, драйвер может уведомить диспетчер питания о том, что пользователь присутствует или что драйвер требует использования системы или отображения.
PoRegisterSystemState позволяет драйверу зарегистрировать состояние непрерывной нагрузки. Он возвращает дескриптор, через который драйвер может позже изменить настройки. До тех пор, пока регистрация состояния действует, диспетчер питания не пытается поставить систему в спящий режим. Драйвер отменяет регистрацию состояния путем вызова PoUnregisterSystemState.
При использовании PoSetSystemState драйвер уведомляет диспетчер питания о таких же условиях (пользователь присутствует, система требуется, требуется отображение), но этот параметр не постоянен. Он приводит к перезапуску любого счетчика обратного отсчета, находящегося в режиме ожидания и связанного с указанными условиями.
Используя эти подпрограммы, драйвер может предотвратить многие, но не все, переходы из рабочего состояния. Диспетчер питания всегда завершает работу системы, когда потеря питания неминуема или когда пользователь явно запрашивает завершение работы.