Spooler Components and IHV Development Opportunities

The components of the Windows NT spooler are outlined in the following table.

Component/Description Default Executable IHV Development Requirement s
Spooler Server Process: entrance to the spooler subsystem for both local and remote print requests. spoolss.exe None: the Microsoft-provided service cannot be replaced.
Print Request Router (PRR): routes a print request’s data stream to the local or network print provider. spoolss.dll None: the Microsoft-provided PRR cannot be replaced.
Local Print Provider: responsible for the local playback of spooled print jobs. This includes putting print jobs into spool files,  managing despooling, and performing administrative tasks such as print queue management. localspl.dll None: the Microsoft-provided local print provider cannot be replaced.
Network Print Provider: responsible for translating print requests from Win32 printing function calls to a vendor-specific form that can be used by the network. win32spl.dll Printer IHVs typically do not need to develop a network print provider.

Network IHVs must develop one.

Print Processors: perform despooling. winprint.dll Winprint handles three spool file formats: raw, EMF, and text; it is the default print processor. Print processors and printer drivers work together, so printer vendors may wish to develop another print processor if the vendor supports a different spool file format.
Port Monitors: Responsible for communication between spooler and printing device. Typically communicates with base I/O drivers (i.e. serial and parallel drivers) for device I/O, but may also call different interfaces, such as Windows Sockets, SCSI, etc. localmon.dll Printers that use parallel or serial ports can use localmon.dll. IHVs with printers that connect to other types of ports, such as SCSI or Ethernet LAN cards) need to develop a port monitor. See Print Monitors for more information.
Language Monitors: allow the spooler to configure and monitor the status of a bidirectional printer. none If the printer manufacturer’s device is bidirectional, vendors can develop a language monitor for it. See Print Monitors for more information.