2011-10-28 135 views
3

我在Windows XP(x86,Service Pack 3)上安装WinUSB驱动程序时遇到困难。我遵循Microsoft WinUSB准则,使用inf文件,签名的cat文件(使用Inf2cat制作)和相关的WinUSB协同工具创建签名的驱动程序包。一切都在Windows7上完美运行,但在XP上安装失败。WinUSB驱动程序安装失败XP(在Win7上正常工作)

INF文件如下:

[Version] 
Signature = "$Windows NT$" 
Class = "Digitool Processors" 
ClassGuid={D851949D-3793-4FA6-93F5-E86CCDCFD6F9} 
Provider = %ProviderName% 
CatalogFile=DigitoolCatFile.cat 
DriverVer=10/28/2010,1.0.0.0 

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

[ClassInstall32] 
Addreg=MyDeviceClassReg 

[MyDeviceClassReg] 
HKR,,,0,%ClassName% 
HKR,,Icon,,-1 

; ========== Manufacturer/Models sections =========== 

[Manufacturer] 
%ProviderName% = Digitool_WinUSB,NTx86,NTamd64,NTia64 

[Digitool_WinUSB.NTx86] 
%USB\MyDevice.DeviceDesc% =USB_Install, USB\VID_064B&PID_1212 

[Digitool_WinUSB.NTamd64] 
%USB\MyDevice.DeviceDesc% =USB_Install, USB\VID_064B&PID_1212 

[Digitool_WinUSB.NTia64] 
%USB\MyDevice.DeviceDesc% =USB_Install, USB\VID_064B&PID_1212 
; =================== Installation =================== 

[USB_Install] 
Include=winusb.inf 
Needs=WINUSB.NT 

;[2] 
[USB_Install.Services] 
Include=winusb.inf 
Needs=WINUSB.NT.Services 

;[3] 
[USB_Install.Wdf] 
KmdfService=WINUSB, WinUSB_Install 

[WinUSB_Install] 
KmdfLibraryVersion=1.9 

;[4] 
[USB_Install.HW] 
AddReg=Dev_AddReg 

[Dev_AddReg] 
HKR,,DeviceInterfaceGUIDs,0x10000,"{40F2F474-A52F-4DDD-815F-785DFA5A5550}" 

;[5] 
[USB_Install.CoInstallers] 
AddReg=CoInstallers_AddReg 
CopyFiles=CoInstallers_CopyFiles 

[CoInstallers_AddReg] 
HKR,,CoInstallers32,0x00010000,"WdfCoInstaller01009.dll,WdfCoInstaller","WinUSBCoInstaller2.dll" 

[CoInstallers_CopyFiles] 
WinUSBCoInstaller2.dll 
WdfCoInstaller01009.dll 

[DestinationDirs] 
CoInstallers_CopyFiles=11 

; ================= Source Media Section ===================== 
;[7] 

[SourceDisksNames] 
1 = %DISK_NAME%,,,\i386 
2 = %DISK_NAME%,,,\amd64 
3 = %DISK_NAME%,,,\ia64 

[SourceDisksFiles.x86] 
WinUSBCoInstaller2.dll=1 
WdfCoInstaller01009.dll=1 

[SourceDisksFiles.NTamd64] 
WinUSBCoInstaller2.dll=2 
WdfCoInstaller01009.dll=2 

[SourceDisksFiles.ia64] 
WinUSBCoInstaller2.dll=3 
WdfCoInstaller01009.dll=3 
; =================== Strings =================== 

[Strings] 
ProviderName="Peavey Electronics" 
USB\MyDevice.DeviceDesc="Digitool USB" 
WinUSB_SvcDesc="Digitool USB" 
DISK_NAME="Install Disk" 
ClassName="Digitool Processors" 

的SETUPAPI日志在XP故障看起来是这样的:

[SetupAPI Log] 
OS Version = 5.1.2600 Service Pack 3 
Platform ID = 2 (NT) 
Service Pack = 3.0 
Suite = 0x0100 
Product Type = 1 
Architecture = x86 
[2011/10/28 18:33:56 5900.645] 
#-198 Command line processed: "C:\WINDOWS\system32\mmc.exe" C:\WINDOWS\system32 \devmgmt.msc /s 
#I060 Set selected driver. 
#-019 Searching for hardware ID(s): usb\vid_064b&pid_1212&rev_0100,us \vid_064b&pid_1212 
#-018 Searching for compatible ID(s): usb\class_ff&subclass_00&prot_00,us \class_ff&subclass_00,usb\class_ff 
#I022 Found "USB\VID_064B&PID_1212" in C:\WINDOWS\inf\oem34.inf; Device: "Digitool USB"; Driver: "Digitool USB"; Provider: "Peavey Electronics"; Mfg: "Peavey Electronics"; Section name: "USB_Install". 
#I087 Driver node not trusted, rank changed from 0x00000001 to 0x00008001. 
#I023 Actual install section: [USB_Install]. Rank: 0x00008001. Effective driver date: 10/28/2010. 
#-166 Device install function: DIF_SELECTBESTCOMPATDRV. 
#I063 Selected driver installs from section [USB_Install] in "c:\windows\inf\oem34.inf". 
#I320 Class GUID of device remains: {D851949D-3793-4FA6-93F5-E86CCDCFD6F9}. 
#I060 Set selected driver. 
#I058 Selected best compatible driver. 
#-124 Doing copy-only install of "USB\VID_064B&PID_1212\5&26DFC3A5&0&2". 
#W334 Failed to verify catalog when scanning file queue. Error 1168: Element not found. 
#E360 An unsigned or incorrectly signed file "c:\windows\inf\oem34.inf" for driver "Digitool USB" will be installed (Policy=Ignore). Error 1168: Element not found. 
#W187 Install failed, attempting to restore original files. 
#E360 An unsigned or incorrectly signed file "c:\windows\inf\oem34.inf" for driver "Digitool USB" will be installed (Policy=Ignore). Error 1168: Element not found. 
#-024 Copying file "C:\WINDOWS\system32\DRVSTORE\digitool_AB7D48D412FA027D36DB13E9FD73698685B0025A\i386\WinUSBCoInstaller2.dll" to "C:\WINDOWS\system32\WinUSBCoInstaller2.dll". 
#E360 An unsigned or incorrectly signed file "C:\WINDOWS\system32\DRVSTORE\digitool_AB7D48D412FA027D36DB13E9FD73698685B0025A\i386\WinUSBCoInstaller2.dll" for driver "Digitool USB" will be installed (Policy=Ignore). Error 1168: Element not found. 
#-336 Copying file "C:\WINDOWS\system32\DRVSTORE\digitool_AB7D48D412FA027D36DB13E9FD73698685B0025A\i386\WdfCoInstaller01009.dll" to "C:\WINDOWS\system32\WdfCoInstaller01009.dll" via temporary file "C:\WINDOWS\system32\SET15.tmp". 
#E360 An unsigned or incorrectly signed file "C:\WINDOWS\system32\DRVSTORE\digitool_AB7D48D412FA027D36DB13E9FD73698685B0025A\i386\WdfCoInstaller01009.dll" for driver "Digitool USB" will be installed (Policy=Ignore). Error 1168: Element not found. 
#-166 Device install function: DIF_REGISTER_COINSTALLERS. 
#I056 Coinstallers registered. 
#-166 Device install function: DIF_INSTALLINTERFACES. 
#-011 Installing section [USB_Install.Interfaces] from "c:\windows\inf\oem34.inf". 
#I054 Interfaces installed. 
#-166 Device install function: DIF_INSTALLDEVICE. 
#I123 Doing full install of "USB\VID_064B&PID_1212\5&26DFC3A5&0&2". 
#E275 Error while installing services. Error 0xe0000219: The installation failed because a function driver was not specified for this device instance. 
#E122 Device install failed. Error 0xe0000219: The installation failed because a function driver was not specified for this device instance. 
#E157 Default installer failed. Error 0xe0000219: The installation failed because a function driver was not specified for this device instance. 
#W422 Coinstaller 1 (Post Processing) modified status. Error 87: The parameter is incorrect. 
#I060 Set selected driver. 
#I125 Installing NULL driver for "USB\VID_064B&PID_1212\5&26DFC3A5&0&2". 
#I121 Device install of "USB\VID_064B&PID_1212\5&26DFC3A5&0&2" finished successfully. 

我撕裂了我的头发试图找出什么错在XP上。这些错误

“无法验证扫描时文件队列目录”和“一个无符号或签署不正确的文件”

做没有意义的我,因为驱动程序包正确进行了签名,并在Win7的安装正确,没有警告。任何帮助将是非常受欢迎的

感谢 汤姆

回答

0

一个问题,我相信是[SourceDisksFiles.NTamd64][SourceDisksFiles.amd64]。我不确定这是否是问题,但那是一个问题。

我认为,真正的问题是,Windows XP不支持此行: Needs=WINUSB.NT.Services

你需要把它改成这样:

;[2] 
[USB_Install.Services] 
Include=winusb.inf 
Needs=WinUSB,0x00000002,WinUSB_ServiceInstall 

[WinUSB_ServiceInstall] 
DisplayName = %DisplayName% ; set this in your string area 
ServiceType = 1 
StartType = 3 
ErrorControl = 1 
ServiceBinary = %12%\WinUSB.sys 
+0

你几乎肯定意味着“AddService”,而不是“需求“在您发布的代码中。 –

相关问题