Combinación de extensiones de plataforma con otras extensiones de nombre de sección
Como se indica en Creación de archivos INF para varias plataformas y sistemas operativos, las decoraciones de extensiones de plataforma son necesarias para las secciones Modelos INF, pero hay otras secciones en las que son opcionales. Si las decoraciones de extensión de plataforma se usan o no en estas secciones en las que es opcional, generalmente depende de si INF está intentando admitir diferentes plataformas o no y si las instrucciones de instalación (incluidos los archivos exactos que se van a copiar) son las mismas en cada plataforma.
Cuando se usan extensiones de plataforma en una sección INF DDInstall, todas las secciones DDInstall relacionadas, como DDInstall. Servicios, DDInstall. HW y DDInstall. Las secciones interfaces deben usar la misma extensión de plataforma.
Los archivos INF que contienen extensiones de plataforma install-section-name también pueden incluir extensiones de plataforma con su sección INF SourceDisksNames y entradas de sección INF SourceDisksFiles , para especificar ubicaciones de archivos de instalación de una manera específica de la plataforma.
Ejemplo: Varias plataformas con las mismas instrucciones de instalación y los mismos archivos copiados
Este extracto de un archivo INF de ejemplo muestra cómo se puede estructurar un INF si debe admitir varias plataformas en las que los archivos copiados (si los hubiera) e instrucciones de instalación son los mismos para cada plataforma.
[SourceDisksFiles]
ArchitectureAgnosticFile.txt=1
[ExampleModelsSection.NTx86]
%DeviceDesc%=ExampleInstallSection,ExampleHardwareId
[ExampleModelsSection.NTamd64]
%DeviceDesc%=ExampleInstallSection,ExampleHardwareId
[ExampleInstallSection]
CopyFiles=FilesToCopy
[FilesToCopy]
ArchitectureAgnosticFile.txt
[ExampleInstallSection.Hw]
...
Ejemplo: Varias plataformas con las mismas instrucciones de instalación y archivos diferentes copiados
Este extracto de un archivo INF de ejemplo muestra cómo se puede estructurar un INF si debe admitir varias plataformas en las que los archivos copiados son diferentes para cada plataforma. Los archivos que se van a copiar se pueden diferenciar por secciones específicas de la arquitectura [SourceDisksFiles], pero las secciones de instalación todavía pueden ser las mismas.
[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]
...
Ejemplo: Varias plataformas con diferentes instrucciones de instalación y archivos diferentes copiados
Este extracto de un archivo INF de ejemplo muestra cómo se puede estructurar un INF si debe admitir varias plataformas en las que los archivos copiados son diferentes para cada plataforma y hay instrucciones de instalación diferentes.
[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]
...