Introduction to spooler components
The primary components of the print spooler are illustrated in the following diagram.
Application The print application creates a print job by calling GDI functions.
GDI The Graphics Device Interface (GDI) includes both user-mode and kernel-mode components. The user-mode component, Microsoft Win32 GDI, is used by Win32 applications that require graphics support. The kernel-mode component, the graphics engine (or graphics rendering engine), exports services and functions that graphics device drivers can use.
Winspool.drv Winspool.drv is the client interface into the spooler. It exports the functions that make up the spooler's Win32 API, and provides RPC stubs for accessing the server. (GDI is the primary client, but applications also call some of its Win32 functions.)
Spoolsv.exe Spoolsv.exe is the spooler's API server. It's implemented as a service that is started when the operating system is started. This module exports an RPC interface to the server side of the spooler's Win32 API. Clients of Spoolsv.exe include Winspool.drv (locally) and Win32spl.dll (remotely). The module implements some API functions, but most function calls are passed to a print provider through the router (Spoolss.dll).
Router The router, Spoolss.dll, determines which print provider to call, based on a printer name or handle supplied with each function call, and passes the function call to the correct provider.
Print Provider The print provider that supports the specified print device.
Print Monitor Windows supports two types of print monitors: language monitors, and port monitors.
If printer hardware is local to the system on which the application is running, the "client" and "server" are the same system (although this destination isn't evident in the diagram).
All spooler components execute in user mode.