Wednesday, April 4, 2012

Adaptec 2940 AU PCI SCSI-2 host adapter and Windows 7 (64-bit)

O.K. so it took a few years... I finally got to the point where I don't want to deal with Vista just to access SCSI devices in windows...

So, here are the instructions on how to use the Vista driver (djsvs.sys) to access an Adaptec 2940AU PCI SCSI-2 HBA in Windows 7...

First, get the djsvs.sys driver - either from the 'net or from a Vista distribution.
Second, create djsvs.inf from the following:

[Version]
signature="$Windows NT$"
Class=SCSIAdapter
ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
Provider=%ADP%
DriverVer=06/21/2006,5.5.5.0


[SourceDisksNames]
1 = %Floppy_Description%,,,


[SourceDisksFiles]
djsvs.sys = 1,,

[Manufacturer]
%ADP%=ADAPTEC,NTx86,NTamd64

[ADAPTEC.NTx86]
%PCI\VEN_9004&DEV_6178&SUBSYS_00000000.DeviceDesc% = aic78xx_Inst, PCI\VEN_9004&DEV_6178&SUBSYS_00000000
[ADAPTEC.NTamd64]
%PCI\VEN_9004&DEV_6178&SUBSYS_00000000.DeviceDesc% = aic78xx_Inst, PCI\VEN_9004&DEV_6178&SUBSYS_00000000

[aic78xx_Inst]
CopyFiles = @djsvs.sys

[aic78xx_Inst.Services]
AddService = aic78xx, 0x2, aic78xx_Service_Inst, Miniport_EventLog_Inst

[aic78xx_Service_Inst]
ServiceType    = 1      ; SERVICE_KERNEL_DRIVER
StartType      = 0      ; SERVICE_BOOT_START
ErrorControl   = 1      ; SERVICE_ERROR_NORMAL
ServiceBinary  = %12%\djsvs.sys
LoadOrderGroup = SCSI Miniport
AddReg         = pnpsafe_pci_addreg

[pnpsafe_pci_addreg]
HKR, "Parameters\PnpInterface", "5", 0x00010001, 0x00000001

[create_initiator_lu]
HKR, "Parameters\Device","CreateInitiatorLU",0x00010001,1

[Miniport_EventLog_Inst]
AddReg = Miniport_EventLog_AddReg

[Miniport_EventLog_AddReg]
HKR,,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\IoLogMsg.dll"
HKR,,TypesSupported,0x00010001,7

[LegacyScsiportValues]
HKR,Scsiport,BusNumber
HKR,Scsiport,LegacyInterfaceType
HKR,Scsiport,SlotNumber
HKR,Scsiport

[DestinationDirs]
DefaultDestDir = 12            

[Strings]
INF_PROVIDER="Microsoft"
ADP="Adaptec"
FLOPPY_DESCRIPTION="ADAPTEC SCSI Adapters - Microsoft Disk"
PCI\VEN_9004&DEV_6178&SUBSYS_00000000.DeviceDesc = "Adaptec AIC-2940 Controller"

Third - create a folder "Adaptec 2940 Driver" for both of these files (.sys and .inf).

Finally, in Device Manager, right click on the unknown device, update driver, and point to the folder you just created...