From: Qui Le <ql...@ex...> - 2010-07-28 01:04:54
|
Hi, What I said earlier about 1.2.0.0 working as a device driver was incorrect since I was not installing/uninstalling the libusb-win32 driver correctly and cleanly. As of now, I'm using XP 32-bit and 1.2.0.0 does not work for my device at all running as a device driver or filter driver (32-bit Windows 7 does not work either). 1.1.14.3 works as a device driver or filter driver. I wanted to make the set setup as simple as possible. So my current setup only use libusb-win32 as the device driver (without WINUSB device driver and no libusb-win32 filter driver): 1. I used the INF wizard to create the Qui_USB_Device.inf(see end of post below) and .CAT file for my device and use it to test 1.2.0.0 and 1.1.14.3 (libusb0.dll & libusb0.sys) to create a totally isolate test setup running only libusb-win32 as the device driver (no WINUSB at all) 2. I extracted the libusb0.dll and libusb0.dll of each version into different folders 3. I plugged the device in and install everything manually (Qui_USB_Device.inf, libusb0.dll, libusb0.sys). I use the same steps to switch between the two versions just by locating the correct dll and sys file Please let me know if there is something wrong the way I manually install the driver above. Output of debugview log from testlibusb program. From what I see, there is no difference between the two versions since there is no set_configuration call: Output of 1.1.14.3: 00000000 0.00000000 libusb0-sys:info [release_all_interfaces] releasing all interfaces bound to file object 0x888bfb60 00000001 0.00130731 libusb0-sys:info [release_all_interfaces] releasing all interfaces bound to file object 0x888bfb60 00000002 0.00140378 libusb0-sys:info [get_descriptor] buffer size: 18 type: 0001 recipient: 0000 index: 0000 language id: 0000 timeout: 5000 00000003 0.02771141 libusb0-sys:info [release_all_interfaces] releasing all interfaces bound to file object 0x888bfb60 00000004 0.03811170 libusb0-sys:info [get_descriptor] buffer size: 8 type: 0002 recipient: 0000 index: 0000 language id: 0000 timeout: 1000 00000005 0.04971322 libusb0-sys:info [get_descriptor] buffer size: 62 type: 0002 recipient: 0000 index: 0000 language id: 0000 timeout: 1000 00000006 0.06673598 libusb0-sys:info [release_all_interfaces] releasing all interfaces bound to file object 0x88935068 00000007 0.06686252 libusb0-sys:info [get_descriptor] buffer size: 255 type: 0003 recipient: 0000 index: 0000 language id: 0000 timeout: 1000 00000008 0.09472622 libusb0-sys:info [get_descriptor] buffer size: 255 type: 0003 recipient: 0000 index: 0001 language id: 1033 timeout: 1000 00000009 0.11570906 libusb0-sys:info [get_descriptor] buffer size: 255 type: 0003 recipient: 0000 index: 0000 language id: 0000 timeout: 1000 00000010 0.13171376 libusb0-sys:info [get_descriptor] buffer size: 255 type: 0003 recipient: 0000 index: 0002 language id: 1033 timeout: 1000 00000011 0.15970384 libusb0-sys:info [release_all_interfaces] releasing all interfaces bound to file object 0x888bfb60 00001340 0.00127460 [1804] libusb0-dll:info [os_init] dll version: 1.1.14.3 00001341 0.00130305 [1804] libusb0-dll:info [os_init] driver version: 1.1.14.3 00001342 0.00134699 [1804] libusb0-dll:info [os_find_busses] found bus-0 00001343 0.03025018 [1804] libusb0-dll:info [os_find_devices] found \\.\libusb0-0001--0x1ce2-0x0002 on bus-0 Output of 1.2.0.0: 00000000 0.00000000 libusb0-sys:nfo [release_all_interfaces] releasing all interfaces bound to file object 0x8854c8a8 00000001 0.00019639 libusb0-sys:nfo [release_all_interfaces] releasing all interfaces bound to file object 0x8854c8a8 00000002 0.00028728 libusb0-sys:nfo [get_descriptor] buffer size: 18 type: 0001 recipient: 0000 index: 0000 language id: 0000 timeout: 5000 00000003 0.02064498 libusb0-sys:nfo [release_all_interfaces] releasing all interfaces bound to file object 0x8854c8a8 00000004 0.03098978 libusb0-sys:nfo [get_descriptor] buffer size: 9 type: 0002 recipient: 0000 index: 0000 language id: 0000 timeout: 1000 00000005 0.04762805 libusb0-sys:nfo [get_descriptor] buffer size: 62 type: 0002 recipient: 0000 index: 0000 language id: 0000 timeout: 1000 00000006 0.06262803 libusb0-sys:nfo [release_all_interfaces] releasing all interfaces bound to file object 0x8854c8a8 00000007 0.06271809 libusb0-sys:nfo [get_descriptor] buffer size: 255 type: 0003 recipient: 0000 index: 0000 language id: 0000 timeout: 1000 00000008 0.08661999 libusb0-sys:nfo [get_descriptor] buffer size: 255 type: 0003 recipient: 0000 index: 0001 language id: 1033 timeout: 1000 00000009 0.09561852 libusb0-sys:nfo [get_descriptor] buffer size: 255 type: 0003 recipient: 0000 index: 0000 language id: 0000 timeout: 1000 00000010 0.11462699 libusb0-sys:nfo [get_descriptor] buffer size: 255 type: 0003 recipient: 0000 index: 0002 language id: 1033 timeout: 1000 00000011 0.12761870 libusb0-sys:nfo [release_all_interfaces] releasing all interfaces bound to file object 0x8854c8a8 00001330 0.00008079 [3240] libusb0-dll:nfo [os_init] dll version: 1.2.0.0 00001331 0.00017671 [3240] libusb0-dll:nfo [os_init] driver version: 1.2.0.0 00001332 0.00022235 [3240] libusb0-dll:nfo [os_find_busses] found bus-0 00001333 0.02070925 [3240] libusb0-dll:nfo [os_find_devices] found \\.\libusb0-0001--0x1ce2-0x0002 on bus-0 --------------------------------------------------------------------- Output of TestLibUsb program (1.1.14.3 installed): DLL version: 1.1.14.3 Driver version: 1.1.14.3 bus/device idVendor/idProduct bus-0/\\.\libusb0-0001--0x1ce2-0x0002 1CE2/0002 - Manufacturer : Extron - Product : Product wTotalLength: 62 bNumInterfaces: 2 bConfigurationValue: 1 iConfiguration: 0 bmAttributes: c0h MaxPower: 0 bInterfaceNumber: 0 bAlternateSetting: 0 bNumEndpoints: 1 bInterfaceClass: 2 bInterfaceSubClass: 2 bInterfaceProtocol: 0 iInterface: 0 bEndpointAddress: 83h bmAttributes: 03h wMaxPacketSize: 64 bInterval: 32 bRefresh: 0 bSynchAddress: 0 bInterfaceNumber: 1 bAlternateSetting: 0 bNumEndpoints: 2 bInterfaceClass: 10 bInterfaceSubClass: 0 bInterfaceProtocol: 0 iInterface: 0 bEndpointAddress: 01h bmAttributes: 02h wMaxPacketSize: 64 bInterval: 32 bRefresh: 0 bSynchAddress: 0 bEndpointAddress: 82h bmAttributes: 02h wMaxPacketSize: 64 bInterval: 32 bRefresh: 0 bSynchAddress: 0 ----------------------------------------------------------- Output of TestLibUsb program (1.2.0.0 installed): DLL version: 1.2.0.0 Driver version: 1.2.0.0 bus/device idVendor/idProduct bus-0/\\.\libusb0-0001--0x1ce2-0x0002 1CE2/0002 - Manufacturer : Qui - Product : Product wTotalLength: 62 bNumInterfaces: 2 bConfigurationValue: 1 iConfiguration: 0 bmAttributes: c0h MaxPower: 0 bInterfaceNumber: 0 bAlternateSetting: 0 bNumEndpoints: 1 bInterfaceClass: 2 bInterfaceSubClass: 2 bInterfaceProtocol: 0 iInterface: 0 bEndpointAddress: 83h bmAttributes: 03h wMaxPacketSize: 64 bInterval: 32 bRefresh: 0 bSynchAddress: 0 bInterfaceNumber: 1 bAlternateSetting: 0 bNumEndpoints: 2 bInterfaceClass: 10 bInterfaceSubClass: 0 bInterfaceProtocol: 0 iInterface: 0 bEndpointAddress: 01h bmAttributes: 02h wMaxPacketSize: 64 bInterval: 32 bRefresh: 0 bSynchAddress: 0 bEndpointAddress: 82h bmAttributes: 02h wMaxPacketSize: 64 bInterval: 32 bRefresh: 0 bSynchAddress: 0 ; Qui_USB_Device.inf ; Copyright (c) 2010 libusb-win32 (GNU LGPL) [Version] Signature = "$Windows NT$" Class = "libusb-win32 devices" ClassGUID = {EB781AAF-9C70-4523-A5DF-642A87ECA567} Provider = "libusb-win32" CatalogFile = Qui_USB_Device.cat DriverVer = 07/06/2010, 1.2.0.0 [ClassInstall32] AddReg=libusb_class_install_add_reg [libusb_class_install_add_reg] HKR,,,0,"libusb-win32 devices" HKR,,Icon,,-20 [Manufacturer] "Qui Company"=LIBUSB_WIN32, NT, NTAMD64, NTIA64 ;----------------------------------------------------------------------- --- ; libusb-win32 files ;----------------------------------------------------------------------- --- [SourceDisksNames] 1 = %LIBUSB_WIN32_DiskName% [SourceDisksFiles.x86] libusb0.sys = 1,x86 libusb0.dll = 1,x86 [SourceDisksFiles.amd64] libusb0.sys = 1,amd64 libusb0.dll = 1,amd64 x86\libusb0.dll = 1 [SourceDisksFiles.ia64] libusb0.sys = 1,ia64 libusb0.dll = 1,ia64 x86\libusb0.dll = 1 [DestinationDirs] libusb_files_sys = 10,system32\drivers libusb_files_dll = 10,system32 libusb_files_dll_wow64 = 10,syswow64 [libusb_files_sys] libusb0.sys [libusb_files_dll] libusb0.dll [libusb_files_dll_wow64] libusb0.dll,x86\libusb0.dll ;----------------------------------------------------------------------- --- ; libusb-win32 device driver ;----------------------------------------------------------------------- --- [LIBUSB_WIN32_DEV.NT] CopyFiles = libusb_files_sys, libusb_files_dll [LIBUSB_WIN32_DEV.NTAMD64] CopyFiles = libusb_files_sys, libusb_files_dll, libusb_files_dll_wow64 [LIBUSB_WIN32_DEV.NTIA64] CopyFiles = libusb_files_sys, libusb_files_dll, libusb_files_dll_wow64 [LIBUSB_WIN32_DEV.NT.HW] DelReg = libusb_del_reg_hw AddReg = libusb_add_reg_hw [LIBUSB_WIN32_DEV.NTAMD64.HW] DelReg = libusb_del_reg_hw AddReg = libusb_add_reg_hw [LIBUSB_WIN32_DEV.NTIA64.HW] DelReg = libusb_del_reg_hw AddReg = libusb_add_reg_hw [LIBUSB_WIN32_DEV.NT.Services] AddService = libusb0, 0x00000002, libusb_add_service [LIBUSB_WIN32_DEV.NTAMD64.Services] AddService = libusb0, 0x00000002, libusb_add_service [LIBUSB_WIN32_DEV.NTIA64.Services] AddService = libusb0, 0x00000002, libusb_add_service ; Older versions of this .inf file installed filter drivers. They are not ; needed any more and must be removed [libusb_del_reg_hw] HKR,,LowerFilters HKR,,UpperFilters ; libusb-win32 device properties [libusb_add_reg_hw] HKR,,SurpriseRemovalOK, 0x00010001, 1 ; (Optional) the usb configuration value to select when this device ; is started. If this key does not exist the first config is selected. ;HKR,,InitialConfigValue,0x00010001,<your config value> ;----------------------------------------------------------------------- --- ; libusb-win32 service ;----------------------------------------------------------------------- --- [libusb_add_service] DisplayName = "LibUsb-Win32 - Kernel Driver 1.2.0.0, 07/06/2010" ServiceType = 1 StartType = 3 ErrorControl = 0 ServiceBinary = %12%\libusb0.sys ;----------------------------------------------------------------------- --- ; LIBUSB_WIN32 ;----------------------------------------------------------------------- --- [LIBUSB_WIN32] "Qui USB Device"=LIBUSB_WIN32_DEV, USB\VID_1ce2&PID_0002 [LIBUSB_WIN32.NT] "Qui USB Device"=LIBUSB_WIN32_DEV, USB\VID_1ce2&PID_0002 [LIBUSB_WIN32.NTAMD64] "Qui USB Device"=LIBUSB_WIN32_DEV, USB\VID_1ce2&PID_0002 [LIBUSB_WIN32.NTIA64] "Qui USB Device"=LIBUSB_WIN32_DEV, USB\VID_1ce2&PID_0002 [Strings] LIBUSB_WIN32_DiskName="Qui USB Device Install Disk" Statement Of Confidentiality: This electronic message transmission, and all attachments, contains information from Extron Electronics which is confidential and privileged. The information is for the exclusive viewing or use of the intended recipient. If you are not the intended recipient, be aware that any disclosure, copying, distribution or use of the contents of this information is prohibited. If you have received this electronic transmission in error, please notify the sender immediately by a "reply to sender only" message and destroy all electronic and hard copies of the communication, including attachments. |