| | Descripton |  | The USB Device Tree Viewer, short UsbTreeView is based upon the Microsoft 'USBView' sample application found in the Windows Driver Development Kits and now standalone at GitHub.
 But it is source code only, there is no executable for end users provided. Meanwhile USBView comes as executables as part of the 'Debugging Tools für Windows', see here: USBView.
  UsbTreeView started with the USBView source code from the DDK for Server 2003. Here are the improvements I've done:  With V3.0Informations from the Windows Device Management are collected and matched with the found USB devices; Therefore UsbTreeView can show the child devices, including drive letters and COM-ports Window position is saved Background color and font of the right pane can be set (the font shown in the screenshots is DOSLike 7) Keeps the tree item selection over refresh TreeView highlighting of arrived and removed devices Shows open handles on failed safe removal Way more descriptors are decoded, as Audio 2.0 Hexdump of the descriptors can be shown Safe removal, device restart and port restart Extended USB information available under Windows 8 and 10 (taken from the latest USBView sample application) Extended information about host controllers Failed USB requests are re-tried in the background, e.g. if a USB mouse was moved while requesting its properties Toolbar with jump-lists for easily finding devices in complex trees TreeView with handmade 16x16 icons, USBView used 32x32 icons scaled down to 15x15 many minor improvements 
 With V3.3No more enumeration of all devices on arrival and removal of a USB device Search function (not full text, only things like device ID, drive letter, volume name etc) Some new Keyboard shortcuts (Alt+D to open the drives list, Alt+O the Others list, Alt+S to focus the search edit, Alt+Left/Right to cycle thru the search hits Options not to expand empty hubs or hub with only empty hubs attached Options to jump to arrived and removed devices Option to expand tree items to make selected arrived and removed devices visible Option to rename tree items (press F2 or single-click it when selected) Uses Windows visual theme with option to turn it off 
 Can write and read a report in XML format (not compatibel with USBview's) 
 | 
 
 | Latest History |  | Old HistoryV3.5.1V3.5.0
 V3.4.4Bugfix: Crash on Windows 8, 8.1, Server 2008 when dealing with companion ports New: Highlight for companion ports (Win8+) New: Right-click -> Copy Tree from here can copy a full treeview screenshot 
 V3.4.3Bugfix: since V3.4.0 copy tree to clipboard did not work Bugfix: since V3.4.1 possible crash when restarting a hub 
 V3.4.2Bugfix: since V3.4.1 SuperSpeed ports got no 'S' icon and max speed shown as SuperSpeedPlus 
 V3.4.1Bugfix: V3.4.1 crashed on pre-Win8 systems 
 V3.4.0Bugfix: Child devices sorted by device id instead of kernel name, at least for devices the author came across with this leads to better sorting, e.g. for COM ports Bugfix: TreeView's context menu did not work on negative mouse coordinates (on screens left of the main screen) New: Shows a summary with the most interesting information New: Can shows sum of used endpoints of all devices attached to a root-hub in the tree-view New: Remembers which ports have ever operated at SuperSpeedPlus (because so far there is no way to request the capability) 
 V3.3.8Bugfix: Crash with failed USB hub New: UVC 1.5 H.264 descriptors are decoded New: More device interface GUIDs are resolved New: Reporting a USB version of 2.0 is blamed as an error if the device does not deliver an 'other_speed' device_qualifier descriptor because USB 2.0 spec says 9.2.6.6: 'Devices that are high-speed capable must set the version number in the bcdUSB field of their descriptors to 0200H. This indicates that such devices support the other_speed requests defined by USB 2.0.' 
 V3.3.7New: Contains nearly 12000 vendor names from usbif.json instead of 1000 from the former usb.ifNew: Option to allow only one instance running New: Nodes of devices with a problem show a tool-tip with a problem description 
 V3.3.6Bugfix: Renamed tree items not shown with the customized name on startup 
 V3.3.5New: Shows Registry flags under HKLMSYSTEMCurrentControlSetControlusbstorVVVVPPPP 
 V3.3.4New: Sum of used endpoints shown for root-hubs New: Option to show the number of used endpoints in the tree Bugfix: Crashs on device removal 
 V3.3.3Bugfix: Sometimes truncated XML report New: A selected tree node can be renamed by pressing F2 or single left-click it (needs admin privileges) 
 V3.3.2New: Finds root hubs which are not the child device of their host controller (often seen on virtual USB over LAN) 
 V3.3.1Bugfix: Text report by command-line did not work since V3.3.0 
 V3.3.0Bugfix: Device arrivals not detected when registry contains wrong device path for a USB hub 
 V3.2.4New: Can write and read a report in XML format 
 V3.2.3Bugfix: Crash when showing open handle after failed safe removal of a device with a COM port Bugfix: MessageBox was shown after writing a report by command-line Bugfix: guidExtensionCode in 'Video Control Extension Unit Descriptor' was not shown New: Name of guidExtensionCode (e.g. 'YUY2') is extracted from the first four bytes of the GUID 
 V3.2.2Bugfix: Some strings for Smart Card Functional Descriptor where shown as question marks Bugfix: UVC frame intervals where shown without fraction of milliseconds for continuous frame type 
 V3.2.1Bugfix: UVC frame intervals where shown without fraction of milliseconds 
 V3.2.0Bugfix: Under XP the UsbTreeView process did not end after using 'Safely Remove' New: Highlight color of selected item darker 
 V3.1.7New: TreeView highlighting as known from the SysInternals ProcessExplorer New: On failed 'safe removal' it shows open handles found for the device ID Windows returns as VetoName New: Shows global registry USB flags under HKLMSYSTEMCurrentControlSetControlUsbFlags and HKLMSYSTEMCurrentControlSetServicesusbhubhubg 
 V3.1.6New: Detects arrival of USB devices even its driver fails to start, e.g. if no driver is installed yet New: Detects childs of USB devices even they don't generate device notifications nor they are enumerated by SetupDiGetClassDevs (seen on Arduino Micro) 
 V3.1.5Bugfix: Device Qualifier Descriptor was requested even the device is running at SuperSpeed 
 V3.1.4New: Option to show the port chain instead the port number in the tree Bugfix: Some hexdumps where missing Bugfix: Device Qualifier Descriptor was requested for USB 1.x devices 
 V3.1.3New: Copy tree to clipboard function New: Text copied to clipboard as HTML fragment enclosed in <pre> tags to get a monospaced font offhand New: SmartCard Reader Feature Descritpor decoded Bugfix: Volume of CDROM drives not recognized on arrival 
 V3.1.2Bugfix: Wrong value shown for Clock Selector in Audio Control Clock Selector Unit Descriptor 2.0 New: Full enumeration when missing USB device notifcation is detected (workaround for SILEX USB Device Servers) 
 V3.1.1 (06 May 2017)Bugfix: Occasional crash on safe removal Bugfix: Since V3.0.6 no device information for UHCI controllers under Windows 2000 Bugfix: wPacketSize decoded wrong if SuperSpeed device reported a Device Bus Speed of 0x02 
 V3.1.0 (24 Feb 2017)New: Can show multiple Configuration and Other-Speed-Configuration Descriptors New: TreeView sub-menu to copy some id strings to clipboard 
 V3.0.8 (01 Jan 2017)Bugfix: Removal of storage volumes not handled correctly New: Project is UNICODE now, so non-ASCII string descriptors are shown correctly even the Windows ANSI codepage cannot New: Improved robustness when decoding invalid descriptors New: Option 'Always On Top' 
 V3.0.7 (09 Dec 2016)Bugfix: No more font change in the text pane when hitting some special charaters 
 V3.0.6 (10 Nov 2016)New: Improved detection of arrival/removal of child devices New: Devices in low power state and problem code 0 get a 'D1', 'D2' etc icon instead of an exclamation mark New: Workaround for a strange phenomenon: On some Windows device notifications come with wide strings even RegisterDeviceNotificationA was used; This is dealt with now. 
 V3.0.5 (03 Nov 2016)New: Support for virtual USB Controllers where Hostcontroller and Root-Hub are one and the same device 
 V3.0.4 (15 Aug 2016)New: Port property PortConnectorIsTypeC (Win10 only) 
 V3.0.3 (29 June 2016)New: Device Manager problem numbers shown in the treeview icons 
 V3.0.2 (16 June 2016)New: Search hits get highlighted in the text pane (which is a RichEdit control now) 
 V3.0.1 (13 June 2016)Bugfix: Dropdown lists not refreshed on device arrival and removal 
 V3.0.0 (12 June 2016)Bugfix: Crash on full refresh 
 New: No more enumeration of all devices on arrival and removal of a USB device New: Search function (not full text, only things like device ID, drive letter, volume name etc) New: Toolbar controls shrink if required New: Some new Keyboard shortcuts (Alt+D to open the drives list, Alt+O the Others list, Alt+S to focus the search edit, Alt+Left/Right to cycle thru the search hits New: options not to expand empty hubs or hub with only empty hubs attached New: options to jump to arrived and removed devices New: option to expand tree items to make selected arrived and removed devices visible New: Uses Windows visual theme with option to turn it off 
 | 
 
 | Screenshots |  | USB 1.1
 Here we have an old XP Computer with one single USB 1.1 host controller. As every USB host controller it has exactly one USB root-hub. The root-hub has two ports, at port 1 there is a USB mass storage device attached which is mounted at drive letter Z:. Even the USB drive is USB 2.0 it is running at Full-Speed only because it is attached to a USB 1.1 hub.
 
 
 USB 2.0Here we have Win7 Computer with an Intel P35 chipset which has 8 USB 2.0 High-Speed capable ports. The 8 physical ports are split here: 4 USB 1.1 controllers deal with USB low and Full-Speed devices while one USB 'Enhanced' controller deals with the High-Speed devices. I don't know why the 1.1 ports are split over 4 controllers with 2 ports each. Since all manufactures do this, there must be a good reason...
 The USB High-Speed controllers usually have the keyword 'Enhanced' in their device name. Since Vista the 'USB Hub Capabilities' can be checked for the 'HighSpeed' flag.
 At port 1 of the Enhanced controller there is a USB High-Speed hub attached and at his port 4 there is a USB mass storage device attached which is thanks to USBDLM mounted at drive letter Z: again. Here it is running at High-Speed.
 Newer Intel chipset have no more USB1 root hubs. Instead there are two integrated standard hubs which translate Low and Full-Speed into High-Speed. Intel calls them 'Integrated USB 2.0 Rate Matching Hub'.
 
 USB 3.0Here we have a Win8 Computer with a Texas Instrumens TUSB7340 USB SuperSpeed controller card. Windows 8 has native support for USB 3.0 SuperSpeed and an enhanced USB stack which delivers more information, e.g. which speed each port supports. Therefore UsbTreeView can show a 'H' in the icon of the high-speed ports and an 'S' for the SuperSpeed ports. Still missing is the information about the supported SuperSpeed (5, 10 or 20 GBits/s)
 The TUSB7340 has 4 physical ports. 4 logical ports are for low, full and high-speed devices and another 4 for SuperSpeed devices. Windows 8 also delivers information about which logical ports belong together. In the screenshot you see that the selected port 4 has the CompanionPortNumber 8, this means that port 4 and 8 share the same physical port.
 
 
 USB 3.0 HubUSB3 hubs are in fact two completely independend hubs, one for SuperSpeed and the other one for High, Full and Low-Speed devices.
 The only thing in common is that both appear connected to ports which are mutual 'companion ports'.
 Here port 20 is the companion port of port 9 and vice versa:
 
 
 A USB3 device first tries to establish a stable communication with the USB3 port. If that fails (for instance because of a too long or too bad cable) then it tries the USB2 HighSpeed connection which usually works then because its electrical requirements are much lower.
 
 Intel Series 8 xHCI ControllerHere we have a bunch of yellow exclamation marks on a Intel Series 8 xHCI controller on a Asus H81-Plus board. Its ports 11 to 15 have a connection status 3 'Device general failure' which leads to the yellow exclamation marks in the tree view.
 Intel's xHCI controllers are quite flexible and need a correct initialisation by the mainboard's BIOS. I don't know this is Intel's or the BIOS maker's fault. As long as all physical ports work as expected this is a cosmetic problem.
 
 
 | 
 
 | Identify simple BadUSB Devices |  | Simple BadUSB devices are USB composite devices, so they keep their usual functionality but have an additional 'bad' function as a keyboard or a network adaptor.
 By means of UsbTreeView you can check:
  The BadUSB device demonstrated by Adam Caudill and Brandon Wilson at github.com looks like this: Note that it is a Composite Device, that is has two child devices - the expected disk and the potentially bad keyboard.   A regular USB drive look like this: USBDLM can ask on arrival of a new keyboard or network device if it shall be activated:https://www.uwe-sieber.de/usbdlm_help_e.html#badusb
 
 | 
 
 | Conditions and Download |  | 
  Download latest release:Win32:
 https://www.uwe-sieber.de/files/UsbTreeView_Win32.zip
 (~340KB)
 x64:
 https://www.uwe-sieber.de/files/UsbTreeView_x64.zip
 (~340KB)
 Download old V3.0.2 (last without RichEdit control):
 https://www.uwe-sieber.de/files/usbtreeview302.zip
 (~299KB)
 Download old V2.6.1 (last 2.x):
 https://www.uwe-sieber.de/files/usbtreeview261.zip
 (~273KB)
 Download old V2.0.2:
 https://www.uwe-sieber.de/files/usbtreeview202.zip
 (126KB)
 Download old V1.5:
 https://www.uwe-sieber.de/files/usbtreeview150.zip
 (96KB)
  Other old releases are available under the usbtreeviewNNN.zip names.   UsbTreeView is Freeware.Allowed:
 - usage in any environment, including commercial
 - include in software products, including commercial
 - include on CD/DVD of computer magazines
 - distribution by means of packet managers
 Not allowed:
 - modify any of the files
 - offer for download by means of a 'downloader' software
 
  I don't ask for donations but some users insist, so:PayPal
 
 
 | 
 
 | Similar Tools |  |  Information about serial COM ports:COM Port Info
 Information about drives:
 USB Drive Info
 
 | 
 
  Uwe Sieber  Home: https://www.uwe-sieber.de/english.html |