Microsoft KB Archive/832219

From BetaArchive Wiki
Knowledge Base


Users cannot print after you install a service pack, update rollup, or printer hotfix on a server in Windows 2000 or in Windows Server 2003

Article ID: 832219

Article Last Modified on 11/26/2007



APPLIES TO

  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Service Pack 4
  • Microsoft Windows 2000 Service Pack 3
  • Microsoft Windows 2000 Service Pack 2
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Service Pack 3
  • Microsoft Windows 2000 Service Pack 2
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
  • Microsoft Windows Server 2003, Datacenter x64 Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003, Standard x64 Edition
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)



Important This article contains information about how to modify the registry. Make sure that you back up the registry before you modify it. Make sure that you know how to restore the registry if a problem occurs. For more information about how to back up, restore, and modify the registry, click the following article number to view the article in the Microsoft Knowledge Base:

322756 How to back up and restore the registry in Windows XP and Windows Vista


SYMPTOMS

After you install Microsoft Windows 2000 Service Pack 2 (SP2), a Windows Server 2003 service pack, an Update Rollup, or a hotfix that updates the Unidrvui.dll file, users may experience both of the following symptoms:

  • When a client or server tries to print, the Print Spooler service appears to stop responding (or "hang"), and the following error message appears:

    Unable to create Print job.

  • When you try to print a test page from the server console, you receive the following error message:

    Test page failed to print.


CAUSE

This behavior may occur if you install the service pack or hotfix package on a server that has many Unidrv-based Printer Control Language (PCL) printer drivers.

When you install a service pack or hotfix file that updates Unidrvui.dll on a server with many Unidrv-based PCL printer drivers, the server may spend a long time (up to 2 hours) regenerating the parsed binary printer description files (.bud files) that are used to increase spooler efficiency for these drivers. During this time, Print Spooler cannot receive incoming print jobs and may return messages to clients that indicate that the print queue is full. This is a one-time parsing operation and does not occur after the parsed binary .bud files are successfully regenerated.

Binary .bud files that are generated from generic printer description (GPD) files must be regenerated because the GPD parser file version is changed. After all the Unidrv-based PCL drivers are parsed, the spooler can again receive print jobs. Because of this, Microsoft recommends that you schedule service pack and hotfix installations on servers with many Unidrv-based PCL printer drivers to accommodate this up-to-two-hour .bud file compilation.

RESOLUTION

To resolve this issue, schedule sufficient time for the server to complete the parsing of all Unidrv-based printer drivers for each upgraded driver file, and then schedule sufficient time for each printer that uses these files.

WORKAROUND

Warning Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall the operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk.

If you cannot wait for the server to complete the parsing of all the Unidrv-based printer drivers, manually remove all cached binary printer description files (.bud files), and then let them be automatically re-created. Depending on the speed of your server, this automatic re-creation may be completed in a shorter time. Typically, this operation is completed within 30 minutes.

Note When Print Spooler starts, it installs a newer version of Unidrv.dll. As a result, the .bud files are out of date. The .bud files are the compiled versions of .ppd files and can be completely regenerated from those .ppd files. Because of this, you can remove the .bud files. To do this, follow these steps:

  1. Stop the Print Spooler service. To do this, run the following command from a command prompt:

    net stop spooler

  2. Search for all .bud files, and then make sure that they are stamped with the current time and date. The files appear with today's date.
  3. Remove all .bud files that have a date and time stamp that is before today's date. These files are located in the following folder:

    %SYSTEMROOT%\System32\Spool\Drivers\w32x86\3

  4. Remove the following registry key if it exists:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\PostSPUpgrade

    To do this, follow these steps:

    1. Click Start, click Run, type regedit in the Open box, and then click OK.
    2. Locate, and then click the following registry subkey:

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print

    3. On the Registry menu, click Export Registry File.
    4. In the File name box, type printkey, and then click Save.

      Note If you later have to restore the Print registry key, you can do so by double-clicking the Printkey.reg file that you saved.
    5. Locate, and then click the following registry subkey if it exists:

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\PostSPUpgrade

    6. On the Edit menu, click Delete, and then click Yes to confirm the removal of the PostSPUpgrade registry key.

      Note The PostSPUpgrade registry key may reappear after you restart the computer. This behavior occurs if other .bud files exist that have not yet been parsed. After these files have been parsed, this registry key is automatically removed.
  5. Restart the server.

After you restart the server, printing functionality is available to users after about 30 minutes.

MORE INFORMATION

In the .NET Framework 3.0, the unidrv.dll file is now included with XPS printing. The unidrv.dll file can also trigger this behavior.


Additional query words: Windows 2000 Update Rollup 1 891861 900345 Windows 2000 Service Pack 3 Windows 2000 Service Pack 4 Windows 2000 SP3 Windows 2000 SP4

Keywords: kbprint kbprb KB832219