Project

General

Profile

Support #895

Updated by Daniel Curtis almost 7 years ago

While trying to setup a device I had purchased some time ago, I came across a problem with lack of 64-bit driver support for my device. And now the company that makes this device is out of business, with no hopes of ever creating a 64-bit driver for my gadget. This is a guide on how I modified the existing 32-bit driver for Windows 7 and installed it on a Windows 64-bit system. 

 *NOTE*: +Abandon all hope+, 32-bit drivers cannot be forced to work on a 64-bit system. Even if you force install them with @pnputil.exe@ 

 h2. Download the 32-bit Driver 

 The gadget I have does not post its driver online anywhere, so the only place to get it is the installation disc, which luckily came with my gadget. 

 This document replaces the original file names and data with example data, so adjust accordingly.  

 First off, I copy the folder containing the driver files named "drivers" (since this gadget has never heard of a setup.exe for installing drivers) to a working folder to tinker with. The file names contained in this folder are: 
 * gadget32.cat 
 * Gadget32.dll 
 * Gadget32.inf 
 * Gadget32.sys 
 * libSystemInfo.jnilib 
 * SystemInfo.dll 

 h2. Double Down 

 Once I had the drivers together in a working directory, I make another copy of the drivers folder. This time I rename the 2nd copied folder to "drivers64" and rename the contents of the folder to: 
 * gadget64.cat 
 * Gadget64.dll 
 * Gadget64.inf 
 * Gadget64.sys 
 * libSystemInfo.jnilib 
 * SystemInfo.dll 

 h2. Analyzing the Donor .INF 

 Opening up the Gadget64.inf file with notepad.exe reveals: 
 <pre> 
 ; 
 ; Gadget32.INF 
 ; 
 ; Gadget Devices, Inc. 
 ; Super Nifty Gadget 
 ; 
 ; 20 April 2012 
 ; 

 [Version] 
 Signature="$CHICAGO$" 
 Class=USB 
 ClassGUID={42AE5A10-B322-84BA-6952-213756220103} 
 provider=%Gadgetsoft% 
 CatalogFile=Gadget32.cat 
 DriverVer=08/20/2011,1.0.229.2 
 ;-------------------------------------------------------------; 

 [SourceDisksNames] 
 1=%Gadget32_INSTALL%,,, 

 [SourceDisksFiles] 
 Gadget32.sys = 1 

 [Manufacturer] 
 %MfgName%=Gadgetsoft 

 ; 
 ; Slightly modified PID, so we don't get competition from the 
 ; old driver for the same piece of USB hardware 
 ; 
 [Gadgetsoft] 
 %VID_1892&PID_01C6.DeviceDesc%=Gadget32, USB\VID_1892&PID_01C6 

 ;[PreCopySection] 
 ;HKR,,NoSetupUI,,1 

 [DestinationDirs] 
 Gadget32.Files.Ext = 10,System32\Drivers 

 [Gadget32.NT] 
 CopyFiles=Gadget32.Files.Ext 
 AddReg=Gadget32.AddReg 

 [Gadget32.NT.HW] 
 AddReg=Gadget32.AddReg.Guid 

 [Gadget32.NT.Services] 
 Addservice = Gadget32, 0x00000002, Gadget32.AddService 

 [Gadget32.AddService] 
 DisplayName      = %Gadget32.SvcDesc% 
 ServiceType      = 1                    ; SERVICE_KERNEL_DRIVER 
 StartType        = 3                    ; SERVICE_DEMAND_START 
 ErrorControl     = 1                    ; SERVICE_ERROR_NORMAL 
 ServiceBinary    = %10%\System32\Drivers\Gadget32.sys 
 LoadOrderGroup = Base 
 
 [Gadget32.AddReg] 
 HKR,,DevLoader,,*ntkern 
 HKR,,NTMPDriver,,Gadget32.sys 

 [Gadget32.Files.Ext] 
 Gadget32.sys 

 [Gadget32.AddReg.Guid] 
 HKR,,DriverGUID,,%Gadget32.GUID% 


 ;---------------------------------------------------------------; 

 [Strings] 
 Gadgetsoft="Gadget Devices" 
 MfgName="Gadget Devices" 
 Gadget32_INSTALL="Gadget Installer" 
 VID_DEAD&PID_BEEF.DeviceDesc="Gadget" 
 Gadget32.SvcDesc="Cytometer USB2.0 Driver" 
 Gadget32.GUID="{23519282-1BDC-35f2-2515-6C3280D130B1}" 
 </pre> 

 h2. Hacking the .INF 

 h2. References 

 * http://www.getdriver.com/how-to/2410/make-windows-7-drivers-work-windows-8-8-1-inf-modding.html 
 * https://stackoverflow.com/questions/5631789/how-to-install-driver-with-a-cat-file

Back