Jump-start your project by learning from devs who
write Windows drivers and file systems every day.
Take an OSR seminar!

OSR is Hiring! Click here to find out more.

Windows Internals & Software Drivers Lab, Santa Clara, CA 5-9 August, 2013
Kernel Debugging & Crash Analysis for Windows Lab, Santa Clara, CA 9-13 September, 2013
Upcoming OSR Seminars:
Writing WDF Drivers for Windows Lab, Boston, MA 7-11 October, 2013
Developing File Systems for Windows, Seattle, WA 5-8 November, 2013


Go Back   OSR Online Lists > ntdev
Welcome, Guest
You must login to post to this list
  Message 1 of 7  
13 Jul 12 04:18
Daniel Trägner
xxxxxx@ems-wuensche.com
Join Date: 19 Oct 2010
Posts To This List: 8
USB Highspeed/Fullspeed issue

Hi folks, I have a driver for a USB device. This device does not support USB-Highspeed (hardware related). Normally, this wouldn't matter as USB is backwards compatible. But recently, some customers have a problem with the device if there is a Highspeed Hub or docking station between the PC and the device. We were able to reproduce the error if we use a USB-Hub which talks to the PC at Highspeed and to the device at Fullspeed. If we use a USB-Hub which talks with the PC and the device at Fullspeed, there is no problem. Illustration: PC <-----Highspeed-----> Hub <-----Fullspeed-----> Device In this case, there are different behaviours. Sometimes the Read calls (asynchron bulk) always return with STATUS_UNSUCCESSFUL and usb status 0 in the complete function. Sometimes the driver couldn't even be loaded as the prepare function failed (WdfUsbTargetDeviceQueryString returned with STATUS_UNSUCSESSFUL). Now, my question is: Is this a driver problem? If so, how can the driver detect such a case and which options/parameters should I set to resolve this? Or is this a known hardware related error/limitation of newer USB-Hubs which can't be fixed a device driver? Do you have a link with more informations about this topic? Additional infos: - Tested with Windows7/8 64bit. Build with KMDF 1.9 - In the case where the read calls fail, I'm still able to send messages (the device also receives/handle them properly) but I can't receive anything - WdfUsbTargetDeviceRetrieveInformation always reports that the device isn't Highspeed (deviceInfo.Traits & WDF_USB_DEVICE_TRAIT_AT_HIGH_SPEED == FALSE) - If we connect a HS-Hub to a FS-Hub and attach this to the PC, then devices at the HS-Hub also don't work properly: PC <--Fullspeed-->FS-Hub<--Fullspeed-->HS-Hub<--Highspeed-->USB-Stick Thanks for your help, Daniel
  Message 2 of 7  
13 Jul 12 11:01
Alex Grig
xxxxxx@broadcom.com
Join Date: 14 Apr 2008
Posts To This List: 1835
RE: USB Highspeed/Fullspeed issue

This looks like a hub problem. See if it fails with other fullspeed devices also. Root ports are routed by hardware directly to the host controller of an appropriate type (fullspeed UHCI of high-speed UHCI). But an external hub may need to do speed translation which may fail if not implemented correctly. Also, the host controller needs to support that translation (split transaction, etc).
  Message 3 of 7  
14 Jul 12 21:00
ntdev member 123792
xxxxxx@163.com
Join Date:
Posts To This List: 168
RE: USB Highspeed/Fullspeed issue

If and HS hub between host and device, the HS hub will instert SSplit and CSplit between normal USB IN/OUT transaction. So I was figure, if the Split transaction was implemented corrected by HS hub? Because split token is transparent to device.
  Message 4 of 7  
15 Jul 12 00:47
Alex Grig
xxxxxx@broadcom.com
Join Date: 14 Apr 2008
Posts To This List: 1835
RE: USB Highspeed/Fullspeed issue

The poster needs to try different brands of the hubs and also use a USB analyzer on the uplinks and downlinks of the hub, to see which fault is that.
  Message 5 of 7  
16 Jul 12 09:41
Daniel Trägner
xxxxxx@ems-wuensche.com
Join Date: 19 Oct 2010
Posts To This List: 8
RE: USB Highspeed/Fullspeed issue

Hi, I now checked some other devices FullSpeed: USB-Ethernet and USB-RS232 adapter Highspeed: USB-Stick (4GB) All 3 devices worked and I didn't notice any errors while working with them. Also tried another HS-Hub and got the same result. With a USB Analyzer, I saw that the communication between the Hub and my Device fails with incomplete transmissions (it says "the handshake is missing"). The communication between the PC and the Hub reports incomplete CSplit/SSplit transactions ("the hub doesn't answer to the pc because of a transmission error"). It's strange that the USB-Analyzer reports incomplete transmission errors for the HighSpeed USB-Stick. No errors for the FullSpeed devices. Since the Hub/PC works with other devices without any problems, can I assume that my errors are related to the USB-Controller Chip/Firmware of the device? If so, do I need to make the driver more tolerant for this kind of errors or should we replace/change the USB-Chip/Firmware of the device? If I need a more tolerant driver, then how can I achieve this? Should my driver call the failing functions (WdfUsbTargetDeviceQueryString) multiple times before actually reporting the error? Thanks so far Daniel
  Message 6 of 7  
16 Jul 12 10:20
Alex Grig
xxxxxx@broadcom.com
Join Date: 14 Apr 2008
Posts To This List: 1835
RE: USB Highspeed/Fullspeed issue

There is a certain limit for the turnaround time from the end of packet from the hub to the device response with ACK/NAK/DATA. MAke sure your device doesn't take too long.
  Message 7 of 7  
17 Jul 12 06:00
Daniel Trägner
xxxxxx@ems-wuensche.com
Join Date: 19 Oct 2010
Posts To This List: 8
RE: USB Highspeed/Fullspeed issue

Thanks for all your help, it seems like the mystery is solved. It was a hardware issue with the power supply. There was sometimes a short-circuit which lead to a restart. That's the reason why I sometimes didn't receive any response from the device and thus the function calls/read calls failed. It also explains the sporadic behaviour. Thanks again for your time and hints which lead to the solution :) Daniel
Posting Rules  
You may not post new threads
You may not post replies
You may not post attachments
You must login to OSR Online AND be a member of the ntdev list to be able to post.

All times are GMT -5. The time now is 01:37.


Copyright ©2012, OSR Open Systems Resources, Inc.
Based on vBulletin Copyright ©2000 - 2005, Jelsoft Enterprises Ltd.
Modified under license