複数のプラットフォームおよびオペレーティング システム用の INF ファイルの作成
INF ファイルのセクションとディレクティブに対してシステム定義のプラットフォーム拡張子を使用すると、クロスプラットフォームのインストール用にひとつの INF ファイルを作成できます。 拡張子を使用すると、対象となる各ラットフォームとオペレーティングシステムに関連するセクションとディレクティブを指定する、装飾されたセクション名を作成できます。 例えば、デバイスを x64 ベースのシステムにのみ、Itanium ベースのシステムのみ、x86 ベースのシステムのみ、または Windows 2000 以降のバージョンの Windows でサポートされている全システムにインストールする INF ファイルを作成できます。
次の表は、拡張機能をサポートするセクションの名前に追加できる、システムでサポートされるプラットフォームの拡張子をまとめたものです。
プラットフォーム拡張子 | 用途 |
---|---|
.ntamd64 |
このセクションでは、Windows XP とそれ以降でサポートされている x64 ベースのシステムにデバイスまたはデバイス互換モデルのセットをインストールする手順について説明します。 |
.ntia64 |
このセクションでは、Windows XP とそれ以降でサポートされている Itanium ベースのシステムにデバイスまたはデバイス互換モデルのセットをインストールする手順について説明します。 |
.ntx86 |
このセクションでは、Windows XP とそれ以降でサポートされている x86 ベースのシステムにデバイスまたはデバイス互換モデルのセットをインストールする手順について説明します。 |
.ntarm |
このセクションでは、Windows 8 とそれ以降でサポートされている Arm ベースのシステムにデバイスまたはデバイス互換モデルのセットをインストールする手順について説明します。 |
.ntarm64 |
このセクションでは、Windows 10 バージョン 1709 とそれ以降でサポートされている Arm64 ベースのシステムにデバイスまたはデバイス互換モデルのセットをインストールする手順について説明します。 |
.nt |
Windows Server 2003 SP1 より前のバージョンの Windows では、このセクションに、オペレーティングシステムでサポートされている全システムにデバイスまたはデバイス互換モデルのセットをインストールする手順が含まれています。 Windows Server 2003 SP1 以降では、オペレーティングシステムでサポートされている x86 ベースのシステムにデバイスまたはデバイス互換モデルのセットをインストールする手順について説明します。 |
(プラットフォームの拡張子なし) |
Windows Server 2003 SP1 より前のバージョンの Windows では、このセクションに、オペレーティングシステムでサポートされている全システムにデバイスまたはデバイス互換モデルのセットをインストールする手順が含まれています。 Windows Server 2003 SP1 以降では、オペレーティングシステムでサポートされている x86 ベースのシステムにデバイスまたはデバイス互換モデルのセットをインストールする手順について説明します。 |
Windows Server 2003 Service Pack 1 (SP1) とそれ以降では、INF ファイルの 装飾は、INF モデルセクションのエントリを 、.ntarm64.ntia64、.ntamd64.ntarm、.ntarm64、.ntamd64 のプラットフォーム拡張子で実行し、x86 以外の対象となるオペレーティングシステムのバージョンを指定する必要があります。 これらのプラットフォーム拡張機能は、x86 ベースの対象となるオペレーティングシステムのバージョンの INF ファイルでは必要ありませんが、強く勧められます。 プラットフォーム拡張子をサポートする他の全セクションでは、同じプラットフォーム拡張子の装飾、または .nt のプラットフォーム拡張子はオプションです。
備考
Windows XP とそれ以降のバージョンの対象となるオペレーティングシステム用のプラットフォーム拡張子を使用して、INF モデルセクションのエントリを常に装飾することを強くお勧めします。 x86 ベースのハードウェアプラットフォームの場合は、.nt のプラットフォーム拡張子の使用を避け、代わりに .ntx86 を使用する必要があります。
オプションのプラットフォーム拡張子をサポートするセクションでは、処理するセクションが Windows によって、次のように選択されます。
Windows がチェックする対象は、セクション名.nt<アーキテクチャ>のセクションで、該当が存在する場合は、それを処理します。 Windowsは、処理対象の INF ファイルと、含まれる INF ファイルの .nt< アーキテクチャ>の拡張子を確認します (つまり、保有エントリに含まれる INF ファイル)。
もしセクション名.nt<アーキテクチャ>のセクションが存在しない場合は、Windows が INF ファイル内の セクション名.nt のセクションを確認します。 該当が存在する場合、Windows はセクション名.nt のセクションを処理します。
もし セクション名.nt セクションが存在しない場合、Windows はプラットフォーム拡張子を含まない セクション名 のセクションを処理します。
該当するセクションに対して、.nt と .nt< アーキテクチャ>のプラットフォーム拡張子が省略可能なセクションの場合、クロスプラットフォームシステムの INF ファイルを作成してメインする最も簡単な方法は、これらのセクション名にプラットフォーム拡張子を使用せず、.nt< アーキテクチャ>拡張子をINF モデルセクションのセクション名にのみ含める方法です。 ただし、INF ファイルはアーキテクチャ固有のバージョンのファイルをコピーする必要はないため、インストール設定はアーキテクチャ全体で同じであることを前提としています。 クロスプラットフォーム INF のより高度なシナリオについては、プラットフォーム拡張子と他のセクション名の拡張子の組み合わせを参照してください。
このような単純なクロスプラットフォーム INF ファイルを作成するには、次の操作を行います。
INF ファイルの一般ガイドラインで説明されているように、すべての INF ファイルに必要な汎用エントリを含む有効な INF ファイルを作成します。
INFのメーカーセクションに製造元識別子を含め、デバイスのINF モデルセクション名と.nt< アーキテクチャ>のプラットフォームの拡張子を指定します。 例えば、次のメーカーのセクションでは、Abc デバイスと .nt< アーキテクチャ>のプラットフォーム拡張子の INF モデルのセクション名「AbcModelSection」を指定します。
[Manufacturer] ; The manufacturer-identifier for the Abc device. %ManufacturerName%=AbcModelSection,nt<architecture>
モデル.nt<アーキテクチャ>のセクションで、メーカーセクションの製造元識別子で指定されたモデルのセクション名と同名のセクションを含めます。 例えば、Abc デバイスに対する次の AbcModelSection.nt< アーキテクチャ> のセクションには、「AbcInstallSection」の インストールセクション名を指定するデバイスの説明が含まれています。
[AbcModelSection.nt<architecture>] %AbcDeviceName%=AbcInstallSection,Abc-hw-id
モデル のセクションで指定された インストールセクション名 と名前が一致する DDInstall のセクションを含めます。 例えば、 AbcModelSection セクションのデバイス説明 では、Abc デバイスに対して次の AbcInstallSection セクションを指定します。
[AbcInstallSection] ; Install section entries go here. ...
デバイスをインストールするために必要な他のデバイス固有のセクションを含めますが、これらのセクションの名前に .nt< アーキテクチャ>のプラットフォームの拡張子は含めないでください。 INF ファイルの選択とディレクティブの詳細については、INF セクションの概要とINF ディレクティブの概要を参照してください。