Partilhar via


Combinar extensões de plataforma com outras extensões de nomes de secções

Conforme indicado em Criando arquivos INF para várias plataformas e sistemas operacionais, as decorações de extensão de plataforma são necessárias para seções de Modelos INF, mas há outras seções onde elas são opcionais. A utilização das decorações de extensão de plataforma nestas seções, onde é opcional, depende geralmente de dois fatores: se o INF está a tentar suportar plataformas diferentes ou não, e se as instruções de instalação (incluindo os ficheiros exatos a copiar) são as mesmas em cada plataforma.

Ao usar extensões de plataforma numa INF DDInstall Section, todas as seções DDInstall relacionadas, como as seções DDInstall.Serviços, DDInstall.HWe DDInstall.Interfaces, devem utilizar a mesma extensão de plataforma.

Os arquivos INF que contêm extensões de plataforma install-section-name também podem incluir extensões de plataforma com a seção INF SourceDisksNames e a seção INF SourceDisksFiles, para especificar locais de arquivos de instalação de uma maneira específica para a plataforma.

Exemplo: Várias plataformas com as mesmas instruções de instalação e os mesmos arquivos copiados

Este trecho de um arquivo INF de exemplo demonstra como um INF pode ser estruturado se ele deve suportar várias plataformas onde os arquivos copiados (se houver) e as instruções de instalação são os mesmos 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]
...

Exemplo: várias plataformas com as mesmas instruções de instalação e arquivos diferentes copiados

Este trecho de um arquivo INF de exemplo demonstra como um INF pode ser estruturado se ele deve suportar várias plataformas onde os arquivos copiados são diferentes para cada plataforma. Os arquivos a serem copiados podem ser diferenciados por seções específicas da arquitetura [SourceDisksFiles], mas as seções de instalação ainda podem ser as mesmas.

[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]
...

Exemplo: Várias plataformas com instruções de instalação diferentes e arquivos diferentes copiados

Este trecho de um arquivo INF de exemplo demonstra como um INF pode ser estruturado se ele deve suportar várias plataformas onde os arquivos copiados são diferentes para cada plataforma e há instruções de instalação 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]
...