Windows 2000 and Windows Server 2003 Printing Architecture
Updated: April 22, 2003
Applies To: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2
If you have a mixed environment that includes Windows NT, Windows 2000, or the Windows Server 2003 family, it can be useful to understand the Windows print subsystem to identify interoperability issues that may arise. The printing architecture of Windows 2000 (and later versions of Windows) consists of a print spooler and a set of printer drivers. By calling device-independent Win32® printing and Graphics Device Interface (GDI) functions, applications can create print jobs and send them to any of a variety of devices, including laser printers, vector plotters, raster printers, and fax machines. Printer drivers include a user interface (UI) component that allows users to control a printer's selectable options.
An application's calls to Win32 GDI functions are passed to the GDI graphics engine, which either spools the drawing instructions as an enhanced metafile (EMF) or, in conjunction with a printer driver, renders a printable image that can be sent to the spooler. Spooler components interpret EMF files, and they can insert page layout information and job control instructions into the data stream. The spooler then sends the data stream to the serial, parallel, or network port driver associated with the target printer's I/O port. The device interprets the job, which is formatted in printer description language (PDL) for the device, and outputs the printed document.
Spooler and driver components are designed to be replaceable so that hardware vendors can easily add support for new hardware.