次の方法で共有


INF Manufacturerセクション

[Manufacturer] (製造元) セクションでは、INF ファイルを使用してインストールできる 1 つ以上のデバイスの製造元を識別します。

[Manufacturer]

manufacturer-identifier
[manufacturer-identifier] 
[manufacturer-identifier] 
...

Entries

manufacturer-identifier
製造元と、製造元のデバイス モデルを識別する情報を含む INF セクションを一意に識別します。 製造元識別子 の各エントリは、個別の行に存在し、次の形式を使用する必要があります。

manufacturer-name |
%strkey%=models-section-name |
%strkey%=models-section-name [,TargetOSVersion] [,TargetOSVersion] ...  (Windows XP and later versions of Windows)

これらのエントリは、次のように定義されています。

manufacturer-name
デバイスの製造元を識別します。 INF には、同じ名前の対応する INF モデル セクション も含まれている必要があります。 製造元の名前の最大長 (文字数) はLINE_LEN。 (この方法で指定されたエントリはローカライズできません。

strkey
製造元の名前を表す INF ファイル内で一意のトークンを指定します。 このような %strkey% トークンはそれぞれ、INF ファイルの INF 文字列セクション で定義する必要があります。

models-section-name
INF ファイル内の製造元ごとの INF モデル セクション の INF ライター定義名を指定します。 この値は、INF ファイル内で一意である必要があり、セクション名を定義するための一般的な規則に従う必要があります。 これらの規則の詳細については、「INF ファイルの一般的な構文規則」を参照してください。

TargetOSVersion
さまざまな INF モデル セクションを使用できる 1 つ以上のターゲット オペレーティング システムのバージョンを指定します。 Windows では、実行しているオペレーティング システムのバージョンに最も近い INF モデル セクションが選択されます。

TargetOSVersion 装飾の説明については、次の「解説」セクションと、以下の例 3 の関連情報を参照してください。

重要

Windows Server 2003 SP1 以降では、INF ファイルは、x86 以外のターゲット オペレーティング システム バージョンの場合、 INF Manufacturer セクション の models-section-name エントリと、関連する INF モデル セクション名を装飾する必要があります。 これらのプラットフォーム拡張機能は、x86 ベースの対象となるオペレーティングシステムのバージョンの INF ファイルでは必要ありませんが、勧められます。

解説

1 つ以上のデバイスをインストールする INF ファイルには、 Manufacturer セクションが必要です。 IHV/OEM が提供する INF ファイルは、通常、このセクションの 1 つのエントリのみを指定します。 複数のエントリを指定する場合、各エントリは INF の個別の行に配置する必要があります。

%strkey%=models-section-name エントリを使用すると、 国際 INF ファイルの作成INF 文字列セクションのリファレンス ページの説明に従って、国際市場向けの INF ファイルのローカライズが簡略化されます。

INF ファイルが 製造元名 形式で 1 つ以上のエントリを指定する場合、このような各エントリは、INF 内の別の場所にある対応する Models セクションの名前を暗黙的に指定します。

このセクションでは、 デバイス セットアップ クラスのすべての製造元のデバイス モデルのインストールを設定するため、システムが提供する各 INF ファイルの Manufacturer セクションを目次と考えることができます。 INF ファイルの Manufacturer セクションの各エントリでは、製造元 の名前に対してローカライズしやすい %strkey% トークンと、製造元ごとの一意のINF モデル セクション名の両方を指定します。

Manufacturer セクションの models-section-name エントリは、ターゲット オペレーティング システムのバージョンを指定するように装飾できます。 オペレーティング システムのバージョンごとに異なる INF Models セクション を指定できます。 指定されたバージョンは、INF Models セクションが使用される対象のオペレーティング システムのバージョンを示します。 バージョンが指定されていない場合、Windows では、すべてのオペレーティング システムのすべてのバージョンに対して指定された モデル セクションが使用されます。

Windows XP から Windows 10 バージョン 1511 の場合、 TargetOSVersion 装飾の形式は次のとおりです。

NT[Architecture][.[OSMajorVersion][.[OSMinorVersion][.[ProductType][.SuiteMask]]]]

Windows 10 バージョン 1607 (ビルド 14310 以降) 以降、 TargetOSVersion 装飾の形式は次のとおりです。

NT[Architecture][.[OSMajorVersion][.[OSMinorVersion][.[ProductType][.[SuiteMask][.[BuildNumber]]]]]

各フィールドは次のように定義されます。

NT
ターゲット オペレーティング システムが NT ベースであることを指定します。 Windows 2000 以降のバージョンの Windows はすべて NT ベースです。

アーキテクチャ
ハードウェア プラットフォームを識別します。 指定する場合は、 x86ia64amd64arm、または arm64 を指定する必要があります。

Windows Server 2003 SP1 より前では、 アーキテクチャ が指定されていない場合は、関連する INF モデル セクションを任意のハードウェア プラットフォームで使用できます。

Windows Server 2003 SP1 以降では、x86 以外のターゲット オペレーティング システム バージョンの INF モデル セクション 名でアーキテクチャを指定する必要があります。 アーキテクチャは、x86 ベースのターゲット オペレーティング システム バージョンの INF モデル セクション名では省略可能ですが、推奨されます。

OSMajorVersion
オペレーティング システムのメジャー バージョン番号を表す数字。 次の表では、Windows オペレーティング システムのメジャー バージョンを定義します。

Note

INF ファイル内の特定の Windows 10 リリースと 11 リリースを区別するには、 BuildNumber (下記参照) を使用する必要があります。

Windows バージョン メジャー バージョン
Windows 11 (すべてのリリース) 10
Windows Server 2022 10
Windows Server 2019 10
Windows Server 2016 10
Windows 10 (すべてのリリース) 10
Windows Server 2012 R2 6
Windows 8.1 6
Windows Server 2012 6
Windows 8 6
Windows Server 2008 R2 6
Windows 7 6
Windows サーバー 2008 6
Windows Vista 6
Windows Server 2003 R2 5
Windows Server 2003 5
Windows XP 5
Windows 2000 5

OSMinorVersion
オペレーティング システムのマイナー バージョン番号を表す番号。 次の表では、Windows オペレーティング システムのマイナー バージョンを定義します。

Windows バージョン マイナー バージョン
Windows 11 (すべてのリリース) 0
Windows Server 2022 0
Windows Server 2019 0
Windows Server 2016 0
Windows 10 (すべてのリリース) 0
Windows Server 2012 R2 3
Windows 8.1 3
Windows Server 2012 2
Windows 8 2
Windows Server 2008 R2 1
Windows 7 1
Windows サーバー 2008 0
Windows Vista 0
Windows Server 2003 R2 2
Windows Server 2003 2
Windows XP 1
Windows 2000 0

ProductType
次の例のように、 Winnt.h で定義された VER_NT_xxxx フラグのいずれかを表す番号。

0x0000001 (VER_NT_WORKSTATION)

0x0000002 (VER_NT_DOMAIN_CONTROLLER)

0x0000003 (VER_NT_SERVER)

製品タイプが指定されている場合、オペレーティング システムが指定された製品タイプと一致する場合にのみ INF ファイルが使用されます。 INF ファイルが 単一のオペレーティング システム バージョンに対して複数の製品の種類をサポートしている場合は、複数の TargetOSVersion エントリが必要です。

SuiteMask
Winnt.h で定義された 1 つ以上の VER_SUITE_xxxx フラグの 組み合わせを表す番号。 これらのフラグには、次のものが含まれます。

0x00000001 (VER_SUITE_SMALLBUSINESS)

0x00000002 (VER_SUITE_ENTERPRISE)

0x00000004 (VER_SUITE_BACKOFFICE)

0x00000008 (VER_SUITE_COMMUNICATIONS)

0x00000010 (VER_SUITE_TERMINAL)

0x00000020 (VER_SUITE_SMALLBUSINESS_RESTRICTED)

0x00000040 (VER_SUITE_EMBEDDEDNT)

0x00000080 (VER_SUITE_DATACENTER)

0x00000100 (VER_SUITE_SINGLEUSERTS)

0x00000200 (VER_SUITE_PERSONAL)

0x00000400 (VER_SUITE_SERVERAPPLIANCE)

1 つまたは複数のスイート マスク値が指定されている場合、INF ファイルは、オペレーティング システムが指定されたすべての製品スイートと一致する場合にのみ使用されます。 INF が 1 つのオペレーティング システム バージョンに対して複数の製品スイートの組み合わせをサポートしている場合は、複数の TargetOSVersion エントリが必要です。

BuildNumber
セクションが適用できる Windows リリースの最小 OS ビルド番号 (ビルド 14310 以降) を表す数値。

ビルド番号は、特定の OS メジャー/マイナー バージョンのみに対して相対的であると見なされ、今後の OS メジャー/マイナー バージョンではリセットされる可能性があります。

TargetOSVersion 装飾によって指定されたビルド番号は、 TargetOSVersion の OS メジャー/マイナー バージョンが現在の OS (または AltPlatformInfo) バージョンと正確に一致するときにのみ評価されます。  現在の OS バージョンが TargetOSVersion 装飾によって指定された OS バージョン (OSMajorVersion、OSMinorVersion) より大きい場合、指定されたビルド番号に関係なく、セクションは適用可能と見なされます。 同様に、現在の OS バージョンが TargetOSVersion 装飾によって指定された OS バージョンより小さい場合、セクションは適用されません。

ビルド番号が指定された場合、 TargetOSVersion 装飾の OS バージョンと BuildNumber は、両方とも、この装飾が最初に導入された Windows 10 ビルド 14310 の OS バージョンとビルド番号を超えている必要があります。 これらの変更がない以前のバージョンのオペレーティング システム (Windows 10 ビルド 10240 など) は、不明な装飾を解析しないため、これらの以前のビルドをターゲットにしようとすると、OS で装飾が有効と見なされなくなります。

次の表に、Windows オペレーティング システムのビルド番号を定義します。

Windows バージョン ビルド番号
Windows 11 バージョン 23H2 22631
Windows 11 バージョン 22H2 22621
Windows 11 バージョン 21H2 22000
Windows Server 2022 20348
Windows 10 バージョン 22H2 19045
Windows 10 バージョン 21H2 19044
Windows 10 バージョン 21H1 19043
Windows 10 バージョン 20H2 19042
Windows 10 バージョン 2004 19041
Windows 10 バージョン 1909 18363
Windows 10 バージョン 1903 18362
Windows Server 2019 17763
Windows 10 バージョン 1809 17763
Windows 10 バージョン 1803 17134
Windows 10 バージョン 1709 16299
Windows 10 バージョン 1703 15063
Windows Server 2016 14393
Windows 10 バージョン 1607 14393

TargetOSVersion デコレーションの詳細については、「プラットフォーム拡張機能とオペレーティング システムのバージョン の組み合わせ」を参照してください。

重要

Windows XP 以降のバージョンの Windows のターゲット オペレーティング システム用のプラットフォーム拡張機能を使用して、 Manufacturer セクションと Models セクションの models-section-name エントリを常に装飾することを強くお勧めします。 x86 ベースのハードウェアプラットフォームの場合は、 .NT のプラットフォーム拡張子の使用を避け、代わりに .NTx86 を使用する必要があります。

INF に装飾を含む Manufacturer セクション エントリが含まれている場合は、オペレーティング システムの装飾に一致する名前の INF モデル セクション も含める必要があります。 たとえば、INF に次 の Manufacturer セクションが含まれている場合です。

%FooCorp%=FooMfg, NTx86....0x80、NTamd64

その後、INF には、次の名前の INF モデル セクション も含まれている必要があります。

  • [FooMfg.NTx86....0x80]

    この名前は、x86 ベースのハードウェア プラットフォーム上の Windows XP 以降のバージョンの Windows のデータ センター スイートに適用されます。

  • [FooMfg.NTamd64]

    この名前は、x64 ベースのハードウェア プラットフォーム上の Windows XP 以降のバージョンのすべての製品の種類とスイートに適用されます。

インストール時に、Windows は次の方法で INF モデル セクション を選択します。

  1. Windows が、データ センター製品スイートを含む x86 ベースのバージョンのオペレーティング システム (Windows XP 以降のバージョン) で実行されている場合、Windows は [FooMfg.NTx86....0x80] Models セクション。

  2. Windows が任意の製品スイートの x64 ベースバージョンのオペレーティング システム (Windows XP 以降のバージョン) で実行されている場合、Windows は [FooMfg.NTamd64] Models セクションを選択します。

INF が Windows XP より前のバージョンのオペレーティング システムで使用することを目的としている場合は、 [FooMfg] という名前の未コーディングの Models セクションも含まれている必要があります。

INF が複数の製造元をサポートしている場合は、製造元ごとにこれらの規則に従う必要があります。

TargetOSVersion 装飾のその他の例を次に示します。

  • %FooCorp% = FooMfg、NTx86

    この例では、結果の INF Models セクション名は [FooMfg.NTx86] で、オペレーティング システム (Windows XP 以降) の x86 バージョンに適用できます。

  • %FooCorp% = FooMfg、NT.7.8

    この例では、バージョン 7.8 以降のオペレーティング システムでは、結果の INF Models セクション名は [FooMfg.NT.7.8] になります。 Windows XP などのオペレーティング システムの以前のバージョンでは、 [FooMfg.NT] が 使用されます。

使用する INF モデル セクションのセットアップの選択は、次の規則に基づいています。

  • INF に複数のメジャー またはマイナー オペレーティング システムのバージョン番号の INF モデル セクション が含まれている場合、Windows は、インストールが行われているオペレーティング システムのバージョンよりも高くないバージョン番号のセクションを使用します。

  • オペレーティング システムのバージョンに一致する INF モデル セクションに製品の種類や製品スイートの装飾も含まれている場合、Windows は実行中のオペレーティング システムに最も近いセクションを選択します。

たとえば、Windows がデータ センター製品スイートなしで Windows XP (バージョン 5.1) で実行されており、 Manufacturer セクションで次のエントリが見つかるとします。

%FooCorp%=FooMfg、NT、NT.5、NT.5.5、NT....0x80

この場合、Windows は [FooMfg.NT.5]という名前の INF Models セクション を探します。 また、Windows XP の Datacenter バージョンで実行されている場合は、 [FooMfg.NT.5] セクションも使用されます。これは、特定のバージョン番号が製品の種類とスイート マスクよりも優先されるためです。

INF で特定のオペレーティング システムのバージョン、製品の種類、またはスイートを明示的に除外する場合は、空の INF モデル セクションを作成します。 たとえば、 [FooMfg.NTx86.6.0] という名前の空のセクションでは、x86 ベースのオペレーティング システム バージョン 6.0 以降へのインストールが禁止されています。

この例では、 1 つの IHV の INF に典型的な Manufacturer セクションを示します。

[Manufacturer]
%Mfg%=Contoso,NTamd64        ; Models section == Contoso

[Contoso.NTamd64]

; ...
[Strings]
Mfg = "Contoso, Ltd."

次の例は、デバイス クラス固有のインストーラーの INF に典型的な Manufacturer セクションの一部を示しています。

[Manufacturer]
%CONTOSO%=Contoso_Section,NTamd64
; several entries omitted here for brevity
%FABRIKAM%=Fabrikam_Section,NTamd64
%ADATUM%=Adatum_Section,NTamd64

次の例は、 x86 プラットフォーム、Windows XP 以降に固有の Manufacturer セクションを示しています。

[Manufacturer]
%foo%=foosec,NTx86.5.1

[foosec.NTx86.5.1]

次の例は、 x64 プラットフォーム、Windows 10 ビルド 14393 以降に固有の Manufacturer セクションを示しています。

[Manufacturer]
%foo%=foosec,NTamd64.10.0...14393

[foosec.NTamd64.10.0...14393]

次の 2 つの例は、OS 固有のさまざまな INF モデル セクションを含む骨格 INF ファイルを示しています。

例 1:

[Manufacturer]
%MyName% = MyName,NTx86.5.1
.
[MyName]
%MyDev% = InstallA,hwid
.
[MyName.NTx86.5.1]
%MyDev% = InstallB,hwid
.
[InstallA]   ; Windows 2000 
.
.
[InstallB]   ; Windows XP and later, x86 only
.

例 2:

[Manufacturer]
%MyName% = MyName,NTx86.6.0,NTx86.5.1,
.
[MyName.NTx86.6.0] ; Empty section, so this INF does not support
.                  ; NT 6.0 and later.
.
[MyName.NTx86.5.1] ; Used for NT 5.1 and later
.                  ; (but not NT 6.0 and later due to the NTx86.6.0 entry)
%MyDev% = InstallB,hwid
.
[MyName]           ; Empty section, so this INF does not support
.                  ; Win2000
.

例 3:

[Manufacturer]
%MyMfg% = MyMfg, NTamd64.6.1, NTamd64.10.0, NTamd64.10.0...14310
.
[MyMfg.NTamd64.6.1]          ; Used for Windows 7 and later
.                            ; (but not for Windows 10 and later due to the NT.10.0 entry)
.
[MyMfg.NTamd64.10.0]         ; Used for Windows 10
.                            ; (but not for Windows 10 build 14393 and later due to the NT.10.0...14393 entry)
.
[MyMfg.NTamd64.10.0...14393] ; Used for Windows 10 build 14393 and later
.
.

Note

複数の TargetOSVersion を指定する場合は、この例に示すように、それらを 1 つのエントリにまとめて文字列化します。 各ターゲットを個別のエントリとして表さないでください。

関連項目

プラットフォーム拡張機能とオペレーティング システム バージョンを組み合わせる

Models

文字列