USB Device Tree Viewer V2.6.1
 
Home

  This page in German language

[Download]
 
  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 here: USBView sample application
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:

  • Informations 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)
  • Text output rearranged
  • Keeps the tree item selection over refresh
  • way more descriptors are decoded
  • Hexdump of the descriptors can be shown
  • Safe removal, device restart and port restart
  • Extended USB information available under Windows 8 (taken from the latest USBView sample application)
  • Extended information about host controllers
  • Enumeration of the USB devices accelerated and independent from the treeview
  • 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
Todo:
  • USB Video Class H.264 information
  • Maybe Unicode support
 

  Latest History
 
V2.6.1 (22 Feb 2016)
  • Bugfix: Limit of 32 root hubs removed
  • Bugfix: 'Other Speed Configuration' Descriptors was not read
  • New: Shows progress information in the status bar, when stuck giving a hint where
  • New: Getting Microsoft String Descritor 0xEE can be deactivated because it causes some devices to freeze. If in the Registry under HKLM\SYSTEM\CurrentControlSet\Control\UsbFlags\VVVVPPPPRRRR there is a osvc value != 0 then UsbTreeView reads it anyway because Windows already read it successfully. VVVVPPPPRRRR is a 12 digit hex value containing idVendor, idProduct and bcdDevice from the USB Device Descriptor
V2.6.0 (16 Jan 2016)
  • Bugfix: bRefresh field in endpoint descriptors of Audio 1.0 devices was not shown
V2.5.9 (29 Nov 2015)
  • Bugfix: Wrong warning about characters below 0x20 in some string descriptors
  • Bugfix: Delay on opening a Windows Device Manager device properties dialog removed
  • New: Decoding of Microsoft string descriptor 0xEE
V2.5.8 (04 Oct 2015)
  • Bugfix: Decoding of SuperSpeedPlus descriptor and some others fixed
V2.5.7 (30 Sept 2015)
  • New: New: Display SuperSpeedPlus in Connection Information V2 under Windows 10
V2.5.6 (27 Sept 2015)
  • Bugfix: String descriptors containing invalid characters where not shown at all
  • Bugfix: Crash when more that 64 ports per hub
  • New: On Windows 8 and 10 the Microsoft USB stack returns for USB devices running at SuperSpeed a Device Bus Speed of 0x02 (High-Speed). So far UsbTreeView faked it to 0x03 (SuperSpeed) as Microsoft's USBview does. Now the truely returned value is shown with a hint if it is not true.
V2.5.5 (01 August 2015)
  • Bugfix: Occasional crash after device safe removal or reactivation
V2.5.4 (28 July 2015)
  • Bugfix: Crash when more than 127 USB devices
  • Bugfix: Crash on H.264 WebCams
  • New: Shows Microsoft 0xEE string descriptor
V2.5.3 (22 June 2015)
  • New/Bugfix: USB Attached SCSI drives (UASPStor) shown with drive letter in the tree and in the drives combobox
V2.5.2 (10 June 2015)
  • New: Option to show the drive numbers in the tree, e.g. Disk3, CdRom1 etc.
V2.5.1 (21 April 2015)
  • Bugfix: Since V2.5.0 possible crash when getting a string descriptor
V2.5.0 (20 April 2015)
  • New: Audio 2.0 descriptors
V2.4.4 (11 March 2015)
  • Bugfix: Since V2.3.9 'S' and 'H' not shown on empty ports under Win8+
V2.4.3 (12 Dec 2014)
  • Bugfix: "Save Report from current Item" made a report of the selected item only
  • Bugfix: "Save Report from current Item" failed if the item name contains a character which is invalid in a file name
V2.4.2 (06 Dec 2014)
  • Bugfix: Wrong item order in the report
  • New: "Copy report from here" treeview context menu
  • New: Decoding of some USB 3.1 descriptors (untested)
  • New: Decoding of some Wireless USB 1.1 descriptors (untested)
V2.4.1 (19 Oct 2014)
  • Bugfix: Wrong 'USB 3.0 Companion Descriptor missing' error removed
  • Bugfix: Windows Version under Windows 8 and 10 correctly shown as NT 6.3 and 6.4
V2.4.0 (27 Aug 2014)
  • New: Decoding of MIDI descriptors (untested, feedback please)
  • New: Port icons with 'H' and 'S' if High or SuperSpeed device attached
V2.3.9 (24 Aug 2014)
  • Bugfix: Wrong Error message about number of frame descriptors when more than one Frame Based Format Type
  • Bugfix: Crash when 'Audio Control Feature Unit Descriptor' bControlSize is zero Descriptor
  • New: Decoding of bmaControls of 'Audio Control Feature Unit Descriptor'
V2.3.8 (9 July 2014)
  • Bugfix: USB Hub Descriptor's DeviceRemovable and PowerControlMask error shown wrong (Intel ICH6 and VirtualBox with 8 or more ports)
  • Bugfix: USB SuperSpeed Hub Descriptor's DeviceRemovable was decoded for all ports even the USB3 spec states a maximum of 15 ports
  • Bugfix: USB SuperSpeed Hub Descriptor's PowerControlMask was decoded even it does no more exist
  • Bugfix: USB Hub Descriptor's wHubCharacteristics "TT Think Time" decoded wrong
V2.3.7 (25 May 2014)
  • Bugfix: Damaged display when window is resized from top or left
  • New: Safely removed devices get a green "SR" icon instead of the yellow error icon
V2.3.6
  • Bugfix: Configuration Descriptor's bmAttributes Bit7 decoded wrong
  • Bugfix: If a device's Address value is not found then it was shown as '0', now as '-'
  • New: All string descriptors shown in a separate section
  • New: Hexdumps with ASCII
V2.3.5
  • New: Can save report for selected device only
V2.3.4
  • Bugfix: Crash with some USB over network products
V2.3.3
  • Bugfix: Crash when configuration descriptor fails to be read
V2.3.2
  • Bugfix: Device Descriptor was called Device Qualifier Descriptor and a Device Qualifier Descriptor was not decoded
V2.3.1
  • Bugfix: Font color setting had no effect
V2.3.0
 

  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.
 
usbtreeview_1.png

 

USB 2.0
Here 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".  

usbtreeview_2.png

 

USB 3.0
Here 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.
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.
 

usbtreeview_3.png

 


 
  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:

      ======================== USB Device ========================

        +++++++++++++++++ Device Information ++++++++++++++++++
Device Description       : USB Composite Device
Device ID                : USB\VID_13FE&PID_5201\6&1A941099&0&2
Driver KeyName           : {36fc9e60-c465-11cf-8056-444553540000}\0021
Driver                   : C:\Windows\system32\DRIVERS\usbccgp.sys
Legacy BusType           : PNPBus
Class                    : USB
Service                  : usbccgp
Enumerator               : USB
Location Info            : Port_#0002.Hub_#0006
Manufacturer Info        : (Standard USB Hostcontroller)
Child Device 1           : Disk drive
 Device ID               : USB\VID_13FE&PID_5201&MI_00\7&17D1C3FF&0&0000
 Class                   : USB
Child Device 2           : USB Input Device
 Device ID               : USB\VID_13FE&PID_5201&MI_01\7&17D1C3FF&0&0001
 Class                   : HIDClass
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:

      ======================== USB Device ========================

        +++++++++++++++++ Device Information ++++++++++++++++++
Device Description       : SanDisk Cruzer Edge
Device ID                : USB\VID_0781&PID_556B\20043514800F42F2829F
Driver KeyName           : {36fc9e60-c465-11cf-8056-444553540000}\0023
Driver                   : C:\Windows\system32\DRIVERS\USBSTOR.SYS
Legacy BusType           : PNPBus
Class                    : USB
Service                  : USBSTOR
Enumerator               : USB
Location Info            : Port_#0002.Hub_#0006
Manufacturer Info        : USB Storage Device
Child Device 1           : Disk
 Device ID               : USBSTOR\DISK&VEN_SANDISK&PROD_CRUZER_EDGE&REV_1.18\123
 Class                   : DiskDrive
  Volume                 : \\?\Volume{4d513cf0-6422-11e4-86f7-001b2157a355}\
  Kernel Name            : \Device\HarddiskVolume17
  Mountpoint             : Z:\
USBDLM can ask on arrival of a new keyboard or network device if it shall be activated:
http://www.uwe-sieber.de/usbdlm_help_e.html#badusb

 


 
  Conditions and Download
 

Download latest release:
http://www.uwe-sieber.de/files/usbtreeview.zip
(~273KB)
Download old V2.4.4:
http://www.uwe-sieber.de/files/usbtreeview244.zip
(220KB)
Download old V2.0.2:
http://www.uwe-sieber.de/files/usbtreeview202.zip
(126KB)
Download old V1.5:
http://www.uwe-sieber.de/files/usbtreeview150.zip
(96KB)

UsbTreeView is Freeware.
 
Allowed:
- usage in any environment, including commercial
- include in software products, including commercial
- include on CD/DVD of computer magazines
 
Not allowed:
- modify any of the files
- offer for download by means of a "downloader" software

 

 



 

Uwe Sieber

Home: http://www.uwe-sieber.de/english.html