We recently migrated to a Windows 2003 R2 Enterprise x64 Server (SP2) as a print server. For the most part, we found that it wasn't too hard to get both a x64 and a x86 driver for the printers we were using. Shortly after switching, we noticed that certain printers were taking far, far longer to spool their jobs. In particular, we noticed that our HP LaserJet 8100 was taking approximately 10-20 seconds to spool a job compared to its previous behavior of spooling almost faster than you could click.
At first we suspected it might have something to do with the x64 version of Windows managing the x86 client print requests. However, the behavior only seemed to manifest on certain printers. We eventually narrowed it down to the HP Universal Print Driver. Any printer using that driver was extremely slow spooling. HP doesn't offer a printer specific W2K3 64-bit driver for our LaserJet 8100, only the universal driver is available (as of 2/25/09). They do offer an 8100 specific driver for 32-bit systems in addition to the Universal driver.
Unfortunately, the 32-bit specific drivers cannot be added to the x64 printer share because of the difference in print name. Apparently you're only able to add 32-bit drivers if they are named exactly the same thing (i.e. they must both be Universal Printer drivers). This has created quite a dilemma. The performance is so poor with the universal print drivers, it makes multi-print jobs take many times longer than they did before. Doing a stack of prints for our Engineering team literally takes hours where before it took a half hour.
It seems our options are limited. If we return to an x86 Windows Install to support the 8100 specific drivers, we lose the ability to support x64 systems. It would be a waste of money and resources to create both 32-bit and 64-bit print servers. It would be a lot nicer to eliminate the Universal print drivers or find a way to improve their performance.
Is there a solution to improving the Universal Print Driver performance or am I stuck going back to a x86 print server?