I am using Windows 7 and would like to see which USB versions each attached USB device is using (1.1 or 2). How can I do this?

link|improve this question

75% accept rate
feedback

2 Answers

up vote 5 down vote accepted

You can determine the USB specification that a device supports by examining its bcdUSB field. It is not stored in the registry, so you cannot just search or access it. It is stored on the device itself, so you need a way to query the device to retrieve it.

You can use the USB View utility from Microsoft. It is available on the installation CD of some versions of Windows (and possibly some old versions of the Resource Kit). I’m not sure if it's legal to distribute it, but it’s certainly easy enough to find a copy. You could also use the commercial program USBlyzer.


The bcdUSB field is a hexadecimal number that will indicate the highest USB version the device supports in a packed-decimal format:

0x0100 = USB 1.0
0x0110 = USB 1.1
0x0200 = USB 2.0
0x0300 = USB 3.0


In addition, you can view the actual speed the device supports in the Device Bus Speed field:

Low Speed  : <= 1.5 Mbps (USB 1.0+)
Full Speed : <= 12  Mbps (USB 1.0+)
High Speed : <= 480 Mbps (USB 2.0+)
SuperSpeed : <= 5.0 Gbps (USB 3.0+)

(Check your motherboard’s BIOS to determine what mode the USB controller is configured for.)


Figure 1: USB 1.1 device

enter image description here

Figure 2: USB 2.0 device

enter image description here

link|improve this answer
feedback

If the device is using USB 1.0, windows will throw a message at you saying that there might be a problem with the device and that it is using a slower technology (in my experience).

Alternatively, you can write files to the drive and see how fast they get written/read. A USB 1.1 drive, while it has a theoretical speed of 12 MBit/S is usually far slower (<2 MBit). You will not see such speeds on a 2.0 drive unless there is something wrong with it or your computer.

link|improve this answer
Thanks for the suggestions, but this seems rather roundabout. There is no way to interrogate Windows directly and ask? For example, what if you have a dozen devices that are already plugged in? What about devices that are not writable (mice, keyboards, printers)? – rlandster Feb 10 at 2:32
1  
Few things. 1) most of the non-writable drives will probably be USB 1.1 as those devices generally don't need high bandwidth. 2) I don't think there is. The problem is that while you can get what the port is, knowing what protocol its using is buried somewhere (if at all visible, there is no reason why it should be) – soandos Feb 10 at 2:42
@soandos: I'm not so sure about the first point. If a single USB 1.1 device is connected, all devices connected to the USB host controller are forced to downgrade to USB 1.1 speeds. – surfasb Feb 11 at 2:13
@surfasb, soandos, you’re both close. Windows does indeed complain/warn when connecting a higher-speed device to a lower-speed USB port. And in my experience other devices do seem to get throttled to the USB spec of the device with the lowest support on the same hub, not the whole controller. As such, it will warn about a USB 2.0 device connected to a USB 2.0 port if there is a USB 1.1 device on the same hub (with a misleading message about the port being low-speed). – Synetech Feb 11 at 4:09
1  
It gets more complicated than that. Some hubs will relegate full speed devices (1.1) to their own virtual bus. I just tell people to get rid of their old devices. – surfasb Feb 11 at 16:33
show 1 more comment
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.