tags:

views:

497

answers:

1

I have packed device driver files .inf,.sys, and .cat into my installer, they are installed into windows\system32 folder and windows\system32\drivers folder, however, when I plug in my device and let windows search for drivers, no drivers can be found. the driver files are valid. any idea how to install device drivers for windows automatically? here's the inf file: ;/++ ; ;Abstract: ; Installation inf for the Android USB Bulk device ; ;--/

[Version] Signature="$WINDOWS NT$" Class=USB ClassGuid={F72FE0D4-CBCB-407d-8814-9ED673D0DD6B} Provider=%GOOG% DriverVer=date,1.0.0009.00000 CatalogFile=androidusb.cat

; ================= Class section =====================

[ClassInstall32] Addreg=AndroidUsbClassReg

[AndroidUsbClassReg] HKR,,,0,%ClassName% HKR,,Icon,,-5

[DestinationDirs] DefaultDestDir = 12

; ================= Device section =====================

[Manufacturer] %MfgName%=Google,NTx86

; For Win2K [Google] ; For loopback testing %USB\VID_18D1&PID_DDDD.DeviceDescTest%=androidusb.Dev, USB\VID_18D1&PID_DDDD ; Android Sooner %USB\VID_18D1&PID_D00D.DeviceDescRelease%=androidusb.Dev, USB\VID_18D1&PID_D00D %USB\VID_18D1&PID_DEED&MI_01.DeviceDescRelease%=androidusb.Dev, USB\VID_18D1&PID_DEED&MI_01 %USB\VID_18D1&PID_DEED&MI_02.DeviceDescRelease%=androidusb.Dev, USB\VID_18D1&PID_DEED&MI_02 ; HTC Dream %USB\VID_0BB4&PID_0C01.DeviceDescRelease%=androidusb.Dev, USB\VID_0BB4&PID_0C01 %USB\VID_0BB4&PID_0C02&MI_01.DeviceDescRelease%=androidusb.Dev, USB\VID_0BB4&PID_0C02&MI_01

; For XP and later [Google.NTx86] ; For loopback testing %USB\VID_18D1&PID_DDDD.DeviceDescTest%=androidusb.Dev, USB\VID_18D1&PID_DDDD ; Android Sooner %USB\VID_18D1&PID_D00D.DeviceDescRelease%=androidusb.Dev, USB\VID_18D1&PID_D00D %USB\VID_18D1&PID_DEED&MI_01.DeviceDescRelease%=androidusb.Dev, USB\VID_18D1&PID_DEED&MI_01 %USB\VID_18D1&PID_DEED&MI_02.DeviceDescRelease%=androidusb.Dev, USB\VID_18D1&PID_DEED&MI_02 ; HTC Dream %USB\VID_0BB4&PID_0C01.DeviceDescRelease%=androidusb.Dev, USB\VID_0BB4&PID_0C01 %USB\VID_0BB4&PID_0C02&MI_01.DeviceDescRelease%=androidusb.Dev, USB\VID_0BB4&PID_0C02&MI_01

[androidusb.Dev.NT] CopyFiles=androidusb.Files.Ext

[androidusb.Dev.NT.Services] Addservice = androidusb, 0x00000002, androidusb.AddService

[androidusb.AddService] DisplayName = %androidusb.SvcDesc% ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 3 ; SERVICE_DEMAND_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %10%\System32\Drivers\androidusb.sys AddReg = androidusb.AddReg LoadOrderGroup = Base

[androidusb.AddReg] HKR,"Parameters","MaximumTransferSize",0x10001,4096 HKR,"Parameters","DebugLevel",0x10001,2 HKR, Parameters\Wdf, VerboseOn, 0x00010001, 1 HKR, Parameters\Wdf, VerifierOn, 0x00010001, 1 HKR, Parameters\Wdf, DbgBreakOnError, 0x00010001, 1

[androidusb.Files.Ext] androidusb.sys

[SourceDisksNames] 1=%Disk_Description%,,,

[SourceDisksFiles] androidusb.sys = 1

;-------------- WDF Coinstaller installation [DestinationDirs] CoInstaller_CopyFiles = 11

[androidusb.Dev.NT.CoInstallers] AddReg=CoInstaller_AddReg CopyFiles=CoInstaller_CopyFiles

[CoInstaller_CopyFiles] wdfcoinstaller01005.dll

[SourceDisksFiles] wdfcoinstaller01005.dll=1 ; make sure the number matches with SourceDisksNames

[CoInstaller_AddReg] HKR,,CoInstallers32,0x00010000, "wdfcoinstaller01005.dll,WdfCoInstaller"

[androidusb.Dev.NT.Wdf] KmdfService = androidusb, androidusb_wdfsect

[androidusb_wdfsect] KmdfLibraryVersion = 1.5

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

[Strings] GOOG = "Google, Inc" MfgName = "Google, Inc" Disk_Description= "ADB Interface Installation Disk" androidusb.SvcDesc = "ADB Interface Driver" ClassName = "ADB Interface" USB\VID_18D1&PID_DDDD.DeviceDescTest="Android Sooner ADB Testing Interface" USB\VID_18D1&PID_D00D.DeviceDescRelease="Android Sooner Single ADB Interface" USB\VID_18D1&PID_DEED&MI_01.DeviceDescRelease="Android Sooner Composite ADB Interface" USB\VID_18D1&PID_DEED&MI_02.DeviceDescRelease="Android Sooner Kernel Debug Interface" USB\VID_0BB4&PID_0C01.DeviceDescRelease="HTC Dream" USB\VID_0BB4&PID_0C02&MI_01.DeviceDescRelease="HTC Dream Composite ADB Interface"

+1  A: 

You have to install your driver by using the SetupAPI functions

To do a driver first install, you have to use SetupCopyOEMInf( ... ).

Your driver might not always be selected when installed in this way, because builtin drivers may be a better match.

A better match is always a WHQL signed driver, then signed drivers and then unsinged drivers.

Christopher
can it be done with simply copying driver files?
No! That does not work. The inf file must be preprocessed. Maybe see http://msdn.microsoft.com/en-us/library/ms790289.aspx
Christopher