Объединение расширений платформы с другими расширениями имен разделов
Как указано в разделе Создание INF-файлов для нескольких платформ и операционных систем, для разделов моделей INF требуется оформление расширения платформы, но существуют и другие разделы, в которых они являются необязательными. Используется ли оформление расширений платформы в этих разделах, где это необязательно, обычно зависит от того, пытается ли INF поддерживать различные платформы или нет, а также от того, одинаковы ли инструкции по установке (включая точные файлы для копирования) на каждой платформе.
При использовании расширений платформы в разделе INF DDInstall используются все связанные разделы DDInstall, например DDInstall. Службы, DDInstall. HW и DDInstall. Разделы интерфейсов должны использовать одно и то же расширение платформы.
INF-файлы, содержащие расширения платформы install-section-name , также могут включать расширения платформы с разделом INF SourceDisksNames и записями раздела INF SourceDisksFiles , чтобы указать расположения файлов установки в зависимости от платформы.
Пример. Несколько платформ с одинаковыми инструкциями по установке и скопированными файлами
В этом фрагменте из примера 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]
...