8

I'm reading around and it seems that 32 bit drivers do not work under 64 bit windows. Is this true? since 32-bit applications can run under 64 bit windows it seems ridiculous that 32-bit printer drivers cannot. Are printer drivers run at the kernel level?

Sounds like we're in for driver hell for our RDP environments.

hookenz
  • 14,132
  • 22
  • 86
  • 142

4 Answers4

13

x64 versions of Windows do not support 32-bit kernel mode drivers. Microsoft's statements re: Vista are here (be sure to look at the errata at the bottom-- the article has a major mistake that it corrects), and the same is true for Windows 7 and Windows Server 2008.

There is no magic "switch" you can throw to allow 32-bit kernel mode drivers to work on an x64 kernel. They won't, period. (Yeah, yeah-- I suppose somebody could write some kind of ugly shimming system to make it possible, but nobody outside of Microsoft would have the necessary documentation to write such a thing... Besides, it's easier just to run a 32-bit OS under virtualization in a 64-bit host if you really need that...)

With respect to printer drivers, Easy Print is Microsoft's answer to the nightmare of client-side printer drivers in a Terminal Services environment, but you need Windows Server 2008 on the Terminal Server machine.

Evan Anderson
  • 141,071
  • 19
  • 191
  • 328
  • Thanks for the detail. It was actually Printer drivers I was referring to which I think run in user space. Theoretically it should be possible to run 32 bit kernel drivers through some sort of thunking layer shouldn't it? I've managed to load 16-bit DLL's under 32 bit programs before and also 32 bit dll's under 16 bit programs. Yes I'm a programmer too. – hookenz Dec 06 '09 at 21:49
  • Interesting... http://msdn.microsoft.com/en-us/library/aa489557.aspx – hookenz Dec 06 '09 at 21:53
  • As I recall, Easy Print sucked! – hookenz May 08 '20 at 01:31
  • I tried it in a lab once, but I don't believe I ever actually deployed it anywhere in production. Printing, in general, sucks. – Evan Anderson May 08 '20 at 02:52
1

It is possible to install 32 bit drivers alongside the 64 bit drivers on your print server. Click on the print server, go to the printer options page, and click 'additional drivers' to install the 32 bit version. The name needs to match exactly.

The big printer vendors do have 64 bit compatible drivers. Also, check out the HP Universal print driver and the Xerox Global Print driver. Worked for most of the printers on my network. Xerox's driver promises to work for any printer, anywhere (but I only use it for Xerox machines).

Quinten
  • 33
  • 1
  • 6
  • 1
    I think you missed the part about RDP. As I recall we had some clients connecting into windows server 2003. They were using windows 7 and the drivers didn't work and there were no drivers for their older printers. – hookenz Oct 07 '10 at 09:58
  • A printer that old may be worth upgrading. However, we are using 15 year and older printers that do have 64 bit drivers available. Any good printer probably is Postscript or PCL anyway--it talks a standard printer language and a generic driver will work fine. I haven't run into any problems doing this with RDP either. – Quinten Oct 07 '10 at 12:48
  • @Quenten - thanks, Actually these clients were a number of independant kindergarten's. We were just hosting a third party application on the term server. So it was up to the clients themselves if they wanted to upgrade their printers. We're using TSPrint now instead. – hookenz Oct 09 '10 at 02:44
0

Totally doable. Instructions with screenshots here: http://blogs.technet.com/sbs/archive/2009/02/13/how-to-add-32-bit-print-drivers-to-sbs-2008.aspx. Don't worry that the post is about SBS, it works fine with vanilla x64 versions of W2K8 as well.

Sean Earp
  • 7,207
  • 3
  • 34
  • 38
  • 1
    Bear in mind that you're not executing the 32-bit driver on the SBS 2008 server. You're just putting it in a shared folder to allow applicable 32-bit clients to install the driver automatically. The "hell" situation that the OP is referring to is x64-based terminal server computers with 32-bit clients connecting and expecting to be able to use "Printer Redirection" to send print jobs from the Terminal Server to the client's local printer. Finding 64-bit drivers for older printers may be difficult, especially if the manufacturer is using a lack of 64-bit drivers to sell new printers. – Evan Anderson Dec 07 '09 at 00:46
  • Dang... missed the RDP part. You're right, Easy Print is the way to go. Printer manufacturer's may be using a lack of 64-bit drivers to sell new printers, but they're selling new printers to sell new toner/ink ;) – Sean Earp Dec 07 '09 at 01:10
-2

Some drivers will work, some will not.

In 64 bit versions of Windows Vista, you cannot install drivers that are not "signed". This means that if you're trying to install 32 bit unsigned drivers, you'll run into problems.

Fortunately you can disable this restriction by running the following from the command prompt...

bcdedit /set loadoptions DDISABLE_INTEGRITY_CHECKS
nrgyz
  • 550
  • 2
  • 9