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}