我在Windows XP(x86,Service Pack 3)上安装WinUSB驱动程序时遇到困难。我遵循了Microsoft WinUSB指南,使用一个inf文件,一个签名的cat文件(使用Inf2cat制造)以及相关的WinUSB协同安装程序来创建一个签名的驱动程序包。一切都可以在Windows7上完美运行,但是在XP上安装失败。
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"
XP中的setupapi登录失败看起来像这样:
[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上正确安装,没有任何警告。任何帮助都将非常欢迎
谢谢
汤姆
最佳答案
我认为一个问题是[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
关于windows-installer - 在XP上WinUSB驱动程序安装失败(在Win7上运行正常),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7932447/