summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhathach <[email protected]>2013-10-16 12:15:24 +0700
committerhathach <[email protected]>2013-10-16 12:15:24 +0700
commit92646ebadb1c1cf89d2e9d0341f2abb3becefeb4 (patch)
tree324557330cfaab570411c379c2a5e47debcbe52e
parent86b3e3174dcb68522e3f72c18ef5830b4e6aef53 (diff)
add UsbTreeView to tools folder
-rw-r--r--tools/usbtreeview/UsbTreeView.txt168
-rw-r--r--tools/usbtreeview/Win32/UsbTreeView.exebin0 -> 206784 bytes
-rw-r--r--tools/usbtreeview/x64/UsbTreeView.exebin0 -> 246208 bytes
3 files changed, 168 insertions, 0 deletions
diff --git a/tools/usbtreeview/UsbTreeView.txt b/tools/usbtreeview/UsbTreeView.txt
new file mode 100644
index 000000000..9f5af4344
--- /dev/null
+++ b/tools/usbtreeview/UsbTreeView.txt
@@ -0,0 +1,168 @@
+
+UsbTreeView V2.3.1.0 - Shows the USB Device Tree
+Freeware by Uwe Sieber - www.uwe-sieber.de
+
+Works under Window 2000, XP, and higher
+
+Usage:
+UsbTreeView [/R:filename]
+
+/R:filename write (silently) a report to filename
+
+
+
+UsbTreeView is based upon the USBView sample from the Windows Driver Kit for Server 2003.
+
+Improvements:
+- better icons in the treeview
+- refresh on device change performed asynchronously, selected item stays selected
+- shows additional information gathered from the Windows device management
+- shows drive letters/mountpoints and COM ports
+- can perform safe removal, device restart and port restart
+- custom font and color for the right pane
+- toolbar with jump-lists for easily finding devices in complex trees
+
+History
+V1.1 - first published version
+V1.2 - works with Windows 2000 again
+V1.3 - shows some more information about USB 3.0 devices
+V1.3.1 - minor fixes
+V1.3.2 - workaround for TI root hubs
+V1.4.0 - device safe removal and restart, saves window position
+V1.4.1 - shows driver version and date, custom font and color for the right pane,
+ removed some redundant information
+V1.4.2 - keeps tree item selection over refresh
+V1.5.0 - More USB information
+ - Extended USB information available under Windows 8
+ - Rearranged the text output
+ - Some minor improvements
+V2.0.0 - USB enumeration rewritten; faster and independent from the treeview
+ - Port restart
+ - Extended host controller information
+ - Some failed USB requests are re-tried in the background, e.g. for
+ mouses
+ - nearly flicker free refresh and resize
+ - lots of minor improvements
+V2.0.1 - Bugfix: Crash on complex descriptors
+V2.0.2 - Bugfix: Multiple volumes per disk not shown correctly
+ - Bugfix: String descriptors which are referenced more than once was
+ shown multiple times each
+V2.1.0 - Decoding of USB Video Class (UVC) 1.1 descriptors
+ - Toolbar with jump-lists for easily finding devices in complex trees
+ - Driveletters, COM-Ports or extended device names shown in the device tree
+V2.1.1 - Bugfix: Crash on root-hubs which are not a child device of the host controller
+V2.1.2 - Bugfix: Windows 'app key' (or Shift+F10) opened the context menu in the wrong position
+V2.1.3 - Bugfix: V2.1.2 always showed wrong error for the device's Address property
+ Bugfix: Workaround for font problem
+V2.1.4 - Bugfix: V2.1.3 switched back to the default font
+V2.1.5 - New: Can write a report
+ New: Improved device names in the treeview
+V2.1.6 - Bugfix: Crash on decoding USB3 standard hubs
+ - Bugfix: some format glitches on USB3 standard hubs
+V2.1.7 - Bugfix: Decoding of bmAttributes in USB 2.0 Extension Descriptor was wrong
+V2.1.8 - Bugfix: Decoding of SuperSpeed Endpoint Companion Descriptors was done only for MSC devices
+V2.1.8.1 - Bugfix: Crash when saving report to 'long' path
+V2.1.9 - Bugfix: Crash on USB-Hubs with more than 16 Ports
+ - New: Commandline parameter for writing a report, e.g. /R:U:\UsbTreeView-Report.txt
+V2.2.0 - New: Shows some more device properties
+ - New: Can show the Windows device properties dialog
+V2.2.1 - Bugfix: V2.2.0 worked under Windows 7 and 8 only
+V2.3.0 - Bugfix: Several bugs which could cause crashes
+ - New: Decoding of HID descriptors
+V2.3.1 - Bugfix: Font color setting was ignored
+
+ToDo:
+- USB Video Class H.264 decoding
+- Maybe Unicode support if someone shows me that it is required
+
+
+
+About Unknown Descriptors
+
+There are two reasons why decriptors cannot be decoded and therefore
+shown as "Unknown":
+- decoding is not implemented
+- the device's InterfaceClass is 0xFF (vendor specific), so class specific
+ descriptors cannot be decoded since their class is unknown
+
+So, if you have an unknown descriptor and the interface class is not 0xFF
+then please let me know, maybe I find the right specification document
+and can add the decoding for it.
+
+For an unknown reason HID descriptors often cannot be read, Windows
+returns ERROR_GEN_FAILURE or ERROR_INVALID_PARAMETER. As far as I have
+seen it depends alone on the device but another user reported that
+some device's hid descriptor can be read under NT6 but not under NT5.
+
+
+
+About "Safe Removal" and "Restart"
+
+On Safe Removal UsbTreeView first calls the configuration management call
+CM_Query_And_Remove_SubTree. On success the device has the problem code
+21 which is CM_PROB_WILL_BE_REMOVED. A code 21 device can be reactivated
+by performing a DIF_PROPERTYCHANGE class installer call. This is what
+UsbTreeView does if you select "Restart device".
+But CM_Query_And_Remove_SubTree needs admin previleges, otherwise it fails
+with CR_ACCESS_DENIED. In this case CM_Request_Device_Eject is called
+which works without admin previleges but leads to problem code 47 which
+is CM_PROB_HELD_FOR_EJECT. Such a device cannot be reactivated alone.
+A reactivation is possible by restarting the port or the whole hub it is
+attached to. But the latter of course restarts all devices attached to
+the hub.
+
+In all cases UsbTreeView just performs the system call and shows a
+message-box if Windows returns an error. But Windows does not always
+return an error, even there was one, so sometimes nothing happens at all.
+
+
+
+About "Restart Port"
+
+This calls IOCTL_USB_HUB_CYCLE_PORT which simulates a disconnect and
+reconnect of the attached device.
+It is available under XP but usually only for hubs which run with the
+Microsoft default driver. 3rd party drivers usually return
+ERROR_UNKNOWN_FUNCTION.
+Under Vista and Windows 7 it is no more supported, it always fails
+with ERROR_NOT_SUPPORTED.
+With Windows 8 it works again but in contrast to XP admin previleges
+are required. Without admin previleges it fails as under Vista and Win7
+with ERROR_NOT_SUPPORTED.
+
+
+About the Debug-Port
+
+In Microsoft's USBView sample there is a list of USB host controllers
+and their debug port. I've put the table into UsbTreeView, it shows
+then in the properties of the host controller a line like so:
+DebugPort (from List): 1
+Windows 8 has extended USB information, it reports for each port if it
+is debug capable and this works indeed (seen on a i945G Chipset with ICH7).
+
+
+
+USB Mouses
+
+If an USB mouse is moved while the tool requests its USB properties there
+is usually an error because the mouse just has more important things to
+do. UsbTreeView tries then for some seconds to get this information.
+You might see the yellow question mark at your mouse for a moment which
+disappears as soon as you stop moving the mouse. This retry mechanism is
+done for all type of devices but usually its a mouse where it helps.
+
+
+Information shown in the tree-view
+
+UsbTreeView is optimized for speed, therefore USB descriptors are not
+gathered before a device is selected in the tree-view. So, information
+which come from USB descriptors cannot be shown in the tree-view, it
+all comes from the Windows devices manager.
+
+
+
+
+Uwe Sieber, [email protected]
+2013-10-14
+
+
diff --git a/tools/usbtreeview/Win32/UsbTreeView.exe b/tools/usbtreeview/Win32/UsbTreeView.exe
new file mode 100644
index 000000000..2df3ddff7
--- /dev/null
+++ b/tools/usbtreeview/Win32/UsbTreeView.exe
Binary files differ
diff --git a/tools/usbtreeview/x64/UsbTreeView.exe b/tools/usbtreeview/x64/UsbTreeView.exe
new file mode 100644
index 000000000..ffebcfa6a
--- /dev/null
+++ b/tools/usbtreeview/x64/UsbTreeView.exe
Binary files differ