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


Директива INF AddPowerSetting

Директива AddPowerSetting ссылается на один или несколько разделов, которые используются для изменения или создания сведений о параметрах питания. Каждый раздел add-power-setting-section определяет параметр питания, допустимые значения для параметра питания, понятное имя параметра питания и описание параметра питания. Раздел add-power-setting-section также указывает значение по умолчанию для каждой личности схемы управления. Дополнительные сведения о параметрах питания и схемах питания см. в разделе Управление состояниями производительности устройств.

[DDInstall] | 
[DDInstall.HW] | 
[DDInstall.CoInstallers] | 
[ClassInstall32] | 
[ClassInstall32.ntx86] | 
[ClassInstall32.ntia64] |  (Windows Vista)
[ClassInstall32.ntamd64] | (Windows Vista)
[ClassInstall32.ntarm] | (Windows 8 and later versions of Windows)
[ClassInstall32.ntarm64] (Windows 10 version 1709 and later versions of Windows)

AddPowerSetting=add-power-setting-section[,add-power-setting-section]

Как правило, раздел add-power-setting-содержит следующие директивы:

  • Директива SubGroup.

  • Директива Setting

  • Список из двух или более директив Value или одной директивы ValueRange .

  • Набор из шести директив Default .

Раздел add-power-setting-section принимает одну из следующих двух возможных форм:

  • Если допустимые значения параметров питания лучше всего определить как набор из двух или более дискретных значений, используйте список директив Value , чтобы указать допустимые значения следующим образом:

    [add-power-setting-section]
    
    [SubGroup = {subgroup-guid}] | SubGroup = {subgroup-guid}, subgroup-name, subgroup-description, subgroup-icon
    Setting = {setting-guid}, [setting-name],[setting-description],[setting-icon]
    Value = value-index, value-name,[value-description], value-flags, value-data 
    Value = value-index, value-name,[value-description], value-flags, value-data
    [Value = value-index, value-name,[value-description], value-flags, value-data
    ...
    Value = value-index, value-name,[value-description], value-flags, value-data]
    
    (Six required Default directives, each one of which has the following form)
    Default = power-scheme-personality-GUID, AC/DC-index, default-setting-index | default-setting-value 
    ...
    
  • Если допустимые значения параметров питания лучше всего определить как добавочную последовательность неотрицательных целочисленных значений в указанном диапазоне, используйте одну директиву ValueRange для указания допустимых значений следующим образом:

    [add-power-setting-section]
    
    [SubGroup = {subgroup-guid}] | 
    SubGroup = {subgroup-guid}, subgroup-name, subgroup-description, subgroup-icon
    Setting = {setting-guid}, [setting-name],[setting-description],[setting-icon]
    ValueRange = range-minimum-value, range-maximum-value, range-increment, [range-unit-label] 
    
    (Six required Default directives, each one of which has the following form)
    Default = power-scheme-personality-GUID, AC/DC-index, default-setting-index | default-setting-value 
    ...
    

Записи

Примечание

За исключением записи value-data , все следующие записи, предоставляющие строковое значение, могут указывать строку одним из способов, описанных в разделе Указание значения строки AddPowerSetting.

Подгруппы
Подгруппа группирует параметры питания, которые логически связаны.

Чтобы указать определяемую системой подгруппу, добавьте директиву SubGroup и укажите только запись guid подгруппы . Системные подгруппы представлены константами GUID_Xxx_SUBGROUP и NO_SUBGROUP_GUID, которые определены в Wdm.h.

Например, GUID_VIDEO_SUBGROUP представляет подгруппу, содержащую параметры питания видео для личности схемы управления питанием. Константой NO_SUBGROUP_GUID представляет коллекцию параметров, которые логически не принадлежат ни к одной подгруппе. Если директива SubGroup не включена, параметр по умолчанию добавляется в коллекцию параметров, которые логически не принадлежат ни к одной подгруппе.

Чтобы определить новую подгруппу, добавьте директиву SubGroup и укажите следующие обязательные записи: subgroup-guid, subgroup-name, subgroup-description и subgroup-icon. Guid новой подгруппы должен быть уникальным, а остальные записи должны быть как можно более описательными.

subgroup-GUID
Обязательная запись содержит GUID, идентифицирующий подгруппу. Формат этой записи — {XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX}, где "X" — шестнадцатеричная цифра.

Например, значение системной константы GUID_VIDEO_SUBGROUP равно {7516B95F-F776-4464-8C53-06167F40CC99}. Этот GUID представляет подгруппу, содержащую параметры питания видео для личности схемы управления питанием.

имя подгруппы
Строка, указывающая имя подгруппы параметра питания. Если подгруппа является подгруппой, определяемой системой, эту запись не следует предоставлять. Если подгруппа является новой, эта запись является обязательной.

описание подгруппы
Строка, описывающая пользователю подгруппу питания. Если подгруппа является подгруппой, определяемой системой, эту запись не следует предоставлять. Если подгруппа является новой, эта запись является обязательной.

значок подгруппы
Ссылка на ресурс значка. Если подгруппа является подгруппой, определяемой системой, эту запись не следует предоставлять. Если подгруппа является новой, эта запись является обязательной.

Ресурс значка должен быть указан как не зависящий от языка параметр реестра. Сведения о том, как указать значение реестра, не зависящие от языка, см. в разделе Указание значения строки AddPowerSetting.

Параметр
Директива Setting определяет параметр, к которому применяются все остальные записи в разделе. В разделе add-power-setting требуется одна директива Setting , а в разделе add-power-setting может быть только одна директива Setting . Если INF-файл определяет несколько параметров, каждый параметр должен быть определен в отдельном разделе add-power-setting.

Ниже приведены записи, связанные с директивой Setting .

setting-guid
Обязательная запись, указывающая GUID, представляющий параметр питания. Формат этой записи — {XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX}, где каждое "X" является шестнадцатеричной цифрой.

Например, ниже приведено пользовательское значение GUID: {BFC0D9E9-549C-483D-AD2A-3D90C98A8B03}.

setting-name
Необязательная запись, указывающая строку, содержащую понятное имя параметра питания. Параметры питания в панель управления отображает это понятное имя для пользователя.

описание параметров
Необязательная запись, указывающая строку, описывающую пользователю параметр питания и влияние этого параметра на питание и производительность системы.

значок параметров
Необязательная запись, которая является ссылкой на ресурс значка. Ресурс значка должен быть указан не зависящим от языка значением реестра.

Сведения о том, как указать значение реестра, не зависящий от языка, см. в разделе Указание значения строки AddPowerSetting.

Значение
Директива Value определяет допустимое значение для параметра питания. Директиву Value следует использовать, если значения можно определить как набор из двух или более значений, где каждое значение может иметь пользовательский тип данных для конкретного значения. В этом случае раздел add-power-setting-section должен содержать две или более директив Value . Пользователь может выбрать одно из этих значений в разделе Параметры питания в панель управления, чтобы настроить схему питания.

Если допустимые значения параметров питания лучше всего описать как добавочный набор неотрицательных целых чисел в диапазоне, используйте директиву ValueRange вместо директивы Value , чтобы указать допустимые значения параметров питания.

value-index
Обязательная запись, указывающая уникальное значение индекса, которое больше или равно нулю и которое используется для ссылки на соответствующее значение параметра. Параметры питания в панель управления отображают значения параметров питания для пользователя в порядке соответствующих значений индекса , от самого низкого к самому высокому.

value-name
Обязательный элемент, предоставляющий строку, которая предоставляет понятное имя для соответствующего значения параметра. Параметры питания в панель управления отображают понятные имена значений параметров питания для пользователя.

value-description
Необязательная запись, которая предоставляет строку, описывающую пользователю значение параметра питания и влияние этого параметра на питание и производительность системы.

флаги значений
Обязательная запись, указывающая тип данных соответствующего значения, как показано в следующей таблице.

Значение флага Тип данных
0x00000001 REG_BINARY
0x00010001 REG_DWORD
0x00000000 REG_SZ

value-data
Обязательная запись, которая предоставляет данные для соответствующего значения параметра, формат которого зависит от типа данных, указанного в соответствующей записи value-flags , следующим образом:

  • Значение REG_BINARY можно указать в шестнадцатеричном формате с помощью нотации 0x или в виде разделенного запятыми списка парных шестнадцатеричных чисел без нотации 0x.

    Например, следующие записи эквивалентны: 0xFEDCBA9876543210 и следующий разделенный запятыми список парных шестнадцатеричных цифр: FE, DC, BA, 98, 76, 54, 32, 10.

  • Значение REG_DWORD можно указать в шестнадцатеричном формате (с помощью нотации 0x) или в десятичном формате.

  • Значение REG_SZ может быть выражено только в виде строки, заключенной в двойные кавычки ("строка в кавычках") или в виде токена %strkey%, определенного в разделе INF Strings INF-файла.

Примечание

Не следует использовать строковые значения, так как их невозможно локализовать. Вместо этого используйте значения типа REG_BINARY или REG_DWORD.

ValueRange
Используйте директиву ValueRange , если допустимые значения параметров питания лучше всего определить как добавочную последовательность неотрицательных целочисленных значений в указанном диапазоне. Диспетчер питания проверяет, является ли параметр, который пользователь выбирает в разделе Параметры питания в панель управления, является одним из этих допустимых значений. Набор допустимых значений определяется минимально допустимым значением, максимальным допустимым значением и шагом приращения между допустимыми значениями в диапазоне. Значение допускается, если оно удовлетворяет следующим требованиям:

range-minimum-value + k*range-increment

Где range-minimum-value больше или равно нулю, k и range-increment больше или равно единице, а значение меньше или равно значению range-maximum-value. Кроме того, range-maximum-value должен быть равен диапазону минимального значения + k*диапазон-инкремент для некоторых k.

Например, для диапазона минимальное значение , равное 0, максимальное значение диапазона , равное 10, и приращение диапазона , равное 2, допустимые значения: 0, 2, 4, 6, 8 и 10.

Если допустимые значения параметров питания лучше всего описать как список значений, где каждое значение может иметь пользовательский тип данных для конкретного значения, используйте директиву Value вместо директивы ValueRange .

минимальное значение диапазона
Значение типа REG_DWORD , указывающее минимально допустимый параметр питания.

range-maximum-value
Значение типа REG_DWORD , указывающее максимально допустимое значение параметра питания. Максимальное значение должно быть больше или равно минимальному значению и равно диапазону минимального значения + k*диапазон-инкремент для некоторого целого числа k , которое больше нуля.

приращение диапазона
Значение типа REG_DWORD больше нуля. Это значение указывает разницу между последовательными значениями в пределах инклюзивного диапазона, заданного значениями range-minimum-value и range-maximum-value.

метка range-unit-label
Необязательная строка, описывающая значение параметра питания. Строка вместе с setting-name информирует пользователя о типе данных для ввода.

Например, строку можно использовать для указания единиц значений, таких как "minutes" или "%" (представляющий процент).

Default
Существует шесть директив По умолчанию , которые должны быть включены в раздел AddPowerSetting . Директива Default задает значение по умолчанию для одного из трех определяемых системой схем питания, которые применяются к состоянию питания переменного тока, и трех определяемых системой пользователей схемы питания, которые применяются к состоянию питания постоянного тока.

Крайне важно, чтобы значения по умолчанию были допустимыми и точными. Если пользователь не задал параметр питания вручную, диспетчер питания использует значение по умолчанию, указанное в директиве Default .

power-scheme-personality-GUID
Один из следующих идентификаторов GUID, который определяет схему питания, к которой применяется значение по умолчанию.

Персонализация GUID
Экономия энергии {A1841308-3541-4FAB-BC81-F71556F20B4A}
Высокопроизводительные {8C5E7FDA-E8BF-4A96-9A85-A6E23A8C635C}
Balanced {381B4222-F694-41F0-9685-FF5BB260DF2E}

Эти GUID определяются в Wdm.h.

AC/DC-индекс
Если ac/DC-index имеет значение 0, параметр применяется к состоянию питания переменного тока, а если ac/DC-index равен 1, параметр применяется к состоянию питания постоянного тока. Недопустимое значение, отличное от 0 или 1.

default-setting-index
Если директива Value используется для указания допустимых значений, default-setting-index — это значение записи value-index директивы Value . Если директива ValueRange используется для указания допустимых значений, эта запись не применяется.

default-setting-value
Если для указания допустимых значений используется директива ValueRange , значение-default-setting-value является одним из разрешенных значений, заданных в директиве ValueRange . Если директива Value используется для указания допустимых значений, эта запись не применяется.

Комментарии

Имя раздела add-power-setting-section должно быть уникальным в INF-файле, но на него могут ссылаться несколько директив AddPowerSetting в том же INF-файле. Имя каждого раздела должно соответствовать общим правилам, описанным в разделе Общие правила синтаксиса для ФАЙЛОВ INF.

Диспетчер питания не удаляет политики питания устройства автоматически после удаления устройства. Установка или удаление параметров питания, значений и значений по умолчанию может выполняться совместным установщиком с помощью системных процедур настройки питания, определенных в Powrprof.h. Дополнительные сведения об этих процедурах управления питанием см. в справочнике по управлению питанием, который предоставляется вместе с документацией по Microsoft Windows SDK.

Кроме того, для изменения параметров питания можно использовать программу командной строкиPowercfg.exe . Сведения о Powercfg.exeсм. в центре справки и поддержки Майкрософт.

Дополнительные сведения об использовании системных расширений .nt, .ntx86, .ntia64, .ntamd64, .ntarm и .ntarm64 см. в статье Создание INF-файлов для нескольких платформ и операционных систем.

Указание строкового значения AddPowerSetting

За исключением записей value-data типа REG_SZ, все остальные строковые значения, поставляемые с директивой AddPowerSetting , могут быть выражены в виде строки, заключенной в двойные кавычки ("строка в кавычках"), в виде маркера %strkey%, определенного в разделе INF-строки INF-файла, или как значение реестра, не зависящий от языка.

Значения реестра, не зависящие от языка, используются для поддержки многоязыкового пользовательского интерфейса Windows (MUI) и указываются следующим образом:

"@file-path,-resourceID[;comment]"

Ниже перечислены записи, указывающие значение реестра, не зависящие от языка.

путь к файлу
Полный путь к файлу, который содержит ресурс.

resourceID
Идентификатор соответствующего ресурса. В случае строки resourceID ссылается на строку. В случае значка идентификатор ресурса ссылается на значок.

Комментарий
Необязательное значение, которое можно использовать для упрощения отладки или предоставления дополнительного комментария к параметру. В случае строкового ресурса диспетчер управления питанием не объединяет и не отображает строку комментария с указанной строкой ресурса.

Дополнительные сведения о том, как указать не зависящие от языка значения реестра, см. в разделе Рендеринг оболочки и строки реестра.

Примеры

В следующих двух примерах определяются параметры питания, управляющие яркостью ЖК-дисплея. В первом примере показано, как использовать директиву Value для определения минимального, среднего и максимального значения яркости ЖК-дисплея.

// Within a DDinstall or ClassInstall23 section
AddPowerSetting=LCDDim
...

[LCDDim]
SubGroup = {7516B95F-F776-4464-8C53-06167F40CC99}
Setting = {381B4222-F694-41F0-9685-FF5BB260DF2E}, "LCD Brightness", "Controls the brightness of the LCD display"

Value = 0, "Low", "Minimum Brightness", %FLG_ADDREG_TYPE_DWORD%, 0x50
Value = 1, "Medium", "Medium Brightness", %FLG_ADDREG_TYPE_DWORD%, 0x75
Value = 2, "High", "Maximum Brightness", %FLG_ADDREG_TYPE_DWORD%, 0x100

Default = %GUID_MAX_POWER_SAVINGS%, %AC%, 0
Default = %GUID_MAX_POWER_SAVINGS%, %DC%, 0
Default = %GUID_TYPICAL_POWER_SAVINGS%, %AC%, 2
Default = %GUID_TYPICAL_POWER_SAVINGS%, %DC%, 1
Default = %GUID_MIN_POWER_SAVINGS%, %AC%, 2
Default = %GUID_MIN_POWER_SAVINGS%, %DC%, 2
...

[Strings]
GUID_MAX_POWER_SAVINGS = {a1841308-3541-4fab-bc81-f71556f20b4a}
GUID_TYPICAL_POWER_SAVINGS = {381b4222-f694-41f0-9685-ff5bb260df2e}
GUID_MIN_POWER_SAVINGS = {8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c}
AC = 0
DC = 1
FLG_ADDREG_TYPE_DWORD = 0x00010001

Во втором примере показано, как использовать директиву ValueRange для определения диапазона допустимых значений яркости ЖК-дисплея, который изменяется в диапазоне от 0 % до 100 % с шагом 1 % между допустимыми значениями.

// Within a DDinstall or a ClassInstall23 section
AddPowerSetting=LCDDimRange
...

[LCDDimRange]
SubGroup = {7516B95F-F776-4464-8C53-06167F40CC99}
Setting = {381B4222-F694-41F0-9685-FF5BB260DF2E}, "LCD Brightness", "Controls the brightness of the LCD display"
ValueRange = 0, 100, 1, "%"
Default = %GUID_MAX_POWER_SAVINGS%, %AC%, 50
Default = %GUID_MAX_POWER_SAVINGS%, %DC%, 50
Default = %GUID_TYPICAL_POWER_SAVINGS%, %AC%, 95
Default = %GUID_TYPICAL_POWER_SAVINGS%, %DC%, 50
Default = %GUID_MIN_POWER_SAVINGS%, %AC%, 100
Default = %GUID_MIN_POWER_SAVINGS%, %DC%, 100

[Strings]
GUID_MAX_POWER_SAVINGS = {a1841308-3541-4fab-bc81-f71556f20b4a}
GUID_TYPICAL_POWER_SAVINGS = {381b4222-f694-41f0-9685-ff5bb260df2e}
GUID_MIN_POWER_SAVINGS = {8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c}
AC = 0
DC = 1

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

ClassInstall32

Установка DDInstall

DDInstall. CoInstallers

DDInstall. HW

DDInstall. Интерфейсы

DDInstall. Услуги