How Windows 95 Handled Print Job Priorities

During the mid-1990s, Windows 95 introduced an upgraded 32-bit print spooler architecture designed to balance local system performance with network output. By utilizing a numeric priority scale ranging from 1 to 99, Windows 95 allowed users and system administrators to determine the processing order of queued documents across local devices and shared network environments. This article breaks down how Windows 95 managed these priority ratings, transferred job metadata across network protocols, and resolved queue bottlenecks.

The 32-Bit Spooler and Priority Ratings

At the core of the printing subsystem in Windows 95 was SPOOL32.EXE, which replaced the predominantly 16-bit printing subsystem found in Windows 3.1. Windows 95 implemented a standardized priority scale ranging from 1 (the lowest priority) to 99 (the highest priority), with the default priority typically set to 1 for standard print tasks.

When multiple jobs resided in a queue simultaneously, the Windows 95 spooler evaluated two primary conditions before releasing data to the target port:

  1. The numerical priority score: Higher-numbered jobs were systematically processed ahead of lower-numbered jobs.
  2. The time of submission: If two jobs shared the same priority level, the spooler fell back to a First-In, First-Out (FIFO) queue model.

Priority levels could be assigned globally at the printer level or individually adjusted on a per-document basis within the print queue manager by users with appropriate administrative privileges.

Local Spooling vs. Network Despooling

Windows 95 introduced Enhanced Metafile (EMF) spooling alongside traditional RAW data processing. In network environments, the priority level directly impacted the workflow between the client machine and the target print server:

  1. Rendering on the Client: An application rendered output into an EMF format. Because EMF files recorded graphics commands rather than fully rasterized printer control codes, local background rendering took significantly less time, returning application control to the user quickly.
  2. Metadata Tagging: Once spooled into the local temporary directory, the print job was packaged into a network structure that carried descriptive metadata, including the document name, owning user, target printer, data type, and designated priority level.
  3. Queue Sorting: As the client transferred the job over the network redirector using Server Message Block (SMB) or NetWare Core Protocol (NCP), the priority value was parsed by the receiving host.

Processing on Network Servers

The ultimate enforcement of job priority depended on the role of the machine hosting the physical printer:

  • When Printing to a Windows NT Server: Windows 95 acted as a network client, passing the priority value along with the job stream via remote procedure calls (RPC). The host running Windows NT Server maintained true multi-user access controls, using its own sophisticated spooler service to rank the job alongside other incoming network jobs based on the attached priority tag.
  • When Windows 95 Acted as the Print Server: In peer-to-peer networking via "File and Printer Sharing for Microsoft Networks," the Windows 95 machine hosting the printer received raw or EMF data streams over NetBEUI, IPX/SPX, or TCP/IP. The host spooler placed the jobs into its local print folder (\WINDOWS\SPOOL\PRINTERS) and dynamically reordered the execution list based on the incoming priority values before sending the streams to the local interface (such as LPT1).

Scheduling Caveats and Interruptions

Unlike preemptive operating systems that could interrupt an active data transfer mid-stream, the Windows 95 spooler did not preempt an active, in-flight print job. If a lower-priority document had already begun transmitting its byte stream to the physical printer or external print server, that job was allowed to complete. The Windows 95 scheduler positioned incoming high-priority jobs at the front of the remaining line, ensuring they were dispatched immediately after the currently active transmission finished.