Have you ever found yourself on a USB troubleshooting expedition and needed to get a visual image of what device was connected to what USB port number? Of course you can use Device Manager to find information on the USB ports and devices in your system. However, the USB display in Device Manage is less than ideal for tracking down the actual connections.

I recently discovered a little gem hidden away in the depths of the Windows Driver Kit installation called the USB Device Viewer. This tool provides you with an easy-to-use tree view, as shown in Figure A, for tracking down your USB ports and devices.

Figure A

The USB Device Viewer provides an easy-to-use tree view of the USB connections in your PC.

In this article, I’ll tell you where and how to get Microsoft’s USB Device Viewer tool. I’ll then show you how to use this handy tool to track down the USB devices attached to your system.

Getting the tool

As I mentioned, the USB Device Viewer tool is a part of the Windows Driver Kit. This means that you’ll need to download and install the Kit to get the tool. However, once you find the tool, you can isolate it and then uninstall the Windows Driver Kit. Chances are that you won’t want to have the entire kit sitting around on your hard disk unnecessarily taking up space.

To begin, head over to the Windows 10 SDK page on Microsoft’s Windows Dev Center and click the Download The Standalone SDK button, shown in Figure B.

Figure B

You’ll find the tool on the Windows 10 SDK page.

When the download completes, locate and run the sdksetup.exe installation. On the opening screen, select the Debugging Tools For Windows check box, as shown in Figure C. Clear all the other check boxes, then click Install. The procedure will take a few minutes to complete.

Figure C

Make sure you select only the Debugging Tools For Windows check box.

Once the Windows 10 SDK is installed, launch File Explorer and navigate to the folder that matches your operating system type.

If you are running a 32-bit version of Windows 10, navigate to:

C:\Program Files (x86)\Windows Kits\10\Debuggers\x86

If you are running a 64-bit version of Windows 10, navigate to:

C:\Program Files (x86)\Windows Kits\10\Debuggers\x64

When you access the folder, locate and select these two files:

usbview.exe
usbview.exe.config

They make up the USB Device Viewer tool, as shown in Figure D.

Figure D

Locate and select the two files that make up the USB Device Viewer tool.

Now, copy these two files to a folder of your choice. Once you have done so, you can access the Programs And Features tool in the Control Panel and uninstall the Windows Software Development Kit, as shown in Figure E.

Figure E

Once you isolate the files, you can uninstall the Windows Software Development Kit.

SEE: Classic Windows on a $35 computer: How to fire up Windows 3.1, 95, 98 and XP on your Raspberry Pi

Overview

When you launch the USB Device Viewer, shown in Figure F, you may see a variety of host controllers off the main branch on the tree view.

Figure F

The USB Device Viewer shows all the USB host controllers in your system.

More specifically:

  • A Host Controller that is identified as eXtensible or xHCI is a USB 3.0 host controller.
  • A Host Controller that is identified as Enhanced or EHCI is a USB 2.0 host controller.
  • A Host Controller that is identified as Universal/UHCI or Open/OpenHCD/OHCI is a USB 1.0 host controller.

You’ll also notice that there are more host controllers, hubs, and ports shown in the tree than there appear to be in your system. For example, the tree in Figure F shows seven host controllers and 30 ports, yet my computer has only eight external USB ports: two USB 2.0 ports on the front and six USB ports on the back–4 USB 2.0 and 2 USB 3.0 ports.

In a nutshell, the reason that there are so many items in the tree is that USB ports need to be able to support multiple USB versions. For example, a USB 2.0 port on your system will be connected to two host controllers–a USB 1.0 host controller and a USB 2.0 host controller. That also means that one physical port will be represented by multiple ports in the tree. Furthermore, in addition to the external USB devices that you connect to your system, there are a number of devices integrated into the PC that can be connected via a USB connection, such as an SD Card reader or a webcam.

Of course, the way USB works in Windows is far more technically detailed than my simple description, but I think you get the idea. (If you want to see the level of detail for yourself, check out the USB in Windows – FAQ page in the Microsoft Hardware Dev Center.)

Using the tool

Despite the complexity of USB in Windows, the USB Device Viewer is easy to use for tracking down USB connections. As you can see, the tree shows which ports have devices connected to them and which don’t. Ports with connected devices show a blue and red USB icon, while ports not currently in use show a blue USB icon. Adjacent to the ports in use you’ll also see a generic name on the right.

When you select a port that is in use, you’ll see a screen full of detailed information about the connected USB device. As you can see in Figure G, I’ve selected Port 5 on the first Enhanced host controller. The information in the accompanying screen tells me that 1) it is a mass storage device, 2) it is an internal port, 3) it supports multiple USB versions, and 4) the vendor is Realtek Semiconductor. As such, I can deduce that this USB port runs the SD card reader on the front of my PC.

Figure G

When you select a port that’s in use, you’ll see a screen full of detailed information.

In Figure H, you can see that I’ve selected Port 5 on the second Enhanced host controller. The information in the accompanying screen tells me that 1) it is a mass storage device, 2) it is an external port, 3) it supports multiple USB versions, 4) it is a USB 3.0 device, and 5) the vendor is SanDisk. So I can deduce that the device plugged to this USB port is my 4GB SanDisk USB 3 flash drive, and since it is connected to the USB 2.0 port on the front of my PC, I can now specifically identify this port and host controller.

Figure H

This is Port 5 on the second Enhanced host controller.

In Figure I, you can see that I’ve selected Port 4 on the first Open HCD host controller. The information in the accompanying screen tells me that 1) it is a input device, 2) it is an external port, 3) it does not support multiple USB versions, 4) it is a USB 1.0 device, and 5) this is the Microsoft mouse connected to the USB 2.0 port on the back of my PC.

Figure I

This is Port 4 on the first Open HCD host controller.

Conduct an investigation

Now that you have an idea of how you can track USB devices in the USB Device Viewer and what kind of information it displays, you can begin a more detailed investigation of the USB ports in your PC. For example, I took a USB mouse and two USB flash drives–one a USB 2.0 device and one a USB 3 device–and one by one connected them to each of the ports on my PC and monitored the tree in USB Device Viewer. I then noted each host controller and the port number that was used for each connection.

More Windows how-to’s

What’s your take?

With the USB Device Viewer in my arsenal, I have a great diagnostic tool at my disposal. The experiments I’ve conducted have given me good idea of what to look for when it comes to a USB troubleshooting expedition.

Have you ever needed to be able to troubleshoot USB problems? Maybe you are just interested in learning more about the USB connections in your PC. Either way, you should get the USB Device Viewer. Share your thoughts with fellow TechRepublic members.

Subscribe to the Developer Insider Newsletter

From the hottest programming languages to commentary on the Linux OS, get the developer and open source news and tips you need to know. Delivered Tuesdays and Thursdays

Subscribe to the Developer Insider Newsletter

From the hottest programming languages to commentary on the Linux OS, get the developer and open source news and tips you need to know. Delivered Tuesdays and Thursdays