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.