From: Lee C. <elc...@gm...> - 2010-03-23 11:14:17
|
On Tue, Mar 23, 2010 at 6:00 AM, Belisko Marek <mar...@gm...> wrote: > On Tue, Mar 23, 2010 at 11:29 AM, Xiaofan Chen <xia...@gm...> wrote: >> On Tue, Mar 23, 2010 at 6:11 PM, Belisko Marek <mar...@gm...> wrote: >>> trying to find out why usb_claim_interface return value -22 ( I can't >>> find proper docu about this). >>> Could you give me some hints? Using latest driver. >>> >> #define EINVAL 22 /* Invalid argument */ >> >> Did you call usb_set_configuration() before? What is the >> output of testlibusb-win.exe? >> >> If possible, please also post the code snippets. > > No I don't call usb_set_configuration(). I use this code on linux and > it works perfectly. > I try to use it on windows and get this error. > > Code snippet: > int lusb::open_usb() > { > int ret_val = 0; > > if (this->dev != NULL) { > this->dev_handle = usb_open(this->dev); > if (this->dev_handle != NULL) { > /* claim interface must be done before every > * write or read to interface > */ > ret_val = usb_claim_interface(this->dev_handle, 0); > > if (ret_val < 0) { > perror("usb_claim_interface"); > ret_val = 0; > } else { > ret_val = 1; > } > } > } > > return ret_val; > } > usb_set_configuration is required on Windows. It works fine in Linux too even though it isn't required there. Lee C. |