Hello,

first I'd like to thank the libusbx developers for their work, in
particular for the excellent documentation.

I am writing software for a custom USB device for Windows. The stable
version of this SW is using libusb-win32 and works fine (therefore I am
sure to use correct USB parameters). I want to try out libusbx/async
mode to increase performance. But I encountered a very basic problem
long before trying any async operation:

After the standard device searching procedure and successfully opening
one device, usb_claim_interface fails with rc=-3 "access denied". This
is 100% reproducible. What does it mean and what can I do to avoid the
problem?

Thank you for your help!

Gert

Some details on my environment:
OS: Win 7
Lib: libusbx 1.0.14
Driver: libusb0.sys 1.2.5.0 (tested with libusb-win32)
Device: VID=16C0 PID=055B

libusbx debug output ("calling ..." is my own debug output):
calling libusb_init
calling libusb_set_debug
calling libusb_get_device_list
[timestamp] [threadID] facility level [function call] <message>
--------------------------------------------------------------------------------

[ 0.010000] [00000b7c] libusbx: debug [libusb_get_device_list]
[ 0.020000] [00000b7c] libusbx: debug [windows_get_device_list]
allocating new device for session [CE]
[ 0.030000] [00000b7c] libusbx: debug [windows_get_device_list]
allocating new device for session [1A]
[ 0.040000] [00000b7c] libusbx: debug [get_api_type] driver(s): usbhub
[ 0.040000] [00000b7c] libusbx: debug [get_api_type] matched driver name
against HUB API API
[ 0.050000] [00000b7c] libusbx: debug [windows_get_device_list]
allocating new device for session [3CB]
[ 0.050000] [00000b7c] libusbx: debug [get_api_type] driver(s): usbhub
[ 0.050000] [00000b7c] libusbx: debug [get_api_type] matched driver name
against HUB API API
[ 0.060000] [00000b7c] libusbx: debug [windows_get_device_list]
allocating new device for session [1EA]
[ 0.060000] [00000b7c] libusbx: debug [get_api_type] driver(s): usbhub
[ 0.070000] [00000b7c] libusbx: debug [get_api_type] matched driver name
against HUB API API
[ 0.070000] [00000b7c] libusbx: debug [windows_get_device_list]
allocating new device for session [1C2]
[ 0.080000] [00000b7c] libusbx: debug [get_api_type] driver(s): usbhub
[ 0.090000] [00000b7c] libusbx: debug [get_api_type] matched driver name
against HUB API API
[ 0.090000] [00000b7c] libusbx: debug [windows_get_device_list]
allocating new device for session [1D6]
[ 0.100000] [00000b7c] libusbx: debug [windows_get_device_list] found
existing device for session [3CB] (0.0)
[ 0.100000] [00000b7c] libusbx: debug [init_device] (bus: 1, addr: 1,
depth: 0,port: 0): '\\.\USB#ROOT_HUB20#4&2ACAADCB&0'
[ 0.110000] [00000b7c] libusbx: debug [windows_get_device_list] found
existing device for session [1EA] (0.0)
[ 0.110000] [00000b7c] libusbx: debug [init_device] (bus: 2, addr: 1,
depth: 0,port: 0): '\\.\USB#ROOT_HUB20#4&7AE31F9&0'
[ 0.110000] [00000b7c] libusbx: debug [windows_get_device_list]
allocating new device for session [2B3]
[ 0.130000] [00000b7c] libusbx: debug [init_device] got bus number from
ancestor #2
[ 0.140000] [00000b7c] libusbx: debug [init_device] found 1
configurations (active conf: 1)
[ 0.140000] [00000b7c] libusbx: debug [cache_config_descriptors] cached
config descriptor 0 (bConfigurationValue=1, 32 bytes)
[ 0.150000] [00000b7c] libusbx: debug [init_device] (bus: 2, addr: 4,
depth: 1,port: 5): '\\.\USB#VID_0BDA&PID_0151#20060413092100000'
[ 0.160000] [00000b7c] libusbx: debug [windows_get_device_list]
allocating new device for session [E3]
[ 0.170000] [00000b7c] libusbx: debug [init_device] found 1
configurations (active conf: 1)
[ 0.170000] [00000b7c] libusbx: debug [cache_config_descriptors] cached
config descriptor 0 (bConfigurationValue=1, 46 bytes)
[ 0.180000] [00000b7c] libusbx: debug [init_device] (bus: 2, addr: 3,
depth: 1,port: 1): '\\.\USB#VID_16C0&PID_055B#6&7A7C9B8&0&1'
[ 0.180000] [00000b7c] libusbx: debug [windows_get_device_list] found
existing device for session [1C2] (2.0)
[ 0.190000] [00000b7c] libusbx: debug [init_device] found 1
configurations (active conf: 1)
[ 0.190000] [00000b7c] libusbx: debug [cache_config_descriptors] cached
config descriptor 0 (bConfigurationValue=1, 25 bytes)
[ 0.190000] [00000b7c] libusbx: debug [init_device] (bus: 2, addr: 2,
depth: 1,port: 1): '\\.\USB#VID_8087&PID_0020#5&28027EBA&0&1'
[ 0.200000] [00000b7c] libusbx: debug [windows_get_device_list] found
existing device for session [1D6] (0.0)
[ 0.300000] [00000b7c] libusbx: debug [init_device] found 1
configurations (active conf: 1)
[ 0.300000] [00000b7c] libusbx: debug [cache_config_descriptors] cached
config descriptor 0 (bConfigurationValue=1, 25 bytes)
[ 0.300000] [00000b7c] libusbx: debug [init_device] (bus: 1, addr: 2,
depth: 1,port: 1): '\\.\USB#VID_8087&PID_0020#5&2F667F92&0&1'
[ 0.300000] [00000b7c] libusbx: debug [get_api_type] driver(s): USBSTOR
[ 0.310000] [00000b7c] libusbx: debug [windows_get_device_list] found
existing device for session [2B3] (2.4)
[ 0.310000] [00000b7c] libusbx: debug [get_api_type] driver(s): libusb0
[ 0.310000] [00000b7c] libusbx: debug [get_api_type] matched driver name
against libusb0 API
[ 0.310000] [00000b7c] libusbx: debug [windows_get_device_list] found
existing device for session [E3] (2.3)
[ 0.310000] [00000b7c] libusbx: debug [libusb_unref_device] destroy
device 1.0[ 0.310000] [00000b7c] libusbx: debug [libusb_unref_device]
destroy device 2.0
found 6 devices
calling libusb_get_device_descriptor
[ 0.320000] [00000b7c] libusbx: debug [libusb_get_device_descriptor]
calling libusb_get_device_descriptor
[ 0.320000] [00000b7c] libusbx: debug [libusb_get_device_descriptor]
calling libusb_get_device_descriptor
[ 0.320000] [00000b7c] libusbx: debug [libusb_get_device_descriptor]
calling libusb_get_device_descriptor
[ 0.330000] [00000b7c] libusbx: debug [libusb_get_device_descriptor]
calling libusb_open
[ 0.330000] [00000b7c] libusbx: debug [libusb_open] open 2.3
calling libusb_free_device_list
[ 0.330000] [00000b7c] libusbx: debug [libusb_unref_device] destroy
device 1.1
[ 0.330000] [00000b7c] libusbx: debug [libusb_unref_device] destroy
device 2.1
[ 0.330000] [00000b7c] libusbx: debug [libusb_unref_device] destroy
device 2.4
[ 0.330000] [00000b7c] libusbx: debug [libusb_unref_device] destroy
device 2.2
[ 0.330000] [00000b7c] libusbx: debug [libusb_unref_device] destroy
device 1.2
calling libusb_claim_interface
[ 0.330000] [00000b7c] libusbx: debug [libusb_claim_interface] interface 0
[ 0.330000] [00000b7c] libusbx: error [winusbx_claim_interface] could
not access interface 0: [0] Der Vorgang wurde erfolgreich beendet.
libusb_claim_interface returned -3: LIBUSB_ERROR_ACCESS

The german message "Der Vorgang wurde erfolgreich beendet" means "The
operation was successfully completed".

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
libusbx-devel mailing list
libusbx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libusbx-devel

Reply via email to