События управления питанием системы
Событие управления питанием системы — это изменение состояния питания системы, режима работы устройства или системы либо значения параметра питания. Так как эти события могут влиять на работу приложений и устанавливаемых драйверов, система уведомляет все приложения и устанавливаемые драйверы путем трансляции уведомления о каждом событии. Приложения и службы регистрируются для получения уведомлений с помощью функции RegisterPowerSettingNotification . Уведомления принимаются через сообщение WM_POWERBROADCAST , содержащее событие управления питанием и все связанные с ним данные.
События состояния питания системы
Событие состояния питания системы возникает при изменении источника питания или состояния системного аккумулятора. Например, система транслирует событие PBT_APMPOWERSTATUSCHANGE всякий раз, когда пользователь переключается с батареи на питание переменного тока или наоборот. Это событие возникает также, если уровень заряда батареи становится ниже заданного пользователем порога или изменяется на заданную величину в процентах.
События режима работы
Событие режима работы возникает при изменении энергопотребления, например при переключении системы в спящий режим из-за бездействия или при переводе системы в спящий режим вручную. Система передает события об этих изменениях перед изменением энергопотребления. Например, если система определяет, что она простаивает, она передает PBT_APMSUSPEND событие, которое уведомляет приложения и драйверы о том, что она приостанавливает работу и спящий режим для экономии электроэнергии. Приложения и драйверы могут подготовиться к спящему режиму, закрывая файлы и сохраняя данные, чтобы избежать возможной потери данных.
Когда система выполняет критическую подвеску, система немедленно переводится в спящий режим из-за критического состояния, такого как критическая сигнализация батареи. В отличие от обычного перехода в спящий режим, система не уведомляет приложения и водителей перед проведением критической приостановки. Поэтому приложения должны быть готовы к обработке критических приостановок.
При восстановлении работы системы после приостановки система уведомляет все приложения и драйверы. Он также указывает, восстанавливается ли система после критической приостановки, чтобы приложение или драйвер могли предпринять соответствующие действия для восстановления своих данных и продолжения работы.
Приложения должны предпринимать каждую попытку обработать переход в спящем режиме без вмешательства пользователя, так как это может быть невозможно для пользователя. Например, крышка на компьютере записной книжки может быть закрыта. Когда приложение получает уведомление о том, что система скоро перейдет в спящий режим, оно должно быстро выполнить все необходимые операции и выйти из цикла сообщений. Система допускает не более двух секунд для каждого приложения при обработке этого сообщения до истечения времени ожидания.
События изменения параметров питания
Событие изменения параметров питания возникает при изменении значения параметра питания. Например, пользователь изменяет план управления питанием с "Высокая производительность" на "Сбалансированная" в приложении "Параметры питания" в панель управления. В этом случае система будет транслировать событие, указывающее, что схема управления питанием изменилась. Это событие включает новое значение параметра питания.
Связанные темы