Unidrv Minidrivers

Important

We recommend that you use Microsoft's IPP inbox class driver, along with Print Support Apps (PSA), to customize the print experience in Windows 10 and 11 for printer device development.

For more information, see the Print support app design guide.

Unidrv minidrivers are text files that contain descriptions of printers. Each minidriver describes one printer type from one manufacturer. This text-based description is called a generic printer description (GPD), and each file is called a GPD file. Each minidriver consists of one or more GPD files.

Using GPD files to describe a printer, Unidrv supports the following capabilities:

  • Generic, standard printer features that are found on most printers.

  • Unique, customized printer features that only your printer provides.

  • Installable printer options, which can only be selected if the options are installed.

  • Option constraints, which allow you to specify incompatible options.

  • Conditional statements, which allow you to specify that some printer characteristics are dependent on others.

  • Specification of printer commands that can include current values from a large selection of standard variables. You can also perform arithmetic operations on these variables.

  • A customized help file, in addition to the standard help file provided with Unidrv, for describing customized features.

For information about creating GPD files, see Introduction to GPD Files.

A Unidrv minidriver can consist of more than one GPD file. For more information, see Using Multiple GPD Files in a Minidriver.

When a printer is installed, Unidrv's GPD parser reads all the printer's GPD files. The information in the GPD files is used to create a temporary binary file for the printer. Both the Unidrv user interface and the Unidrv renderer reference this binary file.

Typically, a minidriver must provide resources, such as fonts, bitmaps, and localizable text strings. These resources are placed in a resource DLL. For more information, see Using Resource DLLs in a Minidriver.