Partilhar via


Printer Problems on Vista x64

I've decided to take the plunge and I'm running Vista x64 on my primary home system.  So far things are going well.  I haven't found any x86 programs that don't run yet.  I'm sure they are out there but I haven't run across them yet.  The driver signing thing has bitten me a few times though like with rivatuner.  One thing I have noticed is that most programs--even open source programs--don't have an x64 build yet.  If they do, it is usually out of date and unsupported.  Both Thunderbird and Vim fall into that category.  It's unfortunate really.  There's no excuse not to have a 64-bit build.  Perhaps with Vista being more readily available as a 64-bit app some of this will change.  Enough of that though.  On to the reason for this post.

My wife's printer appears to have died when I toggled a circuit breaker to install a new light.  To get her running while we try to troubleshoot and perhaps get a new printer, I attempted to attach her to the Brother 5150D laser printer attached to my Vista machine.  Sharing in Vista is easy and I could see the printer from her Windows XP machine.  However, when I tried to install it, there were drivers needed.  That makes sense as the drivers I installed on the Vista box were x64 drivers.  No problem.  I figured I would just install the drivers for x86 locally and be done with it.  It's never that easy.  I downloaded the drivers but the system wouldn't recognize them.

Next I decided to just install the drivers on my Vista box so that her machine would find them automatically.  I downloaded the right drivers there, went to the printer sharing, selected sharing and additional drivers.  I selected x86, clicked ok and was prompted for the drivers.  When I pointed it at the drivers, I got the following error:  "The specified location does not contain the driver Brother HL-5150D for the requested processor architecture."  This had me stumped.  It was the right driver and the right architecture.  I did some searches on Brothers' site and on live.com to no avail.  Eventually I ran across a forum post that pointed me at a post on another forum which eventually had enough information for me to discern the solution.

The problem appears to be a mismatch in the name of the device.  When I looked at the x86 inf, I saw the following (edited to remove extraneous info):

[DriverName]
"Brother HL-5150D series"  = BH5150D.PPD,USBPRINT\BROTHERHL-5150D_SERIF199,LPTENUM\BROTHERHL-5150D_SERIF199,BROTHERHL-5150D_SERIF199

Notice that the system is saying it cannot find the "Brother HL-5150D" yet the inf is for a device called "Brother HL-5150D series".  Firing up Vim, I changed the entry as follows:

[DriverName]
"Brother HL-5150D"  = BH5150D.PPD,USBPRINT\BROTHERHL-5150D_SERIF199,LPTENUM\BROTHERHL-5150D_SERIF199,BROTHERHL-5150D_SERIF199

Problem solved.  The x86 drivers are recognized by Vista and installing the shared printer on XP now works perfectly.

The next question though is where did the name come from.  I found some x64 drivers I downloaded to my machine in the temp folder (why they insist on putting drivers there I have no idea.  I'm sure it makes it easy for mom to find them when installing right?).  These have the word series in them.  Strange.  After looking in setupapi.dev.log, I found the file prnbr001.inf.  It contained these lines:

[Brother.NTamd64]

"Brother HL-5150D"                                            = MS_BRH5150U.GPD,BROTHERHL-5150D_SERIF199,Brother_HL-5150D_USB,Brother_HL-5150D ; Hardware ID

Looks like I found my culprit.  Vista ships with drivers for the printer but the name of the device in those drivers does not match the name of the device in the driver Brother has on their web site.

Hopefully this will get indexed by the servers in the cloud and help someone out there solve their problem.

There is one mystery left though.  For some reason findstr can't seem to find 5150 inside the prnbr001.inf file.  This command: "findstr /in 5150 prnbr001.inf" won't find it.  If anyone knows why that might be the case, let me know.

Comments

  • Anonymous
    January 07, 2007
    Findstr is ANSI-only, so it doesn't find matches in Unicode files.  Try this longer-winded search:  for %i in (*.inf) do type %i | findstr /in 5150 Barry

  • Anonymous
    January 07, 2007
    Thanks Barry.  That would explain it.

  • Anonymous
    January 08, 2007
    WHen I installed Vista 64 on my computer, I did a bit of checking to see if HP had any drivers for my particular printer, an HP 1210xi All in One. No Vista drivers, but the was a beta 64 XP driver. Didn't matter, as everything I tried for this device failed. I've set the issue aside for the moment, but it's good to know that I'm not the only one having these problems.

  • Anonymous
    January 08, 2007
    vim x64 binaries are available (amd64 and ia64) http://www.vim.org/download.php#pc points to http://www.georgevreilly.com/vim/

  • Anonymous
    January 08, 2007
    Vim x64 binaries are available and I have them, but there is no setup package there.  You get vim but none of the nice UI extensions, etc.

  • Anonymous
    January 30, 2007
    The comment has been removed

  • Anonymous
    January 30, 2007
    Thanks Alex.  As I wrote above, I found another solution but this is a good one to have in the proverbial back pocket.  I actually tried to install the printer driver locally with no luck.  If I had known about the redirection, that would definitely have solved my problem.

  • Anonymous
    February 05, 2007
    That fix helped me also. I have a hp deskjet 932c printer on an xp home machine. I can now connect to it. Is microsoft or hp gonna fix this in the future?

  • Anonymous
    February 11, 2007
    I have upgraded to Vista Ultimate 64 bit and since then i have not been able to use my 2 month old Laser printer, a koinica minolta 2480mf. Konica, suprisingly, have stated they have no intention of providing a 64bit driver and therefore i should return the printer! Problem - i like the printer and want to keep it, query - would a printer server solve this or will Vista still ask for the drivers?

  • Anonymous
    February 12, 2007
    I'm sorry to hear that Konica isn't supporting their stuff for 64-bit.  I've had pretty good luck finding drivers so far.  Most of the major companies--even Brother--have had them. I haven't actually used a print server but I think you'd still need the drivers.

  • Anonymous
    February 17, 2007
    Why does microsoft do that. thank you for the explanation. I did wonder for my Canon Pixma IP4000 why it wouldn't take the driver - Vista 64 calls is Canon Inkjet Pixma IP400!

  • Anonymous
    February 19, 2007
    AlexR Thank you my friend!  I was pulling my hair out trying to connect an XP PC to a printer I was sharing on Vista64.... JohnD

  • Anonymous
    February 20, 2007
    Thanks for posting this... you helped me solve the problem of my PC not wanting to share my printer with my sister's 32-bit XP.

  • Anonymous
    February 23, 2007
    Thanks guys, useful thread.  Had the same problem as in the original post, and fixed by editing the inf file.  Problem then was that it was unusable; XP machine took 60 secs to respond to anything to do with the new printer.  Thanks for the reminder on the local port redirect - that must've been how I had it running before reinstalling XP on the laptop... Cheers... (Vista64HomePremium on media server, XPSP2 on laptop)