V4 Driver Manifest

The v4 print driver manifest is a text file that contains all the printer-specific setup directives.

A v4 print driver manifest is used in conjunction with a v4 print driver INF file, as part of the set up for a printer-specific v4 print driver. The directives in a manifest are organized into sections, and the following list shows the names of the sections.

  • DriverConfig

  • BidiFiles

  • DriverRender

  • FileSave

  • PrinterExtensions

DriverConfig Section

The following table shows the directives that are used in the DriverConfig section.

RequiredFilesIncludes files from ntprint.inf or ntprint4.inf. Unidrv.dll, pscript5.dll, and mxdwdrv.dll should be omitted from this list. They will be resolved automatically. RequiredFiles=UNIRES.DLL,STDNAMES.GPD,V3HOSTINGFILTER.DLL
RequiredClassCauses this driver to include all files from a defined class driver using the driver/friendly name of the device as a key. This is the mechanism for linking a printclass driver to a model specific driver.

The RequiredClass directive cannot be used by a class driver. When you use RequiredClass, you should avoid file name collisions between the printer driver and the Print Class driver to which you're linking.

Although files with similar names won't overwrite each other, it may be difficult during troubleshooting, to distinguish between the class driver package file and the file from the v4 printer driver.

RequiredClass="Fabrikam PCL5e Class Driver"
DriverFileThis points to the rendering binary. Mxdwdrv is the default, but class drivers may alternatively specify unidrv.dll or pscript5.dll. This is functionally identical to the same directive in a v3 INF. Can only be set in a class driver. Valid choices are unidrv.dll or pscript5.dll. V4 print drivers either inherit from a RequiredClass or default to mxdwdrv.dll DriverFile=unidrv.dll

This defines the primary GPD or PPD for this driver. This is functionally identical to the same directive in a v3 INF.


This is used to specify additional, optional attributes associated with the driver.

  • NotShareable:
    This flag specifies that the driver is not shareable. This is appropriate for virtual drivers such as the Microsoft XPS Document Writer.
  • SoftResetOnJobCancellation:
    This flag specifies that the device requires a USB soft reset (IOCTL_USBPRINT_SOFT_RESET) on print job cancellation.
  • ArchiveEnabled
    The v4 driver uses this flag to request archive-optimized XPS as a spool file.


Flags=NotShareable, SoftResetOnJobCancellation


PrinterDriverIDThis is a unique ID that describes the print driver. If two drivers specify the same PrinterDriverID, then they must be compatible for sharing and support the same printer extensions. Required.PrinterDriverID={guid}
PropertyBagSpecifies a driver property bag for this driver. Note, this is a compiled file generated by DriverPropertyBagTool.exe or Visual Studio. None.PropertyBag=FAProperty.dpb
ResourceFileDefines the name of the driver's string resource DLL. None.ResourceFile=FARC.dll
ConstraintScriptDefines the name of the driver's JavaScript constraint file. None. ConstraintScript=FAConst.js

Defines the category of the device between one of several options. Valid options are as follows:

  • PrintFax.Fax
  • PrintFax.Printer
  • PrintFax.Printer.3D
  • PrintFax.Printer.File
  • PrintFax.Printer.Service
  • PrintFax.Printer.Virtual


For more information about other driver categories, see Printer INF File Entries.

PrinterExtensionUrlSpecifies a URL for the user to obtain a copy of the Printer extension app. Used in printer sharing. None.PrinterExtensionUrl="http://www.fabrikam.com/files/setup.exe"
DevModeMapSpecifies the Devmode mapping file. This is an XML file that is used with PrintTicket <-> DEVMODE conversion in JavaScript code. None.DevModeMap=fadmmap.xml
EventFileSpecifies the Driver Event XML file. None.EventFile=faevents.xml
QueuePropertiesSpecifies the format of a queue property bag. This is an XML file and must NOT be compiled. None.QueueProperties=faQueueProps.xml
BidiUSBStatusInterfaceSpecifies a list of hardware IDs that match one or more device interfaces to be used for USB Bidi communications. None, but should only be supported if status is done over a USB interface that is not the print interface. BidiUSBStatusInterface=”USB\vid_1234&pid_1234”, ”USB\vid_1234&pid_4567”

This directive specifies the scope of the user property bag as either Queue or Manufacturer.

If this directive is omitted, then Queue is the default value. Valid options for this directive are as follows:

  • Queue:
    This is the default configuration, and it matches the Windows 8 behavior.
  • Manufacturer:
    All queues which use the same Manufacturer string in the INF use the same user property bag.
None. UserPropertyBagScope=Manufacturer


BidiFiles Section

The BidiFiles section is used to define Bidi extension files. It is identical to the Windows 7 format for TCP and WSD. The USB keywords are new. The following table shows the directives that are used in the BidiFiles section.

BidiSPMFileThis defines the Bidi extension file for a TCP/IP-based printer. None.BidiSPMFile=FaBidiSPM.xml
BidiWSDFileThis defines the Bidi extension file for a WSD-based printer.None.BidiWSDFile=FABidiWSD.xml
BidiUSBFileThis defines the Bidi extension for USB. None.BidiUSBFile=FABidiUSB.xml
BidiUSBJSFileThis defines the JavaScript extension for USB. None.BidiUSBJSFile=FABidiUSBJS.js


DriverRender Section

The following table shows the directives that are used in the DriverRender section.

PageOutputQuality.[OptionName]Changes the image compression based on the value in the job PrintTicket for PageOutputQualityOptionName must be a name specified in the standard PrintSchema namespace. PageOutputQuality.Draft= MxdcImageType.JPEGHigh PageOutputQuality.Normal= MxdcImageType.JPEGMedium PageOutputQuality.High=MxdcImageType.PNG
XpsFormatChanges the XPS format generated by the print system for this driver. Multiple values may be specified, and the order represents the driver's preference. Not available for use in class drivers that use Unidrv/PScript rendering. XpsFormat=XPS XpsFormat=OpenXPS XPSFormat=OpenXPS, XPS XPSFormat=XPS,OpenXPS


The MxdcImageType keyword has the following allowed values:

MxdcImageType valueDescription
MxdcImageType.JPEGHigh High compression JPEG (smaller files)
MxdcImageType.JPEGMedium Medium compression JPEG
MxdcImageType.JPEGLow Low compression JPEG
MxdcImageType.PNG PNG file type (largest files)


FileSave Section

This section supports the file-save scenario. When a v4 print driver is installed against the new PORTPROMPT port type, this section specifies the file extensions to be shown in the Common File window, and also specifies the localizable resource strings that support the extensions and the dialog box itself.

<FileExtensionName>This directive describes the FileExtension to be used when saving a file from this driver using the PORTPROMPT port. The value is a resourceID from the driver's ResourceFile. For XPS and OXPS only, a resourceID of 0 may be specified and the print spooler will use its internal resources for these. None.<FileExtensionName>=<resourceID> Xps=1234
SaveAsTitleThis directive describes the title to be used on the Save File dialog. The value is a resourceID from the driver's ResourceFile. None.SaveAsTitle=<resourceID> SaveAsTitle=4321


PrinterExtensions Section

The PrinterExtensions section specifies a printer extension and the invocation modes it supports. For both of these entries, the app will automatically be registered with the print system. In addition, the app will be configured with two different parameters, the PrinterDriverID and the ReasonID, in that order. As a result, each entry must use a different PrinterExtensionID GUID.

The following table shows the directives that are used in the PrinterExtensions section.

DriverEventApp servicing the DriverEvent mode.. None.DriverEvent=app.exe,{extensionID GUID}
PrintPreferencesApp servicing the PrintPreferences mode. None.PrintPreferences=app.exe, {extensionID GUID}


The following is a sample of a v4 print driver manifest.



PageOutputQuality.Normal= MxdcImageType.JPEGMedium


Related topics

Printer INF File Entries



Send comments about this topic to Microsoft

© 2014 Microsoft