Compartir a través de


Escritura de controladores principales

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 escritores de controladores de impresión pueden usar la funcionalidad principal del controlador que proporciona Windows Vista. Para crear un controlador principal, genere un GUID que otros paquetes de controladores puedan usar para hacer referencia al conjunto de archivos que componen el controlador principal. Por ejemplo, en Ntprint.inf, la definición del archivo de controlador principal Unidrv se muestra en el ejemplo siguiente:

[Microsoft.NTx86]
"{D20EA372-DD35-4950-9ED8-A6335AFE79F0}" =  
  {D20EA372-DD35-4950-9ED8-A6335AFE79F0}, 
  {D20EA372-DD35-4950-9ED8-A6335AFE79F0}
[{D20EA372-DD35-4950-9ED8-A6335AFE79F0}]
CopyFiles=UNIDRV,PJLMON.DLL,@TTFSUB.GPD,@LOCALE.GPD,@MSXPSINC.GPD
[UNIDRV]
; Unidrv files and pjlmon sections follow...

Con esta definición, un archivo INF del controlador de impresión puede hacer referencia a los archivos de controladores principales mediante la palabra clave CoreDriverSections, como se muestra en el ejemplo anterior.

Es importante tener en cuenta que un controlador principal debe conservar la compatibilidad con versiones anteriores. Dado que más de un controlador puede utilizar el controlador principal, este debe seguir funcionando con los controladores existentes que dependen de él cuando se actualiza. El controlador principal debe enviarse como parte del paquete de controladores.

El controlador principal se define con una sección Model, que incluye una descripción del dispositivo que es el GUID del controlador principal. Por ejemplo:

; Model section
[Company.NTx86]
"{GUID1}" = {GUID1}, {GUID1}

; Install section - must list all files in the core printer driver
[{GUID1}]
DriverVer = MM/DD/YYYY,1.1.1.1
CopyFiles=MANUFACTURER_CORE_FILESET

; Core Driver Section, can use print-specific INF keywords here
[MANUFACTURER_CORE]
CopyFiles=MANUFACTURER_CORE_FILESET

[MANUFACTURER_CORE_FILESET]
File1.dll
File2.dll
File3.dll

[ControlFlags]
AlwaysExcludeFromSelect = {GUID1}

El controlador principal debe incluir información de versión en la sección de instalación mediante la palabra clave DriverVer. La sección de instalación también debe enumerar todos los archivos que requiere el controlador principal. Use la nueva palabra clave AlwaysExcludeFromSelect para asegurarse de que el controlador principal no se muestra al usuario en la interfaz de usuario.