Управление состояниями производительности устройства
Windows Vista имеет расширенную инфраструктуру управления питанием, которая позволяет стекам драйверов лучше управлять политикой управления питанием своих устройств. Драйверы могут регистрироваться для получения уведомлений при изменении параметров питания, определенных системой, или при возникновении системных событий питания. Владелец политики управления питанием устройства может использовать эти уведомления, чтобы соответствующим образом настроить потребление энергии своими устройствами. Кроме того, можно создать пользовательские параметры питания, которые предоставляют доступ к функциям управления питанием и производительностью для конкретного устройства, которые могут быть тесно интегрированы в политику управления питанием системы. Ниже приведены два основных подхода к интеграции состояний производительности устройств и поведения энергосбережения с политикой управления питанием системы.
Создание пользовательских параметров питания для устройства
Создание пользовательских параметров питания для устройства
Вы можете определить пользовательские параметры питания, которые можно использовать для настройки состояний производительности устройства или поведения энергосбережения. Сведения о пользовательских параметрах питания сохраняются и управляются диспетчером управления питанием. Другие компоненты в системе, такие как драйверы устройств, службы или приложения, могут регистрироваться, чтобы получать уведомления при изменении значения настраиваемого параметра питания. Как правило, устройства, которые имеют возможность компромисса с производительностью энергопотребления, должны иметь соответствующие настраиваемые параметры питания. Создание пользовательских параметров питания является наиболее гибким подходом для тесной интеграции энергопотребления с политикой питания системы и предоставляет следующие дополнительные преимущества:
Настраиваемый пользовательский интерфейс не требуется, чтобы пользовательские параметры питания были доступны пользователю. Все параметры питания, включая пользовательские параметры питания, предоставляются пользователю на странице Дополнительные параметры панель управления параметров питания.
Пользователи и системные администраторы могут легко создать скрипт для настройки пользовательских параметров питания с помощью Powercfg.exe, программы командной строки управления питанием.
При необходимости системный администратор может создать административный шаблон (. ADM) файл, который включает настройку новых параметров питания на основе групповой политики.
Отдельный параметр питания содержит все сведения, необходимые для уникальной идентификации, имени, описания и предоставления значений для параметра питания. Каждый параметр питания определяется с помощью GUID, имени параметра, описания и параметров по умолчанию для схем питания переменного тока и постоянного тока. Настраиваемый параметр питания можно создать статически для устройства с помощью директивы INF AddPowerSetting или динамически путем вызова функций управления питанием Win32, включенных в справочник по управлению питанием, который предоставляется в документации по Microsoft Windows SDK.
Драйверы вызывают PoRegisterPowerSettingCallback , чтобы зарегистрировать подпрограмму обратного вызова, которую вызывает диспетчер питания, чтобы уведомить водителя об изменении параметра питания. При изменении параметра диспетчер управления питанием вызывает подпрограмму обратного вызова и передает новое значение параметра. Затем драйверы могут выполнить действие, соответствующее параметру питания. Каждый параметр определяется идентификатором GUID параметра питания. Определяемые системой идентификаторы GUID для параметров питания определены в Wdm.h и Ntpoapi.h.
Например, чтобы получать уведомления о включении или отключении питания монитора, драйвер вызывает PoRegisterPowerSettingCallback, предоставляя GUID, определяющий параметр питания монитора (GUID_MONITOR_POWER_ON), и указатель на подпрограмму обратного вызова, которую диспетчер питания вызывает при изменении значения параметра питания монитора.
Регистрация для уведомления об изменении активной схемы питания, личности схемы питания или источника питания
Личность активной схемы питания передает намерение пользователя для общего поведения системы энергосбережения. Каждая схема власти, включая пользовательские схемы, имеет личность, которая указывает на общее намерение схемы. Это позволяет создавать дополнительные пользовательские схемы питания, обеспечивая при этом все преимущества знания о намерении схемы. Windows Vista включает следующие три системные схемы управления питанием и их соответствующих личностей.
Максимальная экономия энергии
Снижает производительность, чтобы свести к минимуму энергопотребление.
Автоматический (сбалансированный)
Позволяет системе выбрать оптимальный уровень состояния питания на основе общего энергопотребления.
Максимальная производительность
Обеспечивает максимальную производительность независимо от энергопотребления.
Источник питания может быть либо переменным, либо источником питания постоянного тока.
Владелец политики управления питанием устройства может использовать сведения об активной схеме питания, личности схемы питания и источнике питания для настройки политики питания устройства. Например, владелец политики питания устройства может активно отключать устройство, если индивидуальность схемы питания изменится на максимальную экономию энергии. Однако если личность схемы питания изменится на максимальная производительность, владелец политики управления питанием устройства может поддерживать уровень производительности своих устройств, а не уменьшать энергопотребление, и, возможно, постоянно оставить устройство питанием, чтобы обеспечить наивысший уровень производительности.
Водитель может зарегистрироваться, чтобы получать уведомления об изменении активной схемы питания, личности схемы питания или источника питания. Драйвер вызывает PoRegisterPowerSettingCallback , чтобы зарегистрировать подпрограмму обратного вызова, которую вызывает диспетчер питания, чтобы уведомить водителя о таком изменении, как показано ниже.
Чтобы зарегистрироваться для уведомления об изменении активной схемы питания, укажите GUID, представляющий параметр схемы питания (GUID_ACTIVE_POWERSCHEME). Диспетчер управления питанием будет вызывать процедуру обратного вызова всякий раз, когда меняется активная схема питания, даже если личность новой схемы власти совпадает с предыдущей схемой власти.
Чтобы зарегистрироваться для уведомления об изменении личности схемы управления питанием, укажите GUID, представляющий параметр для личности схемы управления питанием (GUID_POWERSCHEME_PERSONALITY). Менеджер власти будет вызывать процедуру обратного вызова всякий раз, когда активная схема власти меняется и личность новой схемы власти отличается от личности предыдущей схемы власти.
Чтобы зарегистрироваться для уведомления об изменении источника питания, укажите GUID, представляющий параметр для источника питания (GUID_ACDC_POWER_SOURCE). Диспетчер питания будет вызывать подпрограмму обратного вызова при каждом изменении параметра источника питания.
При изменении активной схемы питания или изменения личности схемы питания диспетчер управления питанием вызывает процедуру обратного вызова и передает GUID, который представляет новую схему власти или личность схемы власти. Затем драйверы могут выполнить действие, соответствующее изменению.
Параметры активной схемы питания и параметры личности схемы питания используют следующие идентификаторы GUID для определения соответствующих значений:
GUID_MAX_POWER_SAVINGS, которая соответствует схеме максимальной экономии энергии и ее личности.
GUID_MIN_POWER_SAVINGS, которая соответствует схеме максимальной производительности питания и соответствующей личности.
GUID_TYPICAL_POWER_SAVINGS, которая соответствует автоматической (сбалансированной) схеме власти и соответствующей личности.
При изменении источника питания диспетчер питания вызывает подпрограмму обратного вызова и передает GUID, представляющий параметр источника питания, и значение параметра источника питания, указывающее, питается ли компьютер от источника питания переменного тока, источника питания постоянного тока или краткосрочного источника питания постоянного тока.