Architecture

Figure 4.6 shows the processing flow of a document submitted for printing. Some processes, or the software components that perform them, are slightly different for print clients that are not running Windows 2000. For more information about different print clients, see "Working with Other Operating Systems" later in this chapter.

For more information about how Windows 2000 processes print jobs using the Internet or a corporate intranet, see "Internet Printing" later in this chapter.

Cc976755.FNBE13(en-us,TechNet.10).gif

Figure 4.6 Windows 2000 Remote Printing Process

  1. A user at a client chooses to print a document.
    If the client is running any Windows-based operating system and is printing from a Windows-based application, the application calls the graphical device interface (GDI) which calls the printer driver associated with the target print device. Using the document information from the application and the print device information from the printer driver, the GDI renders the print job in the printer language of the print device. The application then calls the client side of the spooler (Winspool.drv).
    If the client is running a non-Windows-based operating system or is using a non-Windows-based application on a Windows operating system, another software component replaces the GDI to perform a similar task.

  2. The client delivers the print job to the print server.
    If the client is running Windows 2000, the client side of the spooler makes a remote procedure call (RPC) to the server side of the spooler (Spoolsv.exe), which makes a direct application programming interface (API) call to the print router (Spoolss.dll). The print router polls the remote print providers, and the remote print provider (Win32spl.dll) makes an RPC to Spoolsv.exe on the print server, which receives the print job over the network.
    If the client is running another Windows-based operating system or is a Windows 2000 client that created a local printer port and redirected output to a network server (\\Server\Printer), the print job goes to the server message block (SMB) redirector on the client. The redirector delivers the job to the print server service on the print server.
    UNIX or other line printer remote (LPR) clients can print to the Windows 2000 line printer daemon (LPD) service. LPR clients must comply with Request for Comments (RFC) 1179.
    Macintosh clients can print to the Windows 2000 server in two ways:

    • Over AppleTalk if Windows 2000 Server is running Print Server for Macintosh

    • Over TCP/IP if the Macintosh client has an LPR client and Windows 2000 LPD service is running

  3. The print router or print server service receives the print job.
    On the print server, print jobs from Windows 2000 clients using Windows applications are enhanced metafiles (EMFs). Some print server services for clients that are not running Windows 2000 assign a data type and others leave the data type blank. Print jobs with no data type assume that the default data type in the Print Processor dialog box on the print server. For more information about printer server services, see "Print Processor" later in this chapter.

  4. The print router or print server service passes the print job to the local print provider on the server (a component of the spooler), which spools the print job (writes it to disk) in an SPL file.

  5. The local print provider polls the print processors. When a print processor recognizes the job's data type, that print processor receives the print job and alters it (or not) according to its data type to ensure that the job prints correctly.

  6. The job is despooled to the print monitor.
    If the print device is bidirectional, the job first goes to a language monitor, which handles bidirectional communication with the printer and then passes the job to the port monitor.
    If the print device is not bidirectional, the job goes directly to the port monitor, which transmits the print job to the print device or to another server over a specific communications channel.

  7. The print device receives the print job and reproduces the data in the form of the physical medium.

note-icon

Note

For a list of currently supported printers, see the Microsoft Windows 2000 Hardware Compatibility List (HCL) link on the Web Resources page at https://windows.microsoft.com/windows2000/reskit/webresources .