Compartir a través de


Manifiesto del controlador V4

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.

El manifiesto del controlador de impresión v4 es un archivo de texto que contiene todas las directivas de configuración específicas de la impresora. Un manifiesto del controlador de impresión v4 se usa con un archivo INF del controlador de impresión v4, como parte de la configuración de un controlador de impresión v4 específico de la impresora.

Las directivas de un manifiesto se organizan en secciones:

Sección DriverConfig

En la tabla siguiente se muestran las directivas que se usan en la sección DriverConfig.

Directiva Restricciones Uso
RequiredFiles

Incluye archivos de ntprint.inf o ntprint4.inf.

La directiva RequiredFiles admite el siguiente valor en Windows 10:

PWGRRenderFilter.dll: agrega el filtro de representación del ráster PWG de Microsoft a la lista de archivos dependientes del controlador.

El filtro de representación del filtro de representación de PWG requiere que el controlador use un archivo PrintDeviceCapabilities para la configuración.
Unidrv.dll, pscript5.dll y mxdwdrv.dll deben omitirse en esta lista. Se resolverán automáticamente. Ejemplos:

RequiredFiles=
UNIRES.DLL,
STDNAMES.GPD,
V3HOSTINGFILTER.DLL
RequiredClass

Hace que este controlador incluya todos los archivos de un controlador de clase definido mediante el nombre descriptivo del controlador del dispositivo y su GUID como clave. Este es el mecanismo para vincular un controlador printclass a un controlador específico del modelo.
Un controlador de clase no puede usar la directiva RequiredClass. Al usar RequiredClass, debe evitar conflictos de nombres de archivo entre el controlador de impresora y el controlador clase de impresión al que está vinculando.

Aunque los archivos con nombres similares no se sobrescribirán entre sí, puede ser difícil durante la solución de problemas, distinguir entre el archivo del paquete de controladores de clase y el archivo del controlador de impresora v4.
Ejemplo:

RequiredClass=
"Fabrikam PCL5e Class Driver",(9343720D-B67E-4451-B93F-6F721C439771)
DriverFile

Esto apunta al binario de representación. Mxdwdrv es el valor predeterminado, pero los controladores de clase pueden especificar unidrv.dll o pscript5.dll. Esto es funcionalmente idéntico a la misma directiva en un INF v3.
Solo se puede establecer en un controlador de clase. Las opciones válidas son unidrv.dll o pscript5.dll. Los controladores de impresión V4 heredan de RequiredClass o utilizan de forma predeterminada mxdwdrv.dll DriverFile=unidrv.dll
DataFile

Define el GPD o PPD principal para este controlador. Esto es funcionalmente idéntico a la misma directiva en un INF v3.

En Windows 10, los controladores de impresión v4 pueden seguir especificando un Datafile GPD o PPD, pero también pueden describir un DataFile que esté en el formato PrintDeviceCapabilities.
Necesario. Ejemplos:

DataFile=FAPDL.gpd
DataFile=FAPDL.xml
DataFileType

DataFileType debe usarse al describir un archivo PrintDeviceCapabilities como DataFile, y también se puede usar con un DataFile basado en GPD o PPD.
Necesario para el archivo PrintDeviceCapabilities. Ejemplo:

DataFileType=
"application/vnd.ms-PrintDeviceCapabilities+xml"
Flags

Se usa para especificar atributos opcionales asociados al controlador.

NotShareable: esta marca especifica que el controlador no se puede compartir. Esto es adecuado para controladores virtuales, como el escritor de documentos de Microsoft XPS.

SoftResetOnJobCancellation: esta marca especifica que el dispositivo requiere un restablecimiento temporal USB (IOCTL_USBPRINT_SOFT_RESET) en la cancelación del trabajo de impresión. ArchiveEnabled El controlador v4 usa esta marca para solicitar XPS optimizado para archivado como un archivo de cola.
Ninguno. Ejemplos:

Flags=
NotShareable,
SoftResetOnJobCancellation
Flags=
ArchiveEnabled,NotShareable
PrinterDriverID

Se trata de un identificador único que describe el controlador de impresión. Si dos controladores especifican el mismo PrinterDriverID, deben ser compatibles para compartir y admitir las mismas extensiones de impresora.
Necesario. PrinterDriverID=
{guid}
PropertyBag

Especifica un contenedor de propiedades de controlador para este controlador. Se trata de un archivo compilado generado por DriverPropertyBagTool.exe o Visual Studio.
Ninguno. PropertyBag=
FAProperty.dpb
ResourceFile

Define el nombre del DLL de recursos de cadena del controlador.

En Windows 10, los controladores pueden especificar un ResourceFile mediante el formato .resx.
Ninguno. Ejemplos:

ResourceFile=
FARC.dll
ConstraintScript

Define el nombre del archivo de restricción de JavaScript del controlador.
Ninguno. ConstraintScript=
FAConst.js
DriverCategory

Define la categoría del dispositivo entre una de varias opciones. Las opciones válidas son las siguientes:
PrintFax.Fax PrintFax.Printer PrintFax.Printer.3D PrintFax.Printer.File PrintFax.Printer.Service PrintFax.Printer.Virtual
Necesario. DriverCategory=
PrintFax.Printer

Para obtener más información sobre otras categorías de controladores, consulte Entradas de archivo INF de impresora.
PrinterExtensionUrl

Especifica una dirección URL para que el usuario obtenga una copia de la aplicación de extensión Printer. Se usa en el uso compartido de impresoras.
Ninguno. PrinterExtensionUrl=
"https://www.fabrikam.com/files/setup.exe";
DevModeMap

Especifica el archivo de asignación Devmode. Se trata de un archivo XML que se usa con PrintTicket para la conversión DEVMODE en código JavaScript.
Ninguno. DevModeMap=
fadmmap.xml
EventFile

Especifica el archivo XML de evento de controlador.
Ninguno. EventFile=
faevents.xml
QueueProperties

Especifica el formato de un contenedor de propiedades de cola. Se trata de un archivo XML y NO debe compilarse.
Ninguno. QueueProperties=
faQueueProps.xml
BidiUSBStatusInterface

Especifica una lista de identificadores de hardware que coinciden con una o varias interfaces de dispositivo que se usarán para las comunicaciones bidi USB.
Ninguna, pero solo se debe admitir si el estado se realiza a través de una interfaz USB que no es la interfaz de impresión. BidiUSBStatusInterface=
"USB\vid_1234&pid_1234",
"USB\vid_1234&pid_4567"
UserPropertyBagScope

Esta directiva especifica el ámbito del contenedor de propiedades de usuario como Queue o Manufacturer.
Si se omite esta directiva, Queue es el valor predeterminado. Las opciones válidas para esta directiva son las siguientes:

Queue: esta es la configuración predeterminada y coincide con el comportamiento de Windows 8. Manufacturer: todas las colas que usan la misma cadena de Manufacturer en el INF usan el mismo contenedor de propiedades de usuario.
Ninguno. UserPropertyBagScope=
Fabricante
RetrievePrintDeviceCapabilitiesFromDevice

Los controladores v4 pueden especificar que deben recuperar un archivo PrintDeviceCapabilities de impresoras WS-Print v2.0, siempre y cuando establezcan un archivo PrintDeviceCapabilities como DataFile del controlador y el DataFileType también indique que DataFile es del tipo MIME "application/vnd.ms-PrintDeviceCapabilities+xml".

Opciones válidas:

True: permite que el DataFile local del controlador se reemplace por el archivo PrintDeviceCapabilities del dispositivo.

False: el DataFile local del controlador no se reemplazará por el archivo PrintDeviceCapabilities del dispositivo.

Si no se especifica, el valor predeterminado de esta directiva es false.
Ninguno. Ejemplo:

RetrievePrintDeviceCapabilitiesFromDevice=
true

Sección BidiFiles

La sección BidiFiles se usa para definir archivos de extensión bidi. Es idéntico al formato de Windows 7 para TCP y WSD. Las palabras clave USB son nuevas.

En la tabla siguiente se muestran las directivas que se usan en la sección BidiFiles.

Directiva Restricciones Uso
BidiSPMFile
Define el archivo de extensión bidi para una impresora basada en TCP/IP.
Ninguno. BidiSPMFile=FaBidiSPM.xml
BidiWSDFile
Define el archivo de extensión bidi para una impresora basada en WSD.
Ninguno. BidiWSDFile=FABidiWSD.xml
BidiUSBFile
Define la extensión bidi para USB.
Ninguno. BidiUSBFile=FABidiUSB.xml
BidiUSBJSFile
Define la extensión de JavaScript para USB.
Ninguno. BidiUSBJSFile=FABidiUSBJS.js

Sección DriverRender

En la tabla siguiente se muestran las directivas que se usan en la sección DriverRender.

Directiva Restricciones Uso
PageOutputQuality.[OptionName]
Cambia la compresión de imagen en función del valor del trabajo PrintTicket para PageOutputQuality
OptionName debe ser un nombre especificado en el espacio de nombres PrintSchema estándar. PageOutputQuality.Draft=
MxdcImageType.JPEGHigh

PageOutputQuality.Normal=
MxdcImageType.JPEGMedium

PageOutputQuality.High=
MxdcImageType.PNG
XpsFormat
Cambia el formato XPS generado por el sistema de impresión para este controlador. Se pueden especificar varios valores y el orden representa la preferencia del controlador.
No está disponible para su uso en controladores de clase que usan la representación Unidrv/PScript. XpsFormat=XPS

XpsFormat=OpenXPS

XPSFormat=OpenXPS,XPS

XPSFormat=XPS,OpenXPS
OutputFormat
La directiva OutputFormat describe una única PDL que este controlador genera mediante un tipo MIME.
Esta información se usa durante la operación CreateJob o CreateJob2 para impresoras WSD.
Ninguno. Los tipos de uso válidos incluyen:

OutputFormat=
"application/oxps"

OutputFormat=
"application/vnd.ms-xpsdocument"

OutputFormat=
"image/pwg-raster"

OutputFormat=
"application/vnd.ms-3mfdocument"

Cualquier otro tipo MIME definido válido también se puede especificar aquí.

La palabra clave MxdcImageType para la directiva PageOutputQuality tiene los siguientes valores permitidos:

Valor de MxdcImageType
MxdcImageType.JPEGHigh
JPEG de compresión alta (archivos más pequeños)
MxdcImageType.JPEGMedium
JPEG de compresión media
MxdcImageType.JPEGLow
JPEG de compresión baja
MxdcImageType.PNG
Tipo de archivo PNG (archivos más grandes)

Sección FileSave

En esta sección se admite el escenario de guardado de archivos. Cuando se instala un controlador de impresión v4 en el nuevo tipo de puerto PORTPROMPT, esta sección especifica las extensiones de archivo que se van a mostrar en la ventana Archivo común y también especifica las cadenas de recursos localizables que admiten las extensiones y el propio cuadro de diálogo.

Directiva Restricciones Uso
<FileExtensionName>
Esta directiva describe la FileExtension que se va a usar al guardar un archivo de este controlador mediante el puerto PORTPROMPT. El valor es un resourceID del ResourceFile del controlador. Solo para XPS y OXPS, se puede especificar un resourceID de 0 y el administrador de trabajos de impresión usará sus recursos internos para ello.
Ninguno. <FileExtensionName>=
<resourceID>
Xps=1234
SaveAsTitle
Esta directiva describe el título que se va a usar en el cuadro de diálogo Guardar archivo. El valor es un resourceID del ResourceFile del controlador.
Ninguno. SaveAsTitle=
<resourceID>
SaveAsTitle=4321

Sección PrinterExtensions

La sección PrinterExtensions especifica una extensión de impresora y los modos de invocación que admite. Para ambas entradas, la aplicación se registrará automáticamente con el sistema de impresión. Además, la aplicación se configura con dos parámetros diferentes, PrinterDriverID y ReasonID, en ese orden. Como resultado, cada entrada debe usar un GUID PrinterExtensionID diferente.

En la tabla siguiente se muestran las directivas que se usan en la sección PrinterExtensions.

Directiva Restricciones Uso
DriverEvent
Aplicación que atiende el modo DriverEvent.
Ninguno. DriverEvent=
app.exe,{extensionID GUID}
PrintPreferences
Aplicación que atiende el modo PrintPreferences.
Ninguno. PrintPreferences=
app.exe, {extensionID GUID}

A continuación se muestra un ejemplo de un manifiesto de controlador de impresión v4.

[DriverConfig]
DataFile=FAPDL.xml
RequiredFiles=UNIRES.DLL,STDNAMES.GPD,STDDTYPE.GDL,STDSCHEM.GDL,STDSCHMX.GDL,XPSSVCS.DLL,MSXPSINC.GPD,PWGRRenderFilter.DLL
ResourceFile=FARC.dll
PropertyBag=FAProperty.dpb
PrinterDriverID={GUID}
DriverCategory=PrintFax.Printer
ConstraintScript=faconst.js
EventFile=faevents.xml
PrinterExtensionUrl="https://www.fabrikam.com/download.asp?uiapp=120"
UserPropertyBagScope=Manufacturer
DataFileType="application/vnd.ms-PrintDeviceCapabilities+xml"
RetrievePrintDeviceCapabilitiesFromDevice=true

[BidiFiles]
BidiSPMFile=FABidiSPM.xml
BidiWSDFile=FABidiWSD.xml
BidiUSBFile=FaBidiUSB.xml
BidiUSBJSFile=FABidiUSBJS.js

[DriverRender]
PageOutputQuality.Draft=MxdcImageType.JPEGHigh
PageOutputQuality.Normal=MxdcImageType.JPEGMedium
PageOutputQuality.High=MxdcImageType.PNG
OutputFormat="image/pwg-raster"

[PrinterExtensions]
DriverEvent=FAapp.exe,{GUID}
PrintPreferences=FAapp.exe,{GUID2}

Entradas de archivo INF de impresora