Seção Fabricante do INF

A seção Fabricante identifica o fabricante de um ou mais dispositivos que podem ser instalados usando o arquivo INF.

[Manufacturer]

manufacturer-identifier
[manufacturer-identifier] 
[manufacturer-identifier] 
...

Entradas

manufacturer-identifier
Identifica exclusivamente um fabricante e uma seção INF que contém informações que identificam os modelos de dispositivo de um fabricante. Cada entrada de identificador de fabricante deve existir em uma linha separada e usar o seguinte formato:

manufacturer-name |
%strkey%=models-section-name |
%strkey%=models-section-name [,TargetOSVersion] [,TargetOSVersion] ...  (Windows XP and later versions of Windows)

Essas entradas são definidas da seguinte maneira:

manufacturer-name
Identifica o fabricante dos dispositivos. O INF também deve conter uma seção modelos INF correspondentes com o mesmo nome. O comprimento máximo do nome de um fabricante, em caracteres, é LINE_LEN. (Uma entrada especificada dessa maneira não pode ser localizada.)

strkey
Especifica um token exclusivo dentro do arquivo INF que representa o nome de um fabricante. Cada token %strkey% deve ser definido em uma seção cadeias de caracteres INF do arquivo INF.

models-section-name
Especifica um nome definido pelo gravador INF para a seção Modelos INF por fabricante dentro do arquivo INF. Esse valor deve ser exclusivo dentro do arquivo INF e deve seguir as regras gerais para definir nomes de seção. Para obter mais informações sobre essas regras, consulte Regras de sintaxe geral para arquivos INF.

TargetOSVersion
Especifica uma ou mais versões de sistema operacional de destino com as quais várias seções de Modelos INF podem ser usadas. O Windows escolhe a seção Modelos INF que corresponde mais de perto à versão do sistema operacional na qual está sendo executada.

Para obter uma descrição da decoração TargetOSVersion , consulte a seção Comentários a seguir e informações relacionadas no Exemplo 3 abaixo.

Importante

A partir do Windows Server 2003 SP1, os arquivos INF devem decorar entradas models-section-name na seção Fabricante do INF, bem como os nomes de seção modelos INF associados , para versões do sistema operacional de destino não x86. Essas extensões de plataforma não são necessárias em arquivos INF para versões do sistema operacional de destino baseadas em x86, mas são recomendadas.

Comentários

Qualquer arquivo INF que instale um ou mais dispositivos deve ter uma seção Fabricante . Um arquivo INF fornecido por IHV/OEM normalmente especifica apenas uma única entrada nesta seção. Se várias entradas forem especificadas, cada entrada deverá estar em uma linha separada do INF.

O uso de uma entrada %strkey%=models-section-name simplifica a localização do arquivo INF para o mercado internacional, conforme descrito em Criando arquivos INF internacionais e a página de referência para a seção Cadeias de caracteres INF.

Se um arquivo INF especificar uma ou mais entradas no formato nome do fabricante , cada entrada especificará implicitamente o nome da seção Modelos correspondente em outro lugar no INF.

Você pode pensar na seção Fabricante de cada arquivo INF fornecido pelo sistema como um sumário, pois esta seção configura a instalação de modelos de dispositivo de cada fabricante para uma classe de configuração de dispositivo. Cada entrada na seção Fabricante de um arquivo INF especifica um token %strkey% facilmente localizável para o nome de um fabricante e um nome de seção unique-to-the-INF por fabricante Models .

As entradas models-section-name na seção Fabricante podem ser decoradas para especificar versões do sistema operacional de destino. Diferentes seções de Modelos INF podem ser especificadas para versões diferentes do sistema operacional. As versões especificadas indicam versões do sistema operacional com as quais as seções modelos INF são usadas. Se nenhuma versão for especificada, o Windows usará uma seção Modelos especificada para todas as versões de todos os sistemas operacionais.

Para o Windows XP Windows 10, versão 1511, o formato da decoração TargetOSVersion é o seguinte:

NT[Architecture][.[OSMajorVersion][.[OSMinorVersion][.[ProductType][.SuiteMask]]]]

A partir do Windows 10, versão 1607 (Build 14310 e posterior), o formato da decoração TargetOSVersion é o seguinte:

NT[Architecture][.[OSMajorVersion][.[OSMinorVersion][.[ProductType][.[SuiteMask][.[BuildNumber]]]]]

Cada campo é definido da seguinte maneira:

NT
Especifica que o sistema operacional de destino é baseado em NT. O Windows 2000 e versões posteriores do Windows são todos baseados em NT.

Arquitetura
Identifica a plataforma de hardware. Se especificado, deve ser x86, ia64, amd64, arm ou arm64.

Antes do Windows Server 2003 SP1, se Architecture não for especificado, a seção Modelos INF associada poderá ser usada com qualquer plataforma de hardware.

A partir do Windows Server 2003 SP1, a arquitetura deve ser especificada em Nomes de seções de modelos INF para versões do sistema operacional de destino não x86. A arquitetura é opcional nos nomes de seção modelos INF para versões do sistema operacional de destino baseadas em x86, mas é recomendável.

OSMajorVersion
Um número que representa o número de versão principal do sistema operacional. A tabela a seguir define a versão principal do sistema operacional Windows.

Observação

Para diferenciar entre Windows 10 específicas e 11 versões em um arquivo INF, você precisa usar BuildNumber (veja abaixo).

Versão do Windows Versão principal
Windows 11 (todas as versões) 10
Windows Server 2022 10
Windows Server 2019 10
Windows Server 2016 10
Windows 10 (todas as versões) 10
Windows Server 2012 R2 6
Windows 8.1 6
Windows Server 2012 6
Windows 8 6
Windows Server 2008 R2 6
Windows 7 6
Windows Server 2008 6
Windows Vista 6
Windows Server 2003 R2 5
Windows Server 2003 5
Windows XP 5
Windows 2000 5

OSMinorVersion
Um número que representa o número de versão secundária do sistema operacional. A tabela a seguir define a versão secundária do sistema operacional Windows.

Versão do Windows Versão secundária
Windows 11 (todas as versões) 0
Windows Server 2022 0
Windows Server 2019 0
Windows Server 2016 0
Windows 10 (todas as versões) 0
Windows Server 2012 R2 3
Windows 8.1 3
Windows Server 2012 2
Windows 8 2
Windows Server 2008 R2 1
Windows 7 1
Windows Server 2008 0
Windows Vista 0
Windows Server 2003 R2 2
Windows Server 2003 2
Windows XP 1
Windows 2000 0

ProductType
Um número que representa um dos sinalizadores de VER_NT_xxxx definidos em Winnt.h, como o seguinte:

0x0000001 (VER_NT_WORKSTATION)

0x0000002 (VER_NT_DOMAIN_CONTROLLER)

0x0000003 (VER_NT_SERVER)

Se um tipo de produto for especificado, o arquivo INF será usado somente se o sistema operacional corresponder ao tipo de produto especificado. Se o INF der suporte a vários tipos de produto para uma única versão do sistema operacional, várias entradas TargetOSVersion serão necessárias.

SuiteMask
Um número que representa uma combinação de um ou mais dos sinalizadores de VER_SUITE_xxxx definidos em Winnt.h. Esses sinalizadores incluem o seguinte:

0x00000001 (VER_SUITE_SMALLBUSINESS)

0x00000002 (VER_SUITE_ENTERPRISE)

0x00000004 (VER_SUITE_BACKOFFICE)

0x00000008 (VER_SUITE_COMMUNICATIONS)

0x00000010 (VER_SUITE_TERMINAL)

0x00000020 (VER_SUITE_SMALLBUSINESS_RESTRICTED)

0x00000040 (VER_SUITE_EMBEDDEDNT)

0x00000080 (VER_SUITE_DATACENTER)

0x00000100 (VER_SUITE_SINGLEUSERTS)

0x00000200 (VER_SUITE_PERSONAL)

0x00000400 (VER_SUITE_SERVERAPPLIANCE)

Se um ou mais valores de máscara de pacote forem especificados, o INF será usado somente se o sistema operacional corresponder a todos os pacotes de produtos especificados. Se o INF der suporte a várias combinações de pacote de produtos para uma única versão do sistema operacional, várias entradas TargetOSVersion serão necessárias.

BuildNumber
Um número que representa o número mínimo de build do sistema operacional da versão do Windows à qual a seção é aplicável, começando com o build 14310 ou posterior.

Supõe-se que o número de build seja relativo apenas a alguma versão principal/secundária específica do sistema operacional e pode ser redefinido para alguma versão principal/secundária futura do sistema operacional.

Qualquer número de build especificado pela decoração TargetOSVersion é avaliado somente quando a versão principal/secundária do sistema operacional do TargetOSVersion corresponde exatamente à versão atual do sistema operacional (ou AltPlatformInfo).  Se a versão atual do sistema operacional for maior que a versão do sistema operacional especificada pela decoração TargetOSVersion (OSMajorVersion,OSMinorVersion), a seção será considerada aplicável independentemente do número de build especificado. Da mesma forma, se a versão atual do sistema operacional for menor que a versão do sistema operacional especificada pela decoração TargetOSVersion , a seção não será aplicável.

Se o número de build for fornecido, a versão do sistema operacional e BuildNumber da decoração TargetOSVersion deverão ser maiores que a versão do sistema operacional e o número de build do Windows 10 build 14310 em que essa decoração foi introduzida pela primeira vez. Versões anteriores do sistema operacional sem essas alterações (por exemplo, Windows 10 build 10240) não analisarão decorações desconhecidas, portanto, uma tentativa de direcionar essas compilações anteriores impedirá que o sistema operacional considere a decoração válida.

A tabela a seguir define o número de build para o sistema operacional Windows.

Versão do Windows Número de build
Windows 11 versão 23H2 22631
Windows 11 versão 22H2 22621
Windows 11 versão 21H2 22000
Windows Server 2022 20348
Windows 10 versão 22H2 19045
Windows 10 versão 21H2 19044
Windows 10 versão 21H1 19043
Windows 10 versão 20H2 19042
Windows 10 versão 2004 19041
Windows 10 versão 1909 18363
Windows 10, versão 1903 18362
Windows Server 2019 17763
O Windows 10, versão 1809 17763
Windows 10 versão 1803 17134
Windows 10 versão 1709 16299
Windows 10, versão 1703 15063
Windows Server 2016 14393
Windows 10, versão 1607 14393

Para obter mais informações sobre a decoração TargetOSVersion , consulte Combinando extensões de plataforma com versões do sistema operacional.

Importante

É altamente recomendável que você sempre decore as entradas model-section-name nas seções Fabricante e Modelos com extensões de plataforma para sistemas operacionais de destino do Windows XP ou versões posteriores do Windows. Para plataformas de hardware baseadas em x86, você deve evitar o uso do . Extensão da plataforma NT e use . NTx86 em vez disso.

Se o INF contiver entradas de seção Fabricante com decorações, ele também deverá incluir seções de Modelos INF com nomes que correspondam às decorações do sistema operacional. Por exemplo, se um INF contiver a seguinte seção Fabricante :

%FooCorp%=FooMfg, NTx86...... 0x80, NTamd64

Em seguida, o INF também deve conter seções de Modelos INF com os seguintes nomes:

  • [FooMfg.NTx86.... 0x80]

    Esse nome se aplica ao pacote data center do Windows XP e versões posteriores do Windows em plataformas de hardware baseadas em x86.

  • [FooMfg.NTamd64]

    Esse nome se aplica a todos os tipos de produtos e pacotes do Windows XP e versões posteriores do Windows em plataformas de hardware baseadas em x64.

Durante a instalação, o Windows seleciona uma seção Modelos INF da seguinte maneira:

  1. Se o Windows estiver em execução em uma versão baseada em x86 do sistema operacional (Windows XP ou versões posteriores) que inclui o pacote de produtos do Data Center, o Windows selecionará o [FooMfg.NTx86.... 0x80]Seção Modelos .

  2. Se o Windows estiver em execução em uma versão baseada em x64 do sistema operacional (Windows XP ou versões posteriores) para qualquer pacote de produtos, o Windows selecionará a seção [FooMfg.NTamd64]Models .

Se o INF for destinado a ser usado com versões do sistema operacional anteriores ao Windows XP, ele também deverá conter uma seção Modelos não decorados chamada [FooMfg].

Se um INF der suporte a vários fabricantes, essas regras deverão ser seguidas para cada fabricante.

Veja a seguir exemplos adicionais de decorações TargetOSVersion :

  • %FooCorp% = FooMfg, NTx86

    Neste exemplo, o nome da seção Modelos INF resultante é [FooMfg.NTx86], e é aplicável a qualquer versão x86 do sistema operacional (Windows XP ou posterior).

  • %FooCorp% = FooMfg, NT.7.8

    Neste exemplo, para a versão 7.8 e posterior do sistema operacional, o nome da seção Modelos INF resultante é [FooMfg.NT.7.8]. Para versões anteriores do sistema operacional, como o Windows XP, [FooMfg.NT] é usado.

A seleção da instalação da seção Modelos INF a ser usada se baseia nas seguintes regras:

  • Se o INF contiver seções de Modelos INF para vários números principais ou menores de versão do sistema operacional, o Windows usará a seção com os números de versão mais altos que não são maiores do que a versão do sistema operacional na qual a instalação está ocorrendo.

  • Se as seções modelos INF que correspondem à versão do sistema operacional também incluirem decorações de tipo de produto e/ou pacote de produtos, o Windows selecionará a seção que mais corresponde ao sistema operacional em execução.

Suponha, por exemplo, que o Windows esteja sendo executado no Windows XP (versão 5.1), sem o pacote de produtos do Data Center, e encontre a seguinte entrada em uma seção Fabricante :

%FooCorp%=FooMfg, NT, NT.5, NT.5.5, NT.... 0x80

Nesse caso, o Windows procura uma seção modelos INF chamada [FooMfg.NT.5]. O Windows também usará a seção [FooMfg.NT.5] se estiver em execução em uma versão do Datacenter do Windows XP, pois um número de versão específico terá precedência sobre o tipo de produto e a máscara de pacote.

Se você quiser que um INF exclua explicitamente uma versão específica do sistema operacional, tipo de produto ou pacote, crie uma seção vazia de Modelos INF. Por exemplo, uma seção vazia chamada [FooMfg.NTx86.6.0] proíbe a instalação nas versões 6.0 e superiores do sistema operacional baseado em x86.

Exemplos

Este exemplo mostra uma seção Fabricante típica de um INF para um único IHV.

[Manufacturer]
%Mfg%=Contoso,NTamd64        ; Models section == Contoso

[Contoso.NTamd64]

; ...
[Strings]
Mfg = "Contoso, Ltd."

O exemplo a seguir mostra parte de uma seção Fabricante típica de um INF para um instalador específico da classe de dispositivo:

[Manufacturer]
%CONTOSO%=Contoso_Section,NTamd64
; several entries omitted here for brevity
%FABRIKAM%=Fabrikam_Section,NTamd64
%ADATUM%=Adatum_Section,NTamd64

O exemplo a seguir mostra uma seção Fabricante específica para plataformas x86, Windows XP e posteriores:

[Manufacturer]
%foo%=foosec,NTx86.5.1

[foosec.NTx86.5.1]

O exemplo a seguir mostra uma seção Fabricante específica das plataformas x64, Windows 10 build 14393 e posterior:

[Manufacturer]
%foo%=foosec,NTamd64.10.0...14393

[foosec.NTamd64.10.0...14393]

Os dois exemplos a seguir mostram arquivos INF esqueléticos com uma variedade de seções de modelos INF específicos do sistema operacional:

Exemplo 1:

[Manufacturer]
%MyName% = MyName,NTx86.5.1
.
[MyName]
%MyDev% = InstallA,hwid
.
[MyName.NTx86.5.1]
%MyDev% = InstallB,hwid
.
[InstallA]   ; Windows 2000 
.
.
[InstallB]   ; Windows XP and later, x86 only
.

Exemplo 2:

[Manufacturer]
%MyName% = MyName,NTx86.6.0,NTx86.5.1,
.
[MyName.NTx86.6.0] ; Empty section, so this INF does not support
.                  ; NT 6.0 and later.
.
[MyName.NTx86.5.1] ; Used for NT 5.1 and later
.                  ; (but not NT 6.0 and later due to the NTx86.6.0 entry)
%MyDev% = InstallB,hwid
.
[MyName]           ; Empty section, so this INF does not support
.                  ; Win2000
.

Exemplo 3:

[Manufacturer]
%MyMfg% = MyMfg, NTamd64.6.1, NTamd64.10.0, NTamd64.10.0...14310
.
[MyMfg.NTamd64.6.1]          ; Used for Windows 7 and later
.                            ; (but not for Windows 10 and later due to the NT.10.0 entry)
.
[MyMfg.NTamd64.10.0]         ; Used for Windows 10
.                            ; (but not for Windows 10 build 14393 and later due to the NT.10.0...14393 entry)
.
[MyMfg.NTamd64.10.0...14393] ; Used for Windows 10 build 14393 and later
.
.

Observação

Ao especificar várias TargetOSVersions, as una em uma entrada, conforme visto neste exemplo. Não represente cada destino como uma entrada separada.

Confira também

Combinando extensões de plataforma com versões do sistema operacional

Modelos

Cadeias de caracteres