Project

General

Profile

Support #895

Modifying a Windows 7 32-bit Driver to Install on a Windows 7 64-bit System

Added by Daniel Curtis almost 7 years ago. Updated almost 7 years ago.

Status:
Suspended
Priority:
Normal
Assignee:
Category:
Tweaks
Target version:
Start date:
05/23/2017
Due date:
% Done:

0%

Estimated time:
Spent time:

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

#1

Updated by Daniel Curtis almost 7 years ago

  • Description updated (diff)
  • Status changed from New to Suspended

Also available in: Atom PDF