The printing process

Applies To: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2

The printing process

The following is an overview of the operations performed on a document submitted to a printer from a Windows XP client. The printer is attached to a computer running a Windows Server 2003 family operating system. (Some processes are slightly different for non-Windows brand operating system print clients.)

The printing process

  1. A user on a Windows XP client computer chooses to print a document.

  2. If the document is submitted from a Windows application, the application calls the graphics device interface (GDI), which calls the printer driver associated with the target printer. Using the document information from the application, the GDI and the driver exchange data to render the print job in the printer language of the printer, and then pass it to the client-side print spooler. If the client is using an operating system other than Windows, or a non-Windows application, another component replaces the GDI to perform a similar task.

  3. The client computer delivers the print job to the print server. For Windows XP, Windows 2000, or Windows NT 4.0 clients, the client-side spooler makes a remote procedure call (RPC) to the server side of the spooler, which uses the print router to poll the remote print provider on the client side. The remote print provider initiates another RPC to the server spooler, which receives the print job over the network.

  4. On the print server, print jobs from Windows XP, Windows 2000, or Windows NT 4.0 clients are of the enhanced metafiles (EMF) data type. Many other applications use the RAW (ready to print) data type.

  5. The router on the server passes the print job to the local print provider on the server (component of the spooler), which spools the print job (writes it to the disk).

  6. The local print provider polls the print processor. The print processor recognizes the job's data type and receives the print job. The print processor then converts the print job according to its data type.

  7. If the target printer is defined on the client computer, the print server service decides whether the server's spooler should alter the print job or assign a different data type. The print job then passes to the local print provider, which writes it to the disk.

  8. Control of the print job is passed to the separator page processor, which adds a separator page, if specified, to the front of the job.

  9. The job is despooled to the print monitors. For bidirectional printers, a language monitor handles the two-way communication between the sender and the printer, and then it passes the print job to a port monitor. If the printer is not bidirectional, the print job goes directly to the port monitor, which sends it to the target printer (or, to another network print server).

  10. The printer receives the print job, converts each page into bitmap format, and prints it.