Мы используем драйвер winusb для нашего устройства, но он не работает в Windows 7 x64.

Что мы делаем неправильно?

Инф файл:

; Adapted from the example INF in the Microsoft document "How to Use WinUSB to Communicate with a USB Device"

[Version]
Signature = "$Windows NT$"
Class = NTMR
ClassGUID={6E76E110-A9AC-46fb-AD33-1F0444672821}
Provider = %ProviderName%
DriverVer=05/20/2009,1.0.0
CatalogFile=ti_0451_9001_ia64.cat

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

[ClassInstall32]
Addreg=UsbReg

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

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

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

[MyDevice_WinUSB.NTx86]
%USB\MyDevice.DeviceDesc% =USB_Install, USB\VID_0451&PID_9001

[MyDevice_WinUSB.NTamd64]
%USB\MyDevice.DeviceDesc% =USB_Install, USB\VID_0451&PID_9001

[MyDevice_WinUSB.NTia64]
%USB\MyDevice.DeviceDesc% =USB_Install, USB\VID_0451&PID_9001

; =================== Installation ===================

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

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

[WinUSB_ServiceInstall]
DisplayName     = %WinUSB_SvcDesc%
ServiceType     = 1
StartType       = 3
ErrorControl    = 1
ServiceBinary   = %12%\WinUSB.sys

[USB_Install.Wdf]
KmdfService=WINUSB, WinUsb_Install
UmdfServiceOrder=WINUSB

[WinUSB_Install]
KmdfLibraryVersion=1.7

[USB_Install.HW]
AddReg=Dev_AddReg

[Dev_AddReg]
HKR,,DeviceInterfaceGUIDs,0x10000,"{ca4f3183-4521-4a24-81aa-46dfcb2cb017}"

[USB_Install.CoInstallers]
AddReg=CoInstallers_AddReg
CopyFiles=CoInstallers_CopyFiles

[CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,"WinUSBCoInstaller.dll","WUDFUpdate_01007.dll","WdfCoInstaller01007.dll,WdfCoInstaller"

[CoInstallers_CopyFiles]
WinUSBCoInstaller.dll
WdfCoInstaller01007.dll
WUDFUpdate_01007.dll

[DestinationDirs]
CoInstallers_CopyFiles=11

; ================= Source Media Section =====================

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

[SourceDisksFiles.x86]
WinUSBCoInstaller.dll=1
WdfCoInstaller01007.dll=1
WUDFUpdate_01007.dll=1

[SourceDisksFiles.amd64]
WinUSBCoInstaller.dll=2
WdfCoInstaller01007.dll=2
WUDFUpdate_01007.dll=2

[SourceDisksFiles.ia64]
WinUSBCoInstaller.dll=3
WdfCoInstaller01007.dll=3
WUDFUpdate_01007.dll=3

; =================== Strings ===================

[Strings]
ProviderName="NTMR"
USB\MyDevice.DeviceDesc="TMS320VC5509A WinUSB driver"
WinUSB_SvcDesc="TMS320VC5509A board"
DISK_NAME="TI_WINUSB Install Disk"
ClassName="NTMR"

person Mtr    schedule 13.09.2010    source источник
comment
Каково ожидаемое поведение? Какое поведение вы получили вместо этого?   -  person In silico    schedule 13.09.2010


Ответы (2)


Единственные отличия, которые я вижу между моей версией и вашей, заключаются в следующем:

  1. Более новая версия WinUSB - (WdfCoInstaller01009.dll, WinUSBCoInstaller2.dll)
  2. Я не закомментировал "Include=winusb.inf" как в USB_Install, так и в USB_Install.Services.
  3. Моя версия KmdfLibraryVersion — 1,5 (не 1,7). Что мне кажется странным, так как у меня более новая версия драйвера WinUSB. Кроме того, мой DriverVer установлен на 2010, но я не уверен, что это вызовет проблему.
  4. У меня нет "UmdfServiceOrder" в моем USB_Install.Wdf.

К сожалению, я не вижу ничего явно неправильного в вашем inf-файле. Дайте им попробовать? Мой inf-файл отлично работает для Win7 x64. Вы также можете попробовать удалить файл .cat для тестирования, так как он не нужен для установки под Win7.

person Giawa    schedule 31.10.2010

Ну, вы знаете о разнице между ia64 и x64, верно? Файл .cat по имени предполагает, что драйвер предназначен для Itanium. Лично я даже не знаю о сборке Itanium для Windows 7, но могу ошибаться.

В любом случае, x64 и ia64 — это не одно и то же, и драйвер, скомпилированный для одного, не будет работать на другом.

person 0xC0000022L    schedule 12.02.2011