New
#1
Trying to install x86 drivers for Canon S800 printer on x64 Win7
(1) Two machines on the home network: (a) Win7 x64, (b) WinXP x86.
(2) Two printers connected locally via USB to Win7 machine: (a) Canon MF4370dn, (b) Canon S800.
Both printers are now installed successfully on the Win7 machine.
(3) The S800 was supported immediately by Win7 as soon as I plugged in the USB cable. Drivers were installed successfully, and there was no problem at all.
(4) In contrast, the MF4370dn was not installed successfully when I plugged in the USB cable. However I was able to download a Win7 x64 driver installer file from the Canon support site (MF4370-4380_MFDrivers_Win_x74_EN-8.exe).
Running this self-extracting EXE and then running the resulting SETUP.EXE didn't actually install the printer, but it did plant the proper drivers where Win7 could then find them.
I then unplugged the USB cable and re-plugged it, and this time the Win7 new device discovery repeated and WAS now able to locate the necessary x64 drivers (planted by the EXE I mentioned above) and now the installation of the MF4370 was completed successfully.
(5) Next, I wanted to "share" the two printers which were locally connected to the Win7 x64 machine, and make them accessible to the WinXP x86 machine for printing.
This is standard procedure, by using the "Additional Drivers" button on Printer Properties -> Sharing tab. You simply have to check the x86 radio button, push the OK button, and then navigate to where the INF file is located for the x86 driver. Win7 theoretically finds it there, installs it as a second driver for the printer, and now shows both x64 and x86 drivers as installed -> "YES".
Then, when the network view of the Win7 machine from the WinXP machine is opened, and the shared printer(s) selected and right-clicked, selecting the "Connect..." item causes Win7 to ship the x86 driver over to WinXP, a connection through a virtual USB port type is established (it shows as USB001 or similar in the PORT name), and bingo... you have the printer connected to and hosted by the Win7 x64 machine now available for printing both by Win7 and also WinXP x86.
This is how it is supposed to work.
(6) I was again able to locate the x86 drivers for the MF4370 printer on the Canon site (MF4370_MFDrivers_Win_x32_us_EN-7.exe).
Again, running this self-extracting EXE produces what would normally be run as a SETUP.EXE on the WinXP machine. But in this case, I didn't run SETUP.EXE. Instead, I went through the above "Additional Drivers" process on Win7 as I described above, navigating to the expanded folder from this 32-bit driver file which contained the needed INF file.
And, the process was successful and the second x86 driver was now marked as "installed YES".
I then went through the "Connect" dialog on the WinXP machine, selecting the "shared" MF4370 printer which was visible in the network view of the Win7 machine from WinXP. And exactly as is supposed to happen, Win7 shipped across the newly installed x86 driver to WinXP, the USB001 port was created and the connection established to the virtual USB printer, and bingo... I now can print on the MF4370 from both Win7 x64 and also from WinXP x86.
Excellent.
(7) Now... I wanted to repeat this exact step (6) above, but for the second printer, the S800.
Unfortunately, Canon does NOT provide a driver file for the S800 WinXP that contains the usual SETUP.EXE and INF file, which would be usable for the "Additional Drivers" install of Win7 (as I just did successfully for the MF4370 printer, because Canon DID provide a proper driver package for that printer).
Instead, Canon provides a JAVA-based installation file for the S800 on WinXP (S800_2KXP_v152.exe). If you run this file on WinXP it will absolutely run perfectly and to completion, and WILL install the S800 printer. But the S800 is presumably expected to be connected locally via USB, to the WinXP machine. And if you connect the printer locally to that WinXP machine, it DOES print perfectly.
However this is unacceptable for use in the "Additional Drivers" dialog of Win7, when trying to add that second x86 driver for the S800 that's already installed successfully in x64 mode on Win7.
In fact, if I try to go through the "Connect..." process on WinXP, having selected the visible "shared" S800 printer on the Win7 machine, the step which would normally ship the presumably installed second x86 driver over from Win7 to WinXP obviously fails, because that second x86 driver is not installed on Win7.
So... for the moment, complete failure. I could not see any way to get the S800 locally attached to the Win7 machine to be usable as a printer on the WinXP machine.
(8) My first attempt at workaround was to actually RUN that v152 JAVA-based driver software installer on the WinXP machine. I figured that if the true x86 driver was already installed on WinXP, then you'd think Win7 wouldn't need to ship the x86 driver over at "Connect..." time. Instead, only the connection process would need to be performed (and the driver already installed on WinXP used), and this should work.
Well, not the case unfortunately. Win7 never really cared that the needed print driver was already installed on WinXP. It still wanted to ship its own second x86 driver across and it didn't have one to ship. So the "Connect..." process simply failed and aborted.
--->> no printer added to WinXP.
(9) I then thought well maybe I can just "ADD PORT", to re-connect the now installed S800 printer on WinXP (from that JAVA-based printer/driver installer that I'd previously run in step (8)) from what it would have wanted to be the locally USB attached S800, to the S800 on the Win7 host machine (whose name is Gateway).
So I did just that, specifying the newly added port as \\Gateway\Canon Inkjet S800 (which is the true printer name of the S800 on the Win7 machine). WinXP seemed to be happy, and no errors were presented. Looked good.
I then tried to print a test page, and unfortunately the document simply landed in the WinXP print queue for the printer and never went anywhere. Obviously it was NOT shipped across to Win7 for printing.
I now have decided that this is the wrong thing to do, as the Win7 machine isn't really a "print server", where this kind of port designation might be appropriate. So this is simply wrong, to think I could "ADD PORT" and designate it that way.
Of course what I really wanted to create was the same type of USB001 port that got built automatically for the other MF4370 printer (from the successful "Connect..." dialog, because the second x86 printer driver DID get installed successfully on Win7, because Canon DID package the WinXP x86 driver as an INF file so that Win7's "Additional Drivers..." process was happy).
But there's no way to manually do this creation of the USB001 connection. It appears to be done by WinXP when "Connect..." is successful (dependent on that second x86 driver installed properly in Win7), but if "Connect..." is not successful then you have no way of building that USB001 manually.
(10) I then spent 6 hours on the phone with both Canon and Microsoft ($59 charge, of course, but I can accept that), trying to figure out how if at all possible this problem can be resolved.
The real problem, of course, is that Canon did NOT build the WinXP x86 driver package for the S800 "conventionally", based around a SETUP.EXE and an INF file, as they HAD done for the MF4370. Instead, they built this JAVA-based installer for the S800 driver on WinXP... which works great for WinXP but is useless anywhere else, and especially useless for Win7's "Additional Drivers" dialog.
Microsoft located what they believed to be the acceptable x86 driver on their support site, based on the S800's hardware id of "CanonS8001A09" (from the printer's Properties -> Details -> Hardware ids on Win7).
This resulted in my downloading a file named:
X86-all-4455_99f589b0fa94cc06810c1edf4a11485d29d33580.cab
And when I unpacked that, sure enough it produced an INF file (PRNCA00t.inf) as well as an I386 sub-folder containing all of the relevant DLL's, GPD's, etc.
So far, this seemed promising.
(11) I then tried to use this INF file location in the "Additional Drivers" dialog for the S800 printer to add that second x86 driver. It looked like it started ok, but then stopped asking me for the location of where it could find NTPRINT.INF
Turns out this is a well known and annoying Win7 issue faced (and eventually conquered) by a number of other users. Thanks to this thread on another forum I was able to satisfy Win7's desire for NTPRINT.INF successfully. Actually, this is only a 1-time problem and once you solve it (and let Win7 install it) you will never be asked for it again for any other "Additional Drivers" dialogs you may go through for other printers.
(12) Anyway, having now gotten past this first obstacle in the use of the Microsoft-provided Canon S800 INF folder that actually had appeared to get started properly before running into the NTPRINT.INF issue, I was fully expecting the "Additional Drivers" dialog to now complete successfully.
Well, no such luck.
Instead, I now got another request from Win7... asking me to point to the location where the INF file for the "core print driver" was located. And the print driver it was looking for was [804413D9-64A9-405E-B65F-DA8B8EBAC932], which is in fact the S800 driver name.
I did a Google search on that driver name value, and was able to locate another INF file (PRNCA00x.inf) which seemed to be structured a bit differently than the PRNCA00t.inf file contained in the Microsoft-provided Canon S800 folder. So I placed this second INF file in the same folder along with the Microsoft INF file, and tried again.
(13) Well... no luck. Win7 continues to ask me for that driver. No matter whether I point to PRNCA00t.inf or PRNCA00x.inf I get the same result:
So I don't know if it's really using PRNCA00t.inf or PRNCA00x.inf. But regardless, it's failing to find whatever it really wants to find.
(14) Again, I strongly believe the culprit here is Canon, which failed to provide an INF-based driver installer file for WinXP for the S800, as in contrast they did do for the MF4370.
So whereas the x86 driver for the MF4370 installs perfectly as a second driver using "Additional Drivers" on Win7, there is no such ability for the S800.
Hence my request for help.
For reference by anybody who cares to help out and suggest how I might alter my approach and hopefully achieve success (which is to be able to print to the Win7-hosted S800 from the WinXP machine), I'm also attaching a ZIP file of the two INF files I mentioned above.
Many thanks in advance for any printer expert who might have some thoughts.