プラットフォーム拡張機能とその他のセクション名の拡張機能を組み合わせる

「複数のプラットフォームとオペレーティング システムの INF ファイルの作成」で示されているように、プラットフォーム拡張機能の装飾は INF Models セクションに必須ですが、他にもオプションのセクションがあります。 これらオプションのセクションでプラットフォーム拡張機能の装飾が使用されるかどうかは、通常、INF が異なるプラットフォームをサポートしようとしているかどうか、およびインストール手順 (コピーする正確なファイルを含む) が各プラットフォームで同じかどうかによって異なります。

INF DDInstall Section でプラットフォーム拡張機能を使用するときには、DDInstall.ServicesDDInstall.HWDDInstall.Interfaces セクションなど、関連するすべての DDInstall セクションが同じプラットフォーム拡張機能を使用する必要があります。

install-section-name プラットフォーム拡張機能を含んでいる INF ファイルは、INF SourceDisksNames セクションINF SourceDisksFiles セクション エントリにもプラットフォーム拡張機能を含んで、インストール ファイルの位置をプラットフォーム固有の方法で指定できます。

例: 同じインストール手順と同じファイルがコピーされた複数のプラットフォーム

この INF ファイルの例からの抜粋は、INF が複数のプラットフォームをサポートする必要がある場合に、コピーされるファイル (存在する場合) とインストール手順がプラットフォームごとに同じである場合に、INF がどのように構成されるかを示しています。

[SourceDisksFiles]
ArchitectureAgnosticFile.txt=1

[ExampleModelsSection.NTx86]
%DeviceDesc%=ExampleInstallSection,ExampleHardwareId

[ExampleModelsSection.NTamd64]
%DeviceDesc%=ExampleInstallSection,ExampleHardwareId

[ExampleInstallSection]
CopyFiles=FilesToCopy

[FilesToCopy]
ArchitectureAgnosticFile.txt

[ExampleInstallSection.Hw]
...

例: インストール手順が同じで、コピーされるファイルが異なる複数のプラットフォーム

この例の INF ファイルからの抜粋は、複数のプラットフォームをサポートする必要があり、コピーされるファイルがプラットフォームごとに異なる場合に、INF がどのように構造化されるかを示しています。 コピーされるファイルは、アーキテクチャ固有の [SourceDisksFiles] セクションによって区別できますが、インストール セクションは同じでもかまいません。

[SourceDisksFiles.x86]
ArchitectureSpecificBinary.sys=1,x86

[SourceDisksFiles.amd64]
ArchitectureSpecificBinary.sys=1,amd64

[ExampleModelsSection.NTx86]
%DeviceDesc%=ExampleInstallSection,ExampleHardwareId

[ExampleModelsSection.NTamd64]
%DeviceDesc%=ExampleInstallSection,ExampleHardwareId

[ExampleInstallSection]
CopyFiles=FilesToCopy

[FilesToCopy]
ArchitectureSpecificBinary.sys

[ExampleInstallSection.Services]
AddService=ExampleService,2,ExampleServiceInstallSection

[ExampleServiceInstallSection]
...

例: インストール手順が異なり、コピーされるファイルが異なる複数のプラットフォーム

この INF ファイルの例からの抜粋は、複数のプラットフォームをサポートする必要があり、コピーされるファイルがプラットフォームごとに異なり、インストール手順が異なる場合に、INF がどのように構成されるかを示しています。

[SourceDisksFiles.x86]
ArchitectureSpecificBinary.sys=1,x86
x86OnlyBinary.dll=1,x86

[SourceDisksFiles.amd64]
ArchitectureSpecificBinary.sys=1,amd64

[ExampleModelsSection.NTx86]
%DeviceDesc%=ExampleInstallSection,ExampleHardwareId

[ExampleModelsSection.NTamd64]
%DeviceDesc%=ExampleInstallSection,ExampleHardwareId

[ExampleInstallSection.NTx86]
CopyFiles=FilesToCopy_x86

[FilesToCopy_x86]
ArchitectureSpecificBinary.sys
x86OnlyBinary.dll

[ExampleInstallSection.NTx86.Services]
AddService=ExampleService,2,ExampleServiceInstallSection

[ExampleInstallSection.NTamd64]
CopyFiles=FilesToCopy_amd64

[FilesToCopy_amd64]
ArchitectureSpecificBinary.sys

[ExampleInstallSection.NTamd64.Services]
AddService=ExampleService,2,ExampleServiceInstallSection

[ExampleServiceInstallSection]
...