Updated TCP/IP Printing Options for Windows NT 4.0 SP3 and Later

ID: Q179156


The information in this article applies to:
  • Microsoft Windows NT Workstation version 4.0
  • Microsoft Windows NT Server version 4.0
  • Microsoft Windows NT Server version 4.0, Terminal Server Edition

IMPORTANT: This article contains information about editing the registry. Before you edit the registry, make sure you understand how to restore it if a problem occurs. For information about how to do this, view the "Restoring the Registry" Help topic in Regedit.exe or the "Restoring a Registry Key" Help topic in Regedt32.exe.

SUMMARY

This article describes the updated TCP/IP printing components that are available in Windows NT 4.0 Service Pack 3 (SP3). There are two new registry entries that allow line printer remote (LPR) to use any available port higher than 1,023. With these entries, LPR is no longer restricted to only using the 11 TCP Ports (721 through 731) and will not conflict with reserved ports, even on very busy print servers.


MORE INFORMATION

TCP/IP printing (LPR) in Windows NT 4.0 Service Pack 2 (SP2) and earlier defaults to using TCP ports 512-1,023. In Windows NT 4.0 Service Pack 3, LPR defaults to using TCP ports 721-731, as described in RFC 1179 (Windows NT 3.51 Service Pack 4 and earlier versions). In addition, LPR in Service Pack 3 is now configurable through two registry entries, that enable the use of TCP ports 1,024 and greater.

For information on setting LPR printers to be RFC compliant, please see the following Microsoft Knowledge Base article:

ARTICLE-ID: Q141708
TITLE : Printing to LPD Printer Is Slow or Fails with Windows NT

Method 1

WARNING: Using Registry Editor incorrectly can cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk.

For information about how to edit the registry, view the "Changing Keys and Values" Help topic in Registry Editor (Regedit.exe) or the "Add and Delete Information in the Registry" and "Edit Registry Data" Help topics in Regedt32.exe. Note that you should back up the registry before you edit it. If you are running Windows NT, you should also update your Emergency Repair Disk (ERD).

In Service Pack 3, a new registry entry is automatically generated when a new LPR port is created. This setting is defined on a per printer port basis and defaults to 0, which is RFC compliant. To enable individual IP address ports to use TCP ports 1024 and higher, apply Service Pack 3 and then use the following steps:
  1. Start Registry Editor (Regedt32.exe) and go to the following key:


  2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\LPDSVC\lpr
  3. If the following value exists, double-click the entry. If the value does not already exist, click Add Value from the Edit menu and type the following information:

    Value Name: <IP address of LPR printer port>
    Data Type : REG_DWORD
    Value : 0 or 1
    0 = uses ports 721-731 (default)
    1 = uses any port >1024


  4. Restart the Spooler service for the changes to take affect. Type the following command at an MS-DOS command prompt:

    net stop spooler

    To restart the Spooler service, type the following command at an MS-DOS command prompt:

    net start spooler


Method 2

Windows NT 4.0 Service Pack 4 (SP4) and later enables a new registry value, UseNonRFCSourcePorts, to configure LPR printers to use TCP ports higher than 1,024 with one registry entry that will incorporate a global change. Use this method on print servers that have a large number of LPR ports.

NOTE: If all LPR ports were created prior to applying SP4 or later, an individual port entry exists in the registry for all LPR ports. These individual ports take precedence over the global entry, UseNonRFCSourcePorts, so these individual ports must be deleted from the registry before the UseNonRFCSourcePorts global setting will work for all LPR ports. The step-by-step instructions below will go through removing these individual entries and adding the new entry.

Obtain and apply SP4 or later, and then use the following steps to enable this new registry key:
  1. Start Registry Editor (Regedt32.exe) and go to the following key:


  2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\LPDSVC\lpr
  3. On the Registry menu, click Save Key and type a filename.


  4. Delete the Lpr key to remove all of the individual IP address entries.


  5. Select the LPDSVC key.


  6. On the Edit menu, click Add Key, and then type "lpr" (without quotation marks) in the Key Name box.


  7. Select the newly created Lpr key.


  8. On the Edit menu, click Add Value, and then type the following information:

    Value Name: UseNonRFCSourcePorts
    Data Type: REG_DWORD
    Value: 0 or 1
    0 = uses ports 721-731 (default)
    1 = uses any port >1024


NOTE: SP4 or later must be applied prior to restarting the Spooler in step 8. If you do not apply SP4 or later before you restart the Spooler, the individual port entries are automatically recreated.
  1. Restart the Spooler service for the changes to take affect. Type the following command at an MS-DOS command prompt:

    net stop spooler

    To restart the Spooler service, type the following command at an MS-DOS command prompt, and then press ENTER:

    net start spooler


In addition, you can use UseNonRFCSourcePorts in conjunction with the individual port keys to specify an exception scenario where a specific LPR port needs to be RFC compliant. After adding the UseNonRFCSourcePorts entry, create an individual IP address port using method 1, setting the default for that port back to 0.

If you create or have LPR ports and start the spooler service with SP3, a registry entry is created for each LPR port with a default value of 0. This is "RFC 1179" compliant. Changing this value to 1 makes it non "RFC 1179" compliant and allows for port usage 1024 or above.

If you then apply SP4 or later, the registry values have already been created and need to be reviewed in the case that you delete them and use server-wide settings. Adding new ports after SP4 or later does not automatically create port-specific entries.

With SP4 or later installed, UseNonRFCSourcePorts sets the RFC 1179 compliance to 0 (721-731) and off to 1(>1023). However, entries for individual printers are exceptions to this rule.


RESOLUTION

To resolve this problem, obtain the latest service pack for Windows NT 4.0 or Windows NT Server 4.0, Terminal Server Edition. For additional information, please see the following article in the Microsoft Knowledge Base:

Q152734 How to Obtain the Latest Windows NT 4.0 Service Pack


STATUS

Microsoft has confirmed this to be a problem in Windows NT 4.0 and Windows NT Server 4.0, Terminal Server Edition. This problem was first corrected in Windows NT 4.0 Service Pack 4.0 and Windows NT Server 4.0, Terminal Server Edition Service Pack 4.

Additional query words: lpdsvc lprmon ntfaqmax tcpip

Keywords : kbprint NT4SP4Fix kbbug4.00 ntprint kbfix4.00.sp4 NTSrvWkst
Version : winnt:4.0
Platform : winnt
Issue type : kbbug


Last Reviewed: September 10, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.