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