How Windows 3.11 Print Manager Managed Print Queues
In Microsoft Windows 3.11, print queues were centrally controlled by the Print Manager, a dedicated utility that functioned as an intermediary spooler between software applications and physical printers. By intercepting print commands, temporarily writing print data to the hard disk, and feeding the data to hardware ports during idle processor cycles, Print Manager allowed users to continue working in their applications while print jobs processed in the background. This article examines the mechanics of Print Manager, how it handled local and network queues, and the specific controls it provided to users.
The Spooling Process
When a user initiated a print job in a Windows 3.11 application, the application communicated with the relevant Windows printer driver rather than sending raw data directly to a physical port (such as LPT1). The driver translated the document into printer-ready commands, which were then handed off to Print Manager.
Print Manager wrote this data to temporary spool files on the local
hard drive, typically located in the directory designated by the
TEMP environment variable. Once the spool file was created,
control was immediately returned to the originating application. Print
Manager then worked in the background, reading the spooled file and
transmitting it in small increments to the target output port.
Cooperative Multitasking and Priority Settings
Because Windows 3.11 relied on a 16-bit cooperative multitasking architecture, Print Manager had to share CPU time with active foreground applications. To prevent printing from degrading system responsiveness, Print Manager included transmission priority settings accessible via the Options menu:
- Low Priority: Allocated minimal CPU cycles to print transmissions, ensuring foreground applications ran smoothly at the expense of slower printing speeds.
- Medium Priority: Balanced CPU allocation evenly between foreground tasks and printer output (the default setting).
- High Priority: Dedicated more processor time to sending data to the printer, resulting in faster print output but potentially causing noticeable lag or stutter in active desktop applications.
Queue Manipulation and Job Control
The Print Manager interface displayed a hierarchical list of all installed printers and their respective queues. Expanding a printer entry revealed active and pending jobs in chronological order, accompanied by metadata such as document name, file size, and the percentage of data already transmitted.
Users could interact with the queue using basic management functions:
- Pause and Resume: Users could temporarily halt the transmission of an individual document or freeze the entire printer queue.
- Delete: A pending or active job could be purged from the queue, which removed the job from Print Manager and deleted the underlying temporary spool file.
- Order Manipulation: Print Manager operated on a strict first-in, first-out (FIFO) basis by default, though users with appropriate rights could delete and restart tasks to re-sequence priorities manually.
Network Print Queues in Windows for Workgroups 3.11
Windows for Workgroups 3.11 enhanced the Print Manager by introducing native peer-to-peer networking support. This allowed the utility to manage both local hardware ports and shared network queues across a local area network (LAN).
Through Print Manager, users could browse the network, connect to printers shared by other workstations or dedicated print servers (such as Novell NetWare or Microsoft LAN Manager), and redirect local LPT ports to remote network queues. Users could also share a locally attached printer with other workgroup members, allowing the host machine's Print Manager to queue jobs incoming from remote network clients.