Xerox LogoEarlier this week I was asked to investigate a problem with the Xerox Universal Printer Driver. Users complained that printing to a Xerox printer was much slower than printing to an HP printer.

Excel 2007 IconI received a reference document from a user, a rather complex Excel sheet. When selecting multiple tabs it took almost a minute to generate a print preview in Excel 2007 running on Windows 2003 with XenApp 5.

I was aware of a bug in the Xerox Universal Driver where almost 9.000 files were copied into the user’s profile directory (I wrote about that in an earlier post). But this seemed to be another problem.

 

I made a trace with Process Monitor while generating the print preview and this made clear that the driver tries to create the key HKLM\Software\Xerox. This is denied because a user has of course no permissions to write in HKLM:

Process Monitor Trace | HKLM\Software\Xerox | ACCESS DENIED

The Registry Summary shows us that the driver tries to access HKLM\Software\Xerox almost 8.000 times before finally giving up:

Registry Summary | HKLM\Software\Xerox

I changed the permissions on the Xerox key to see what the driver writes to this key. It creates a subkey with the SID of the User under HKLM\Software\Xerox\V5.0\Low.

Then it gives the user special permissions on this key and subkeys so the user is allowed to write there.

Finally it stores a few settings in that key:

HKLM\Software\Xerox

This looks like a serious design flaw because not only is a standard user not allowed to create keys under the HKLM hive but it also means that user settings are stored on a single machine and are not roaming with the user.

The good news was that the time to generate the print preview went back to around 4 seconds which is acceptable considering the complexity of the reference Excel sheet.

I tested in total 3 versions of the Xerox Universal Print Driver and they all exhibited this particular issue:

  • 5.185.42.0N 2011.03.02
  • 5.216.12.0N 2011.06.10
  • 5.246.7.0 2011.12.07