Print Monitors

Windows 2000 supports two kinds of print monitors: language monitors and port monitors. Port monitors are further subdivided into local and remote.

Language Monitor

The language monitor provides the common language needed for the client and printer to understand each other in bidirectional communication, so you can configure the printer and monitor printer status. You can request configuration and status from the printer, and the printer can send unsolicited status (such as "Paper tray empty") to the client.

Windows 2000 includes Pjlmon.dll, a language monitor that uses Printer Job Language (PJL) as the language. Any bidirectional printer that uses PJL can use Pjlmon.dll. For example, PJL is the language that implements the bidirectional communication between a Hewlett-Packard LaserJet 5Si and its print server.

If a printer uses a different printer language, the vendor can develop a language monitor for it. A vendor might also develop a language monitor to add data, such as printer-specific control information, to the print stream that is going to a unidirectional printer.

To take advantage of bidirectional printing, you need a bidirectional printer, an IEEE 1284–compliant cable, and a correctly configured port. Some parallel ports are set by default to IBM AT-compatible mode; you need to change the setting to bidirectional.

Local Port Monitor

The local port monitor, Localspl.dll, controls parallel and serial I/O ports where a printer might be attached. It sends print jobs to local devices, including those on familiar ports like LPT1 and COM1.

The FILE port is listed by default on the Ports tab of the printer's Properties dialog box. When you send a print job to a printer that uses this port, the spooler prompts you for the name of a file where the document needs to be stored.

You can select other local ports by clicking Add Port on the Ports tab of an existing printer property, selecting Local Port , and then clicking New Port . The Port Name dialog box prompts you for the name of a port to be governed by Localspl.dll. Your entry will be listed as a Local Port on the Ports tab. Possible entries include:

  • A file name, such as C:\dir\file_name. All jobs sent to this port are written to the named file, and each new job overwrites the last one.

  • The name of a remote print share, such as \\Server\Printer (URLs are not accepted). Jobs sent to this port are transferred over the network to the named share by the network redirector. This can be useful if you are printing remotely but you want the job to spool locally too (as in network printing on Windows 95 or Windows 98). If your printer is not connected directly to the computer, select Standard TCP/IP Port or a remote port monitor other than Local Port .

  • IrDA. Use this port to connect to infrared-enabled printers meeting Infrared Data Association (IrDA) specifications. If your hardware does not support IrDA, it is not be listed on the Ports tab.

  • USB. This specifies the universal serial bus (USB) port, used to connect to cameras, modems, and audio.

  • 1394. This specifies the 1394 port designed for Institute of Electrical and Electronics Engineers (IEEE) 1394 bus class drivers.

  • NUL. This specifies the null port, which you can use to test whether network clients can send jobs. Jobs sent to NUL are deleted without wasting paper or delaying real print jobs.

To test client connectivity by using the NUL port

  1. Pause the printer assigned to this port.

  2. Send a job from a network client.

  3. Look in the queue to confirm that the job arrived.

  4. Resume the printer.

A second local port monitor, Usbmon.dll, initially does not appear in the Add Printer Wizard because USB printers are hot-plugging devices. Usbmon.dll is installed automatically whenever you plug in a USB printer to the correct physical port on your computer. If USB has been enabled in BIOS, Windows 2000 detects the device and displays its settings on the screen. You might be required to insert a CD-ROM containing driver files.

Installation opens the USB Root Hub and a generic USB parallel printer port (for example, USB001, 002), and copies the parallel printer point-and-print driver. Settings for the port can be modified using Device Manager.

Remote Port Monitors

All other port monitors that are supplied with Windows 2000 are remote monitors and enable printing to remote printers. An example is Lanman Print Services Port.