Your Printer Uncovered: Getting to Know the Subsystem Features

This article may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. To maintain the flow of the article, we've left these URLs in the text, but disabled the links.

January 2002

by Chris Couture and Kristi Gaylord

Operating Systems: Microsoft Windows 98/2000

When feeling the frustrations of dealing with an inaccessible network and experiencing the agony that often arises when you've sent an angry email to a coworker prematurely, it's quite common to wish you could return to the days of a wholly paper-based office, one without a network whose data you can't access when it's crashed and without an email program that sends irretrievable angry memos. Yet for the vast majority of the time, computers have changed the way we work for the better. Information can now be shared with incredible ease and flexibility, and much more quickly since documents can be sent, managed and stored electronically. However, though great advances have been made toward a paperless office, it isn't yet upon us, and it may never be fully realized. People like paper documents, especially when they can be helpful, as in the examples listed above, and paper documents are still a necessary element in a successful business environment.

And since paper documents are still a vital component of virtually every office, today's Windows 98 and 2000 operating systems incorporate powerful print features, shown in Table A. In this article, we'll discuss these features and their benefits.

Going undercover

To understand the technology behind the perfectly printed documents you pick up from your printer on a daily basis, we'll first examine how Windows' device driver model facilitates the creation of drivers by printer manufacturers and how Windows' own universal printer driver communicates with your computer's entire operating system. Next, we'll explore how the print spooler functions and how Windows identifies attached devices through the Plug and Play component of the print subsystem. Finally, we'll introduce you to some of the printing advancements in Windows 2000, and how they work to give you even greater control over your printed documents.

Table A: Windows' printing subsystem features

Feature Description
Device driver model Allows easy creation of print drivers by manufacturers. Contains a universal driver and printer-specific mini-drivers.
Enhanced metafile spooling Allows all output to non-PostScript printers to spool as enhanced metafiles (EMFs). EMFs print faster than raw files and return control of the application back to the user more quickly.
Bi-directional communication Allows identification of attached devices, easy installation of new components, and dynamic event notification in real time.
DOS printing support Allows DOS-based programs to use the Windows print spooler to take advantage of background printing.

Let's get compatible with Device driver model

With the vast number of printer manufacturers these days, do you ever wonder how each manufacturer's products can be compatible with Windows? The Windows device driver model makes it easy for printer manufacturers to create drivers for their printers. The model is made up of two parts: the universal printer driver and the printer-specific mini-driver. Let's take a closer look at these.

Universal printer driver
The universal printer driver comes standard with Windows, communicates with the rest of the operating system, and includes any information that's common and important to all printers. The universal driver communicates with the printer-specific mini-drivers, which in turn communicate with the specific make and model of printer.

The Windows universal printer driver supports mainstream page description languages, as well as Intellifont and TrueType scalable device fonts. It also supports character sets with more than 256 characters.

Mini-drivers
The mini-drivers (not to be confused with the Hollywood actress) are written by the printer manufacturers. They transmit information between the universal driver and the printer you're installing. The mini-drivers are installed when you add a local or network printer. Microsoft works closely with the printer manufacturers to ensure that the mini-drivers are compatible with the universal print driver.

Unravel the spooling mystery

Have you ever wondered how Windows transmits information from your computer to the printer? Windows 98 and 2000 accomplish this through the use of a print spooler to manage printing. The print spooler passes information to printers by recording the information and playing it back as a spool file, or by directly passing the information to the printer. The print spooler (an acronym created from "simultaneous print operations on line") is actually a collection of DLLs that receives, processes, schedules and distributes documents for printing. The print spooler also maintains registry information for printer drivers, print providers, monitors, ports and print jobs.

In Windows 98 and 2000, all output to a non-PostScript printer spools as enhanced metafiles, or EMFs. EMFs comprise the Windows 98 and 2000 internal graphics language, and include instructions for printing the documents. Most Windows 98- and 2000-based programs print using the EMF data type by default so they aren't affected by the default data type, but Windows 2000 also lists the default data type associated with each print processor in the Print Processor dialog box, shown in Figure A. The default data type is only used when the program doesn't specify a data type. Since the vast majority of programs specify a data type (most often EMF), there shouldn't be a need to change either the default print processor or the data type.

Figure A: The print processor and the default data type determine how much processing the Windows 2000 printer performs.
[ Figure A ]

Rather than the printer driver creating raw printer data, EMF information is generated by the Graphical Device Interface before spooling. After the EMF is created, control of the application that's printing is returned to the user, and the EMF is interpreted in the background on a 32-bit printing subsystem spooler thread, and then sent to the printer driver. As a result, the user gains control of the application again much faster than if he were waiting for the printer calls to be fully interpreted by the printer driver directly. In addition, EMF files can be sent to a variety of devices without concern for device-specific drivers.

Keep the bi-directional communication lines open

Windows 98 and 2000 detect Plug and Play printers that return device ID values through bi-directional parallel communication. This feature lets programs query the printer to determine its physical attributes. It also allows the configuration of device driver settings on the server without user intervention. The printer driver automatically determines how much memory the printer has and what fonts are available, among other things.

Another benefit of bi-directional communication support is the sharing of messages between the printer, Windows, and your applications. Printers can send messages stating "out of paper" or "printer offline" to alert you to problems that may need your attention. To use bi-directional communication, you need the following:

  • A bi-directional printer
  • An IEEE 1284-compliant cable, identifiable by a "1284" imprint
  • A parallel port correctly configured to PS/2 mode

The MS-DOS printing workaround

Because MS-DOS programs don't use the Graphical Device Interface for their printing process, they don't benefit from EMF printing. However, Windows 98 and 2000 address the printing limitations of Windows 3.1 by allowing DOS-based applications to spool directly to the 32-bit Windows print spooler to take advantage of background printing. This returns you to the application more quickly.

To print from DOS-based applications, you must send the print job to a printer installed on an LPT port. If you send this print job to a COM port, the job can't be spooled because Windows can't distinguish the print job from other kinds of serial output from a DOS-based program.

Window 2000 printing enhancements

And as if the subsystem features we've helped you to understand so far in this article weren't enough, Windows 2000 offers a whole slew of added features to help you gain greater control over your printing capabilities. We'll detail some of the important ones here.

Windows 2000's NTFS file permissions allow you to control access to individual files by specifying which users can access them and what kind of permissions the users have. These permissions also apply to printing rights. In the Printers dialog box, select your Printer and open its Properties dialog box. Select the Security tab, as shown in Figure B, and examine the different printing permissions granted to each user or group on your network. Users with Print rights can print documents, pause, resume, start and cancel their own documents and can connect to a printer. If you have Manage Documents permissions, you can control the job settings for all documents, as well as pause, restart and delete all documents. Finally, users with Manage Printer permissions can add a printer, change printer properties, delete printers and change printer permissions.

Figure B: Click the Advanced button to view the current permission entries for the printer, including a description of the permissions and where they're applied.
[ Figure B ]

For added workstation or network printing security, you can restrict the ability to print, manage printers, and manage documents by selecting a user or group and selecting the Deny check boxes in the Permissions list box. You can click the Add button to add new users or groups who are allowed to print using your printer, and by selecting a name in the list box and clicking Delete, you can remove the permissions associated with the name entirely.

Windows 2000 also allows you to monitor your printer's queue through the System Monitor. Administrators can monitor the performance of a local or remote printer and counters can be set up to monitor a variety of performance criteria, such as bytes printed per second, job errors and total pages printed. To access the Print Queue monitoring feature of the System Monitor, open the Control Panel and double-click on Administrative Tools. Then double-click on the Performance icon. In the Performance dialog box, select the System Monitor object in the Tree pane, and then click the Add button. In the Add Counters dialog box, select Print Queue from the Performance Object dropdown list, as shown in Figure C, and then select the counters you'd like to add to the System Monitor from the list box, and click the Add button. When you've finished adding the counters, click the Close button. The System Monitor will then monitor the chosen counters and alert you when it finds criteria corresponding to the information you chose to watch.

Figure C: Select a counter from the list box and click the Explain button for a detailed description of what the counter accomplishes.
[ Figure C ]

No guts, no glory

Because the need for printed documents still exists, Windows 98 and 2000 provide a versatile print subsystem (the "guts" of Windows' printing technology) that addresses some of the shortcomings that existed in previous versions. In this article, we've discussed the features and benefits of this system. Use them to increase your printing productivity!

© 2001 Element K Journals, a division of Element K Press LLC ("Element K"). All rights reserved except for the right to view this site using a web browser and to make private, noncommercial use hereof. Element K and the Element K logo are trademarks of Element K LLC. The content published on this site ("Content") is the property of Element K or its affiliates or third party licensors and is protected by copyright law in the U.S. and elsewhere. This means that the right to copy and publish the Content is reserved, even for Content such as tips and articles made available for free, none of which may be copied in whole or in part or further distributed in any form or medium without the express written permission of Element K. Questions or requests for permission to copy or republish any content may be directed to: contentreuse@elementk.com.