Printing on Windows 7 and Server 2008 R2 with HP Universal driver

This is using the version 5.2 (5.2.9.8874) driver (at the moment). Seeing a few issues, shall we say…

  • Print server is 32-bit Server 2008, but I’ve also tried Server 2008 R2 (64-bit obviously) with the same results. Print servers have both 32-bit and 64-bit versions of the driver installed for the shared printers.
  • Clients are mostly 64-bit Windows 7 and Server 2008 R2 XenApp 6.0

The issues I’m seeing are as follows:

  1. Driver appears to be being pulled down from the print server each time you log on to a client if you have a connection to a network printer (that uses the Universal driver) in your profile, or you try and add a connection to such a network printer. In doing this it creates files of the form SETxxxx.tmp in \Windows\System32, where xxxx is a hexadecimal number. These files are actually copies of DIFxAPI.dll, rename one to have a .dll extension and you get the following from the Properties dialogue, Details tab:
    File description: Driver Install Frameworks for API library module
    Type: Application extension
    File version: 2.1.0.0
    Product name: Driver Install Frameworks API (DIFxAPI)
    Product version: 2.1
    Copyright: © Microsoft Corporation. All rights reserved.
    Size: 497 KB
    Date modified: 25/02/2009 19:01
    Language: English (United States)
    Original filename: DIFxAPI.dll
    The other thing is that the driver seems to be being pulled down via Package Point and Print, as if you block this via group policy the printer becomes unusable. The blocking techique I used is to set the policy Package Point and print – Approved servers, and enter a server name that does not exist (or at least is not the name of your print server), as detailed in CTX128786. When a user tries to print to it they get a warning box asking:
    Do you trust this printer?
    Windows needs to download and install a software driver from \\<printserver> computer to print to <shared printer>. Proceed only if you trust the \\<printserver> computer and the network, and then restart the print job.
    The “Install driver” button has a blue and yellow UAC shield on it. In my environment I’ve configured UAC to decline all prompts for elevation, and so the upshot of this is that users can’t print at all.
    Thus, blocking the driver being downloaded each time seems not to be viable, and so as a workaround I am deleting the SETxxxx.tmp files every couple of days as part of the maintenance process when the servers reboot – these files actually filled up one of the my server system drives, I had over 10,000 of them before I noticed this issue.
    Update: To fix this issue, also set the following group policy to Disabled: Point and Print Restrictions. That said, even with both these policies set I’m still getting the .tmp file being created on the XenApp servers, but the Win7 PCs and the XenApp servers have quite a few differences to their Group Policies, so I’m assuming there is another setting somewhere that’s controlling this. More info if/when I find it.
  2. Printers are taking a long time, several minutes, between logging on and when they appear within the Print dialogue in applications. There is a hotfix that potentially might resolve this, KB2457866. However initial testing seems to show that it’s only stopping the error being logged, and the delay with the printers showing up within application Print dialogue boxes is still there. I know it talks about a delay with the printers showing up via Control Panel, but I’ve not been able to test this as I block my users from seeing the Printers control panel.
  3. When users print sometimes the print job never gets to the server. Investigating this showed the following error being logged in the Microsoft-Windows-PrintService/Admin event log:
    The document <some doc name>.docx, owned by <some username>, failed to print on printer {381FD361-118F-48D0-8B9D-7246FF78F909}. Try to print the document again, or restart the print spooler.
    Data type: NT EMF 1.008. Size of the spool file in bytes: 26988. Number of bytes printed: 0. Total number of pages in the document: 2. Number of pages printed: 0. Client computer: \\<computername>. Win32 error code returned by the print processor: 5. Access is denied.
  4. The following event being logged in the Microsoft-Windows-PrintService/Operational event log (which you need to enable via the Event Viewer snapin)
    Source: PrintService
    Event ID: 822
    Level: Error
    Task Category: Client Side Rendering reverting to Server Side Rendering
    Keywords: Client Side Rendering (CSR)
    OpCode: Spooler Operation Failed
    Unknown print processor (hpzpplhn) or invalid data type (RAW), error 0x706, Client Side Rendering is disabled. See the event user data for more context information.
    If you convert that error number (0x706) from hexadecimal to decimal you get 1798, and if you look this up you find that the error description is: Print processor is unknown.
  5. Also in the Microsoft-Windows-PrintService/Operational I sometimes see:
    Source:        Microsoft-Windows-PrintService
    Event ID:      820
    Task Category: Client Side Rendering reverting to Server Side Rendering
    Level:         Error
    Keywords:      Client Side Rendering (CSR)
    User:          SYSTEM
    Description:
    Client side rendering to \\CSR|<print server name>\{0EF995D2-8256-4609-B831-9284A69F31C0}, Job 3 failed, error code 0x5. The print spooler service will retry server side rendering. See the event user data for more context information.

In the 5.3.1 driver (5.3.1.10527) release notes it’s claimed to resolve a few speed related issues: delays when creating new client connection to print servers, and file permissions causing slow installs in Windows 7 and Server 2008 R2 point and print clients.

Interesting response to a support call logged with HP for this issue:

This issue is due to the sharing the driver between server and clients. I would like to inform that, sharing is not recommended as it will result in unknown problems. Hence I would request you to check by locally installing the printer driver i.e. the same UPD directly on any client PC and then check performance issues. I guarantee there will be no issues. Since you are sharing and there is group policy restriction in place, it will be slow every time and not work correctly. So only solution local install on each PC of UPD instead of -> only 1 copy on server and sharing between clients.

But then they decided not to help anymore as the printer I happened to pick to log the fault against (you can’t log a fault against the driver itself) had unfortunately gone out of warranty. I have several hundred in warranty printers but they seemed unable to grasp this.

I then tested installing the driver on a PC in a few different ways, but on connecting to the printer on the print server received the following error in the Microsoft-Windows-PrintService/Admin log:
Event ID: 354
Task Category: Initializing
Level: Error
Keywords: Classic Spooler Event
Description: \\SERVER\HP Universal Printing PCL 5 (v5.2) initialization failed at \\server\print$\BIDI\HPBOID.DLL. Error: 2. The system cannot find the file specified. . This can occur because of system instability or a lack of system resources.

More info as I get it…

This entry was posted in Windows and tagged , , , , , , , , , , , , , , , , . Bookmark the permalink.

10 Responses to Printing on Windows 7 and Server 2008 R2 with HP Universal driver

  1. I moved to the 5.3.1 driver to eliminate spooler crashes and memory leaks. No problems so far but the Printer Auto Select cannot be set to not available. I like doing this to force a job to a specific tray. Once you reopen the settings it defaults back to Letter. It has not caused a problem yet. Thought you would like to know.

  2. alsandford says:

    I believe it might be to do with permissions on difxapi.dll, which MS changed since 2008 R2. More restrictions. So the workaround for the existing issue, is to give difxapi.dll (in system32) the same permissions as it had on previous platforms.

    This issue may have been fixed in 5.3.1, which is probably why it fixed the problem for Chris Robinson.

  3. rcmtech says:

    Noticed that v5.4.0 of the driver was released on the 1st of this month (Dec 2011), in the release notes one of the issues mentioned as being fixed is the spooler crashing on Windows Server 2008 x86. So I’m going to try v5.4.0 and see how that goes. Am assuming that it also contains all the fixes from v5.3.1.
    Release notes here: ftp://ftp.hp.com/pub/softlib/software12/COL40853/ds-99397-3/UPD_5.4.0.11744_ReleaseNotes.doc

  4. rcmtech says:

    Still having issues even with the v5.4 driver, especially around duplex and the printout not being sent in duplex despite that option being selected via the printer properties on the PC before printing. Am getting different results from two network printers on the same Windows print server and same PC…!

  5. rcmtech says:

    Re. the issues in my comment from 32rd Feb. above, it seems as though the issues were related to the instance of the shared printer on the Windows Server 2008 print server. It is the same printer that I created back in August/September 2011 with the 5.2 driver, which then had its driver changed for the 5.3.1 driver and finally to 5.4. Creating a new shared printer on the same server, using the already installed 5.4 driver, seems to perform much better. This also seems to resolve issues around the printer not adding to Windows 7 PCs, the original printer would not add whereas the new printer would.

    • Marc says:

      Hello,

      did you recreate the printers with the latest print driver from HP? Is it working more stable?
      We have a lot of problems with HP UPD. Temp files, crashing spooler, long logon times and so on. On windows 2008r2 terminalserver.
      Maybe you have some experience. Did you install the printer driver with version number? There is a dialog to select during installation. Instell with version number and without. We have installed the 5.2 without and so all printers were updated on the print server, but big problems on our terminalserver. also the installation tooks hours to complete :-(

      Maybe you can share your experience with us.
      thank you

      Regards

      Marc

      • rcmtech says:

        Yes, I had to recreate the printers using the v5.4 driver. 5.4 was a lot better than 5.2 and 5.3.1. Changing an existing printer with an older driver version (e.g. 5.2) to use 5.4 via the printer properties dialogue caused wierdness to persist, even with the newer driver. I had to recreate all my printers from scratch (and I have hundreds).

        I’m now trying the v5.5.0 driver. I am adding the driver with the version number in the name, i.e. HP Universal Printing PCL5 (v5.5.0).

  6. Marc says:

    Hello.
    First thanks for your reply. Have also hundreds of printers using hp upd.
    Do you have experience with v5.5? Maybe i have to switch directly to this one.
    Did you get problems with clients after recreating the printers? Printer driver update maybe?
    Most users are working on 2008r2 terminalserver, at the moment we have 5.3.1 installed. But on some terminalserver there is no way to deinstall hp upd.
    Error “driver in use”. But no client connected, no local/network printer with the driver at the moment we are tryin to remove the driver.

    Regards

    • rcmtech says:

      Have been using 5.5.0 for a few months now and no issues that I’ve been made aware of. I’ve now moved to a different print server (2008 R2 cluster) and have rebuilt all terminal servers. The next challenge will be what to do with several hundred printers on a different print server that are all running the v5.0 HP UPD… Not had any issues with that old version as such, but the terminal servers those users are on are 2003 and the rest of the users are on PCs.

  7. erik15_15@yhaoo.ca says:

    I had a lot issues with HPUPD 5.4(32 and 64 bit) upgrade from 5.1 on windows 2003 server R2(32 bit) Clients: Windows 7-32-64 bit, Win Vista, WinXP.
    To make long story short, After the upgrade to HPUPD 5.4. Any new client(workstation) could not map a network printers. “Error: windows cannot connect to the printer” but all the pre existing worstations kept their LAN printers, i mean they are still accessing the network printers but they got the error above when trying to add a new LAN printer after the HPUPD 5.4(32-63 bit).
    FIX: Delete the registry key: Hkey_Local_Machine\cluster\resources\printers\Name of the shared printer\copyfiles\BIDI.
    Notes: You need to find the ressource where your print spooler resides
    One more thing, Make sure you export the registry key prior to deleting it.
    I can be reached at erik15_15 at yahoo.ca

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s