From: Spiro T. <an-...@sp...> - 2007-03-17 16:30:37
|
Hello again Stephan, another investigation: * On Sat, Mar 17, 2007 at 03:19:46PM +0100 I wrote: > I am not sure if my fix is the right solution for everyone. I don't know > if usb_control_msg() can give back data even if this is an output call. > Anyway, at least for all my tests, it solved the problem for me. To me, it seems my fix is absolutely correct. I looked into the SVN and found out that the relevant change was done with revision 115 (http://libusb-win32.svn.sourceforge.net/viewvc/libusb-win32/trunk/libusb/src/windows.c?r1=109&r2=115), where you changed from direct calls to DeviceIoControl() to calls to usb_io_sync(). The line 690ff and 731ff (old implementation, revision 109) uses NULL and 0 for the equivalent to the in and in_size parameters. The new implementation (line 741, revision 115) does not reset in and in_size, which results in the problem. Interestingly, revision 115 was checked in on February 9, 2006 - which perfectly fits with my observation that 0.1.10.1 (from 2005-03-09) works perfectly, while 0.1.12 (from 2007-02-25) does not. Regards, Spiro. -- Spiro R. Trikaliotis http://opencbm.sf.net/ http://www.trikaliotis.net/ http://www.viceteam.org/ |