Print Spooler Architecture

The Microsoft Windows 2000 and later print spooler is made up of a set of Microsoft-supplied and optional vendor-supplied components, with responsibilities that include:

  • Determining whether a print job should be handled locally or across a network.

  • Accepting a data stream created by GDI, in conjunction with a printer driver, for output on a particular type of printer.

  • Spooling the data to a file (if spooling is enabled).

  • Selecting the first available physical printer in a logical printer queue.

  • Converting a data stream from a spooled format (such as enhanced metafile (EMF)) to a format that can be sent to printer hardware (such as printer control language (PCL)).

  • Sending a data stream to printer hardware.

  • Maintaining a registry-based database for spooler components and printer forms.

  • (Windows Vista) Rendering print jobs on the client computer instead of on the print server. Client-side rendering eases the print server workload, is transparent to the print driver, and is enabled by default in Windows Vista.

  • For Windows 7, print drivers can run in a separate process from the spooler. This feature is called Printer Driver Isolation.