Support #895
Modifying a Windows 7 32-bit Driver to Install on a Windows 7 64-bit System
Description
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
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
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
Analyzing the Donor .INF¶
Opening up the Gadget64.inf file with notepad.exe reveals:
; ; 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}"
Hacking the .INF¶
References¶
Updated by Daniel Curtis over 7 years ago
- Description updated (diff)
- Status changed from New to Suspended