INF AddPowerSetting ディレクティブ

AddPowerSetting ディレクティブは、電源設定情報を変更または作成するために使用される 1 つ以上のセクションを参照します。 各 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-section には次のディレクティブが含まれています。

  • SubGroup ディレクティブ。

  • A Setting ディレクティブ

  • 2 つ以上の Value ディレクティブまたは 1 つの ValueRange ディレクティブのリスト。

  • 6 つの Default ディレクティブのセット。

add-power-setting-section は、次の 2 つの可能な形式のいずれかを受け取ります。

  • 許容される電力設定値を 2 つ以上の不連続値のセットとして最適に定義できる場合は、 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 
    ...
    
  • 許可される電源設定値を、指定した範囲内の負でない整数値の増分シーケンスとして最適に定義できる場合は、次のように、1 つの 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 
    ...
    

エントリ

注

値データ エントリを除き、文字列値を指定する次のすべてのエントリは、「AddPowerSetting 文字列エントリ値の指定」で説明されている方法のいずれかで文字列を指定できます。

SubGroup
サブグループは、論理的に関連する電力設定をグループ化します。

システム定義サブグループを指定するには、 SubGroup ディレクティブを含め、 サブグループ guid エントリのみを指定します。 システム定義サブグループは、Wdm.h で定義されている定数 GUID_Xxx_SUBGROUP および NO_SUBGROUP_GUID で表されます。

たとえば、GUID_VIDEO_SUBGROUPは、電源スキームのパーソナリティのビデオ電源設定を含むサブグループを表します。 NO_SUBGROUP_GUID定数は、サブグループに論理的に属していない設定のコレクションを表します。 SubGroup ディレクティブが含まれていない場合、既定では、サブグループに論理的に属していない設定のコレクションに設定が追加されます。

新しいサブグループを定義するには、SubGroup ディレクティブを含め、サブグループ guid、サブグループ名、サブグループの説明、サブグループ アイコンの必須エントリを指定します。新しいサブグループの GUID は一意である必要があり、他のエントリはできるだけわかりやすいものにする必要があります。

サブグループ guid
必要なエントリは、サブグループを識別する GUID を提供します。 このエントリの形式は {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} で、"X" は 16 進数です。

たとえば、システム定義定数GUID_VIDEO_SUBGROUPの値は {7516B95F-F776-4464-8C53-06167F40CC99} です。 この GUID は、電源スキームのパーソナリティのビデオ電源設定を含むサブグループを表します。

サブグループ名
電源設定のサブグループ名を指定する文字列。 サブグループがシステム定義サブグループである場合は、このエントリを指定しないでください。 サブグループが新しい場合は、このエントリが必要です。

サブグループの説明
パワー サブグループをユーザーに説明する文字列。 サブグループがシステム定義サブグループである場合は、このエントリを指定しないでください。 サブグループが新しい場合は、このエントリが必要です。

サブグループ アイコン
アイコン リソースへの参照。 サブグループがシステム定義サブグループである場合は、このエントリを指定しないでください。 サブグループが新しい場合は、このエントリが必要です。

アイコン リソースは、言語に依存しないレジストリ値として指定する必要があります。 言語に依存しないレジストリ値を指定する方法については、「 AddPowerSetting 文字列エントリ値の指定」を参照してください。

Setting
Setting ディレクティブは、セクション内の他のすべてのエントリが適用される設定を識別します。 add-power-setting セクションには 1 つの Setting ディレクティブが必要であり、add-power-setting セクションには Setting ディレクティブを 1 つだけ指定できます。 INF ファイルで複数の設定が定義されている場合は、それぞれの設定を独自の add-power-setting セクションで定義する必要があります。

Setting ディレクティブに関連付けられているエントリを次に示します。

setting-guid
電源設定を表す GUID を指定する必須のエントリ。 このエントリの形式は {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} で、各 "X" は 16 進数です。

たとえば、カスタム GUID 値は {BFC0D9E9-549C-483D-AD2A-3D90C98A8B03} です。

setting-name
電源設定のフレンドリ名を含む文字列を指定する省略可能なエントリ。 コントロール パネルの電源オプションでは、このフレンドリ名がユーザーに表示されます。

setting-description
電源設定と、設定がシステム電源とパフォーマンスに与える影響をユーザーに説明する文字列を指定する省略可能なエントリ。

setting-icon
アイコン リソースへの参照である省略可能なエントリ。 アイコン リソースは、言語に依存しないレジストリ値で指定する必要があります。

言語に依存しないレジストリ値を指定する方法については、「 AddPowerSetting 文字列エントリ値の指定」を参照してください。

Value
Value ディレクティブは、電源設定に使用できる値を定義します。 Value ディレクティブは、値を 2 つ以上の値のセットとして最適に定義できる場合に使用する必要があります。各値には値固有のカスタム データ型を指定できます。 この状況では、add-power-setting-section に 2 つ以上の Value ディレクティブを含める必要があります。 ユーザーは、コントロール パネルの電源オプションでこれらの値のいずれかを選択して、電源スキームを構成できます。

許容される電力設定値を、範囲内の負でない整数の増分セットとして最もよく記述できる場合は、Value ディレクティブの代わりに ValueRange ディレクティブを使用して、許容される電力設定値を指定します。

value-index
0 以上の一意のインデックス値を指定し、対応する設定値を参照するために使用される必須のエントリ。 コントロール パネルの電源オプションでは、対応するインデックス値の順序で、ユーザーに電力設定値が最も低い値から最大値に表示されます。

value-name
対応する設定値のフレンドリ名を提供する文字列を提供する必須のエントリ。 コントロール パネルの電源オプションでは、電源設定値のフレンドリ名がユーザーに表示されます。

value-description
ユーザーに電源設定値と設定値がシステム電源とパフォーマンスに与える影響を説明する文字列を提供する省略可能なエントリ。

value-flags
次の表に示すように、対応する値データ エントリのデータ型を指定する必須のエントリ。

フラグ値 データの種類
0x00000001 REG_BINARY
0x00010001 REG_DWORD
0x00000000 REG_SZ

value-data
次のように、対応する設定値のデータを提供する必須のエントリ。形式は、対応する 値フラグ エントリで指定されたデータ型によって異なります。

  • REG_BINARY値は、0x 表記を使用して 16 進形式で指定することも、0x 表記を使用せずにペアの 16 進数のコンマ区切りリストとして指定することもできます。

    たとえば、次のエントリは同等です。0xFEDCBA9876543210と、ペアになっている 16 進数のコンマ区切りリスト: FE、DC、BA、98、76、54、32、10。

  • REG_DWORD値は、16 進形式 (0x 表記を使用) または 10 進形式で指定できます。

  • REG_SZ値は、二重引用符で囲まれた文字列 ("引用符で囲まれた文字列") または INF ファイルの INF 文字列セクションで定義されている %strkey% トークンとしてのみ表すことができます。

注

文字列値はローカライズできないため、使用しないでください。 代わりに、REG_BINARY型または REG_DWORD 型の値を使用 します。

ValueRange
指定した範囲内の負でない整数値の増分シーケンスとして、許容される電源設定値を定義できる場合は 、ValueRange ディレクティブを使用します。 Power Manager は、ユーザーが コントロール パネル の [電源オプション] で選択した設定が、これらの使用可能な値の 1 つであることを検証します。 許可される値のセットは、最小値、最大許容値、および範囲内の許容値の間の増分によって決まります。 値は、次の条件を満たす場合に許可されます。

range-minimum-value + k*range-increment

range-minimum-value が 0 以上で、k と範囲増分が 1 以上で、値が range-maximum-value 以下である場合。 さらに、 範囲の最大値 は、数 k の 範囲最小値 + k*範囲増分 と等しい必要があります。

たとえば、0 に等しい 範囲最小値 、10 に等しい 範囲最大値 、および 2 に等しい 範囲増分 の場合、使用できる値は 0、2、4、6、8、10 です。

許容される電力設定値を値のリストとして最適に記述できる場合は、各値に値固有のカスタム データ型を指定できます。ValueRange ディレクティブの代わりに Value ディレクティブを使用します。

range-minimum-value
許容される最小電力設定を指定する REG_DWORD 型の値。

range-maximum-value
許容される最大電力設定値を指定する REG_DWORD 型の値。 最大値は最小値以上である必要があり、0 より大きい整数 k については、範囲最小値 + k*範囲増分と等しい必要があります。

range-increment
0 より大 きいREG_DWORD型 の値。 この値は、 range-minimum-value と range-maximum-value で指定された包括範囲内の連続する 値の差を指定します。

range-unit-label
電源設定値を表す省略可能な文字列。 文字列と setting-name は、入力するデータの種類をユーザーに通知します。

たとえば、文字列を使用して、"minutes" や "%" (パーセントを表す) などの値の単位を指定できます。

デフォルト
AddPowerSetting セクションに含める必要がある 6 つの Default ディレクティブがあります。 Default ディレクティブは、AC 電源状態に適用される 3 つのシステム定義電源方式パーソナリティの 1 つと、DC 電源状態に適用される 3 つのシステム定義電源スキームパーソナリティの既定値を指定します。

既定値が有効で正確であることが非常に重要です。 ユーザーが電源設定を手動で設定しない場合、電源マネージャーは 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-index
AC/DC インデックスが 0 の場合、設定は AC 電源状態に適用され、AC/DC インデックスが 1 の場合、設定は DC 電源状態に適用されます。 0 または 1 以外の値が無効です。

default-setting-index
Value ディレクティブを使用して許可される値を指定する場合、default-setting-index は Value ディレクティブの value-index エントリの値です。 ValueRange ディレクティブを使用して許可される値を指定する場合、このエントリは適用されません。

default-setting-value
ValueRange ディレクティブを使用して許容値を指定する場合、既定値は ValueRange ディレクティブで指定される許容値の 1 つです。 Value ディレクティブを使用して許可される値を指定する場合、このエントリは適用されません。

Remarks

add-power-setting-section 名は INF ファイル内で一意である必要がありますが、同じ INF ファイル内の複数の AddPowerSetting ディレクティブで参照できます。 各セクション名は、INF ファイルの一般的な構文規則で説明されている 一般的な規則に従う必要があります。

デバイスがアンインストールされた後、電源マネージャーはデバイスの電源ポリシーを自動的に削除しません。 電源設定、値、および既定値のインストールまたは削除は、 Powrprof.h で定義されているシステム提供の電源設定ルーチンを介して共同インストーラーによって実行できます。 これらの電源管理ルーチンの詳細については、Microsoft Windows SDK ドキュメントに記載されている電源管理リファレンスを参照してください。

また、 Powercfg.exe コマンドライン ツールを使用して電源設定を変更することもできます。 Powercfg.exeの詳細については、Microsoftヘルプおよびサポート センターを参照してください。

システム定義の .nt、.ntx86、.ntia64、.ntamd64、.ntarm、および .ntarm64 拡張機能の使用方法の詳細については、「複数のプラットフォームとオペレーティング システム用の INF ファイルの作成」を参照してください。

AddPowerSetting 文字列エントリ値の指定

REG_SZ型の値データ エントリを除き、AddPowerSetting ディレクティブで指定される他のすべての文字列エントリ値は、二重引用符 ("quoted-string") で囲まれた文字列として、INF ファイルの INF 文字列セクションで定義されている %strkey% トークンとして、または言語に依存しないレジストリ値として表すことができます。

言語に依存しないレジストリ値は、多言語ユーザー インターフェイス (MUI) Windowsサポートするために使用され、次のように指定されます。

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

言語に依存しないレジストリ値を指定するエントリは次のとおりです。

file-path
リソースを含むファイルの完全修飾パス。

resourceID
対応するリソースのリソース ID。 文字列の場合、 resourceID は文字列を参照します。 アイコンの場合、 resourceID はアイコンを参照します。

コメント
デバッグを支援したり、設定に関する追加のコメントを提供したりするために使用できる省略可能な値。 文字列リソースの場合、Power Manager は、指定されたリソース文字列とコメント文字列を組み合わせたり表示したりしません。

言語に依存しないレジストリ値を指定する方法の詳細については、「 シェルとレジストリ文字列のレンダリング」を参照してください。

Examples

次の 2 つの例では、LCD の明るさを制御する電源設定を定義します。 最初の例では、 Value ディレクティブを使用して、最小、中、最大 LCD 輝度値を定義する方法を示します。

// 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

2 つ目の例では、 ValueRange ディレクティブを使用して、0% ~ 100%の範囲の許容 LCD 輝度値を定義し、許容値の間で 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。サービス