Cómo usar representaciones en archivos INF para controladores de impresora
Importante
La plataforma de impresión moderna es el medio preferido de Windows para comunicarse con impresoras. Se recomienda usar el controlador de clase de bandeja de entrada IPP de Microsoft, junto con aplicaciones de soporte técnico de impresión (PSA), para personalizar la experiencia de impresión en Windows 10 y 11 para el desarrollo de dispositivos de impresora.
Para obtener más información, consulte Plataforma de impresión moderna y la Guía de diseño de aplicaciones para compatibilidad con impresión.
Los controladores de impresora que se ejecutan en Windows Server 2003 con SP1 y versiones posteriores, o en la versión de 64 bits de Windows XP y versiones posteriores, y que tienen como destino arquitecturas x64 deben incluir una sección Models del INF con representación, como se muestra en el ejemplo siguiente. Sin embargo, dado que el controlador puede instalarse como un controlador adicional en una versión de Windows anterior a Windows Server 2003 con SP1, el archivo INF también debe proporcionar una sección Models del INF sin representación. También se recomienda usar representaciones para instalar controladores basados en Itanium.
En los ejemplos siguientes se muestra cómo escribir un archivo INF que se puede usar para instalar un controlador para una sola arquitectura de procesador.
Ejemplo de controlador x64
En el primer ejemplo se muestra cómo usar una sección Models del INF sin representación para instalar un controlador x64 en versiones de Windows antes de Windows XP, o en una máquina basada en x86 o Itanium que ejecute Windows XP o Windows Server 2003. La representación NTamd64 de la segunda sección Models del INF hace que se instale un controlador x64 en una máquina de cualquier arquitectura de procesador que ejecute Windows Server 2003 con SP1 o posterior.
[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>
Ejemplo de controlador basado en Itanium
En el siguiente ejemplo se muestra cómo usar una sección Models del INF sin representación para instalar un controlador basado en Itanium en versiones de Windows antes de Windows XP, o en una máquina x86 que ejecute Windows XP o Windows Server 2003 anterior a SP1. La representación NTia64 de la segunda sección Models del INF hace que se instale un controlador basado en Itanium en una máquina de cualquier arquitectura de procesador que ejecute Windows Server 2003 con SP1 o posterior.
[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>
Ejemplo de controlador x86
En el ejemplo siguiente, la sección Models del INF no requiere una representación. No es necesario especificar la arquitectura del procesador porque se supone que una sección sin representación hace referencia a un controlador x86. Se permite agregar una sección Models del INF con una representación NTx86, pero tenga en cuenta que también debe incluir una sección Models del INF sin representación para versiones de Windows antes de Windows Server 2003 con SP1.
[MANUFACTURER]
%Acme Corp.% = Acme
...
[Acme]
"Acme LaserWhiz 100 PS" = Acme100_x86.PPD, <hardware IDs and compatible IDs for this printer>
Compatibilidad con varias arquitecturas en un único archivo INF
En esta sección se muestra cómo escribir un archivo INF que se puede usar para instalar controladores de impresora para varias arquitecturas de procesador.
Para crear un archivo INF que se pueda usar para instalar controladores para varias arquitecturas, escriba una sección Models del INF y, a continuación, realice tantas copias de él como sea necesario para que cada arquitectura compatible tenga su propia sección Models del INF. Agregue la representación adecuada para cada arquitectura de procesador a cada una de las secciones Models del INF resultantes, como se muestra en el ejemplo siguiente.
[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"