Microsoft KB Archive/240683

From BetaArchive Wiki
< Microsoft KB Archive
Revision as of 16:10, 18 July 2020 by 3155ffGd (talk | contribs) (importing KB archive)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Knowledge Base

Windows print spooler performance enhancements

Article ID: 240683

Article Last Modified on 3/1/2007


  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Datacenter Server

This article was previously published under Q240683


Windows includes several print spooler optimizations designed to significantly reduce startup time. This article lists these print spooler enhancements.


Print spooler enhancements:

  • The Localmon.dll file (port monitor) and the Winprint.dll file (print processor) are now merged into the Localspl.dll file (local print provider). This decreases the number of .dll files the spooler has to load at startup.
  • The Spoolsv.exe file (router) was decoupled from the Spoolss.dll file at spooler startup time. Because of this, when the spooler first starts, the Spoolss.dll file is only loaded when the spooler is required to initialize. This could be either after 90 seconds, or when a client request comes in (for example, OpenPrinter, or EnumPrinters). Minimizing the loading of all the .dll files required by the Spoolss.dll file at startup time significantly reduces startup time.
  • A modification to the Userinit.exe file delays the initialization of the spooler until the Windows user interface is initialized.
  • The new spooler does only 4 disk Input/Output (I/O) operations at startup, reading 55 kilobyte (K), then 15K more on initialization: one in Advapi32.dll file, and the rest in the Pagefile.sys file, where it reads another 88K. Other .dll files are not touched until later. Compared to 115 disk I/O operations with the old spooler, reading a total of 994K, is a significant improvement.

Note This is only considering direct I/O operations attributed to the Spoolsv.dll process; it does not take into account the savings on I/O resulting from interactions with other processes, as well as some central processing unit (CPU) savings.

Additional query words: printing spooling

Keywords: kbinfo kbprint KB240683