On Wed, 1 Sep 2004, Steve Calfee wrote: > The answer is complicated. There is no "Windows" -- each version is slightly > different. win98 did things differently than xp does. I enclose a couple of > device enumerations from "XP home". I don't have access to a win98 machine > until this weekend. You will notice that the older 1.0 device (8 byte > control packets) was enumerated differently than the device that was for usb > 2.0 (with 64 byte control packets).
I didn't notice any significant difference other than the smaller maxpacket value (and the consequent use of multiple packets). > These two dumps were processed (decoded) by an awk program from the original > html capture. Even though there is a lot of extra junk in them, I think they > show two complete enumerations. Maybe the original HTML would have been easier to read! :-) The important point is that the initial Get-Device-Descriptor request is the same in all cases. Windows asked for a 64-byte transfer and treated the 8-byte response from the low-speed device as a normal short packet. The real test would be to see what Windows XP does with a device that doesn't like this initial sequence. I'm not aware of any such devices, but it wouldn't be surprising to learn that some do exist. When I tried monkeying with a gadget driver (so that it failed to respond to the initial 64-byte request) Windows 2000 simply refused to enumerate it at all. I've already got a patch that does something like what we've seen. It uses the current approach first, and if that fails it switches to the Windows approach. Does this sound like a good thing to submit? Alan Stern ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
