Como usar decorações em arquivos INF para drivers de impressora
Importante
A plataforma de impressão moderna é o meio preferencial do Windows para se comunicar com as impressoras. Recomendamos que você use o driver de classe de caixa de entrada IPP da Microsoft juntamente com PSA (Aplicativos de Suporte à Impressão) para personalizar a experiência de impressão no Windows 10 e 11 para o desenvolvimento de dispositivos de impressora.
Para obter mais informações, consulte Plataformade impressão moderna e o Guia de design do aplicativo de suporte de impressão.
Os drivers de impressora executados no Windows Server 2003 com SP1 e posteriores, ou na versão de 64 bits do Windows XP e posteriores, e que têm como alvo arquiteturas x64 devem incluir uma seção decorada de Modelos INF, como mostrado no exemplo a seguir. Entretanto, como o driver pode ser instalado como um driver adicional em uma versão do Windows anterior ao Windows Server 2003 com SP1, o arquivo INF também deve fornecer uma seção Modelos INF não decorada. Também é recomendável que decorações sejam usadas para instalar drivers baseados em Itanium.
Os exemplos a seguir mostram como escrever um arquivo INF que pode ser usado para instalar um driver para uma arquitetura de processador único.
Exemplo de driver x64
O primeiro exemplo mostra como usar uma seção de Modelos INF não decorada para instalar um driver x64 em versões do Windows anteriores ao Windows XP ou em um computador baseado em x86 ou Itanium que executa o Windows XP ou o Windows Server 2003. A decoração NTamd64 na segunda seção de Modelos INF faz com que um driver x64 seja instalado em um computador de qualquer arquitetura de processador que esteja executando o Windows Server 2003 com SP1 ou posteriores.
[MANUFACTURER]
%Acme Corp.% = Acme, NTamd64
...
[Acme]
"Acme LaserWhiz 100 PS" = Acme100_x64.PPD, <hardware IDs and compatible IDs for this printer>
[Acme.NTamd64]
"Acme LaserWhiz 100 PS" = Acme100_x64.PPD, <hardware IDs and compatible IDs for this printer>
Exemplo de driver baseado em Itanium
O próximo exemplo mostra como usar uma seção de Modelos INF não decorada para instalar um driver baseado em Itanium em versões do Windows anteriores ao Windows XP ou em uma máquina x86 que executa o Windows XP ou o Windows Server 2003 antes do SP1. A decoração NTia64 na segunda seção de Modelos INF faz com que um driver baseado em Itanium seja instalado em um computador de qualquer arquitetura de processador que esteja executando o Windows Server 2003 com SP1 ou posteriores.
[MANUFACTURER]
%Acme Corp.% = Acme, NTia64
...
[Acme]
"Acme LaserWhiz 100 PS" = Acme100_ia64.PPD, <hardware IDs and compatible IDs for this printer>
[Acme.NTia64]
"Acme LaserWhiz 100 PS" = Acme100_ia64.PPD, <hardware IDs and compatible IDs for this printer>
Exemplo de driver x86
No próximo exemplo, a seção Modelos INF não exige uma decoração. Não é preciso especificar a arquitetura do processador porque se assume que uma seção não decorada se refere a um driver x86. É permitido adicionar uma seção Modelos INF com uma decoração NTx86, mas lembre-se de que também é necessário incluir uma seção Modelos INF não decorada para versões do Windows anteriores ao Windows Server 2003 com SP1.
[MANUFACTURER]
%Acme Corp.% = Acme
...
[Acme]
"Acme LaserWhiz 100 PS" = Acme100_x86.PPD, <hardware IDs and compatible IDs for this printer>
Suporte a várias arquiteturas em um único arquivo INF
Esta seção mostra como escrever um arquivo INF que pode ser usado para instalar drivers de impressora para várias arquiteturas de processadores.
Para criar um arquivo INF que possa ser usado para instalar drivers para várias arquiteturas, escreva uma seção Modelos INF e faça quantas cópias forem necessárias para que cada arquitetura com suporte tenha sua própria seção de Modelos INF. Adicione a decoração apropriada para cada arquitetura de processador a cada uma das seções Modelos INF resultantes, como mostrado no exemplo a seguir.
[MANUFACTURER]
%Acme Corp% = Acme, NTamd64, NTia64
...
;; Used to install
;; - a driver of any architecture type, on a machine running Windows 2000
;; - a driver of any architecture type, on an x86 machine running Windows XP or Windows Server 2003
;; - an x86 driver on a machine of any architecture type, running Windows Server 2003 with SP1
[Acme]
%Acme Model 1% = Acme100PS, <hardware IDs and compatible IDs for this printer>
;; Used to install
;; - an x64 driver on a machine of any architecture type, running Windows Server 2003 with SP1
[Acme.NTamd64]
%Acme Model 1% = Acme100PS, <hardware IDs and compatible IDs for this printer>
;; Used to install
;; - a driver of any architecture type, on an Itanium-based machine running Windows XP or Windows Server 2003
;; - an Itanium-based driver on a machine of any architecture type, running Windows Server 2003 with SP1
[Acme.NTia64]
%Acme Model 1% = Acme100PS, <hardware IDs and compatible IDs for this printer>
;; DDInstall Section.
;; This sample assumes that all three versions of the driver
;; use the same DDInstall section.
[Acme100PS]
CopyFiles = MyDriverFile.dll, ...
[DestinationDirs]
DefaultDestDir=66000
[SourceDisksNames.x86]
1= %Location%,,,
[SourceDisksFiles.x86]
MyDriverFile.dll = 1,\i386
...
[SourceDisksNames.amd64]
1= %Location%,,,
[SourceDisksFiles.amd64]
MyDriverFile.dll = 1,\amd64
...
[SourceDisksNames.ia64]
1= %Location%,,,
[SourceDisksFiles.ia64]
MyDriverFile.dll = 1,\ia64
...
[Strings]
Acme Corp = "Acme Corporation"
Acme Model 1 = "Acme LaserWhiz 100 PS"
Location = "Acme CD ROM"