This section explains how the driver string name is used and how the string name is structured. It also describes where to find them, how to use them, and the ramifications when putting this into practice.
NOTE: Printer driver string names are always unique to models of printers and the vendors who supply them.
This means that two drivers for the same hardware, one from the Microsoft CD and the other from the manufacturer of the device, have different string names. The following example shows the available driver string names for an HP DeskJet 722C printer from HP, as well as the string name for the same hardware as listed in Windows 2000 in NTPRINT.INF:
HP Driver string name:
“HP DeskJet 720C Series”
Microsoft Windows 2000 Driver string name:
HP Deskjet 722C
HP Deskjet 720C
In this case, you can clearly see the string name differences, but in some cases they differ only by a modifier such as “by HP” or the addition of a version number on the end. The key is that the name is different and unique to the device and the vendor of the driver.
To determine whether a driver is a Microsoft-supplied driver, search NTPRINT.INF for the string name. In the example above, HP DeskJet 722C has an entry in NTPRINT.INF. However, the HP Deskjet 720C Series does not have an entry, so the driver is most likely supplied by an OEM and is not one of the drivers distributed with Windows 2000. To determine the driver name, look at the printer properties on the client OS in question and find the name presented in the Driver field on the Details tab of the local queue. The driver’s friendly name as presented here is also the string name used for matching drivers when redirecting.
Driver String Name Mapping Scenario
The following scenario describes how driver string names affect local printer redirection. Assume that a Windows ME client with a HP DeskJet 722C physically attached to LPT1 is going to connect to a Windows 2000 Terminal Server.
When the Windows ME client attempts to connect, the client is polled for its locally connected printers and for the string name of the driver for this device. In this case, the string name returned is “HP DeskJet 720C Series”. When the server parses NTPRINT.INF, it finds no matching driver, so it logs the 1111, 1105, and 1106 errors, in that order, for this printer. No redirected queue is displayed in the user’s session.
To get the client to successfully redirect the printer, either a pair of matching string name drivers must be found, or the custom INF mapping available post–Windows 2000 SP2 must be created to allow the two mismatched names to work together with limited functionality. The first step should always be to find a matching set of string name drivers, either from the Windows 2000 Server CD under the Printers folder, or from the printer manufacturer. To understand how to look for various OS and driver combinations on the Windows 2000 Server CD, use the following KB article as a starting point:
Q259976 Obtaining Additional Printer Drivers to Use with Windows 2000. The Knowledge Base article can found at the following location:
For the printer in this scenario, HP makes available only Windows 9x and Windows NT 4.0 drivers, while Microsoft supplies only Windows 2000 drivers for the device. As a result, the best practice of using matching string name drivers is not possible, because no one supplies both a Windows 9x and a Windows 2000 driver. This leaves two options:
Pre-install the KERNEL-mode Windows NT 4.0 driver from HP and use the HP driver on the client side. This will allow the client to automatically redirect when connecting. For more information, see Driver Errors on Terminal Server.
Implement a custom INF mapping using the steps outlined earlier in this document and found in Q239088 Events 1111, 1105, and 1106 on Terminal Services Server. The Knowledge Base article can found at the following location:
This option meets the need to redirect a printer, but it is somewhat less desirable than using exact matching string name drivers, for the following reasons:
Forcing a mismatch of drivers can causes a mismatch of features, because OEM drivers typically have additional driver features that do not match one-to-one with those found in the Microsoft-supplied drivers.
Using mismatched drivers from various suppliers, including Microsoft and OEMs, that are not tested together can result in incompatibilities and output problems. The way to minimize this issue is to use trial and error to find a set of drivers that work together in a limited way. In the scenario with the HP DeskJet 722C, using the .INF file to force the two drivers to work is the only option, because the client OS, Windows ME, does not have a matching set of drivers from either Microsoft or HP. As a result, this is the only way to use this device in a Terminal Services environment when the client and server OSs do not match.