UniDrv (Universal Printer Driver or Unidriver) is a GDI-based Microsoft Windows universal printer driver and architecture for non-PostScript printers. It is used to simplify driver development of non-PostScript printers (also called Winprinters) for printer manufacturers. Unidrv allows the creation of a printer-specific minidriver in the form of a GPD (Generic Printer Description) file, similar to a PPD file, which is much simpler than kernel mode driver development. Unidrv was introduced in Windows 2000 and replaced the Raster Device Driver (RASDD) interface used in Windows NT 4.0 and earlier versions.
The concept behind Unidrv is that a complete printer driver need not be written by the hardware manufacturer; only a device-specific minidriver is required that uses the core printing functionality of the Unidrv engine. A minidriver can be a customization file, or a plug-in, that allows special rendering functions or customized UI options. Unidrv supports non-PostScript printers driven by PCL and PCL-like page description languages.
The Unidriver is implemented as a set of DLL and GPD files along with other printer-specific support files:
Newer Unidrv-based printer drivers from some printer vendors, e.g. Hewlett-Packard, may contain many other support files to allow support for more printer-specific options.
The Unidriver is also called the raster driver because it supports raster (bitmap) graphics printing and is compatible with many printers. This driver supports the following features:
To determine whether a driver is Unidrv-based, the following steps need to be taken on Windows:
Starting with Windows Vista, Unidrv is intended to be succeeded by XPSDrv. The XPSDrv printer driver extends Microsoft's GDI-based, printer driver architecture to support consuming XML Paper Specification (XPS) documents and is more modular and extensible. With an XPSDrv printer driver, the XPS Document format is used as a spool file format and as a document file format.