SourceQuest

bringing hardware & software together

Feature Matrix

Key features of SourceUSB 3.2 include:

Supported Platforms

Windows Platform Supported Notes
Windows 2000 yes SP1,SP2,SP3,SP4
Windows XP yes SP1,SP2,SP3
Windows 2003 Server yes SP1,SP2
Windows Vista yes SP1,SP2-(3.2)
Windows 7 (3.2) yes
Windows XP x64 yes SP1,SP2
Windows 2003 Server x64 yes SP1,SP2
Windows Vista x64 yes SP1,SP2-(3.2)
Windows 7 x64 (3.2) yes
Windows ME no
Windows 98 no

Supported Devices

USB Device Supported Notes
Host controller yes OHCI, UHCI, EHCI
Hubs yes USB 1.1, USB 2.0
Devices yes USB 1.1, USB 2.0

Class Decoding

Device Class Requests Descriptors Transports
Hub Class specific Hub descriptor N/A
HID Class specific HID, Report descriptors N/A
Mass Storage (3.1) Class specific N/A Bulk-Only, CBW/CSW, SCSI CDBs (3.1)

User Interface

Feature Description
General
Visual Studio like interface "Whidbey-style" docking panes & property grids
Installation Streamlined installation using Windows Installer (MSI) Package; requires reboot
Uninstall Uninstall through Windows Control Panel; requires reboot
Device Tree Tab View
Bus Topology View Shows host controllers, hubs and ports, and attached devices; selects devices for logging; auto-refreshed
Device Object Stacks View Shows USB device-object stacks; selects stacks for logging; auto-refreshed
Driver View Shows drivers and associated device objects; selects drivers or device objects for logging; auto-refreshed
Stack Inspector View
Stack Inspector View Displays device object stack for selection in any of the Device Tree tab views.
Log View
Log Window Scrolled or non-scrolled window of captured log records
Log Row Real-time display of a captured time-stamped I/O request or event
Log Columns Add, remove, rearrange columns; save/restore column layouts; auto-sizing of column width
Displayed Columns Type, Sequence, Request, I/O, Elapsed Time, DO, Cfg:Ifc:Epa, IRP, IRP Status
Displayed Column ISO Err/ZLP: count of isochronous zero length and error packets per URB
New Displayed Column CBW: for Mass Storage, Bulk-Only transport, Command Block Wrapper tag value and operation code (3.1)
New Displayed Column CSW: for Mass Storage, Bulk-Only transport, Command Status Wrapper tag value and status (3.1)
Continuation Log Rows To log large transfer buffers, up to 1 Megabyte per URB, multiple 64Kbyte log records follow a starting record
Property Grids
Log Details Displays particulars for a selected log row: including URB fields, descriptors, setup packets, etc.
New Log Details All fields of Command Block Wrappers (CBWs) and Command Status Wrappers (CSWs); SCSI Command Descriptor Blocks (CDBs) within CBWs (3.1)
Device Properties Displays PnP Properties or descriptors for a selected node in the Device Tree tab
System Properties Displays system information for the current machine or the machine where the log file was captured
Data View
Data Bar Window Displays buffer contents for control, bulk, interrupt, and isochronous transfers; displays raw byte stream for all descriptors
Search/Filter/Trigger
Searching and Filtering Searching and Filtering of a captured log by a combination of I/O request types, status, and state
Filter and Trigger Definition Multi-tabbed interface to Filter/Trigger definition dialog
Context Help
Program Help Context sensitive help is provided through the context menu for many program features.
Log View Record Help Context sensitive URB, USBINT, IHUB, MPORT Help in log view using context menu on log records.

Logged I/O Requests and Events

Request Type Version Description
IRP States
Initiated Log record created when IRP is being passed down the device stack.
Dispatch Return Log record created when IRP dispatch routine returns (reveals pending Irps)
Completed Log record created when IoCompleteRequest has been called on the IRP.
IRP-Based Requests
URB Windows 2003 Server and newer All USB Request Blocks carried via IOCTL_INTERNAL_USB_SUBMIT_URB
URB Vista and newer Added CONTROL_TRANSFER_EX, SET_PIPE_IO_POLICY, GET_PIPE_IO_POLICY
URB Windows 2000 3 undocumented URBs
USB Internal Ioctls Windows 2003 Server and newer All kernel mode ioctls
USB Internal Ioctls Vista and newer 8 additional kernel mode ioctls
Host Controller Ioctls Through Windows 7 All user-mode ioctls to the host controller driver
Hub Ioctls Through Windows 7 All user-mode ioctls to the hub driver, including two new ioctls since Vista
HID Ioctls Through Windows 7 All user-mode ioctls to the HID class driver
Power Through Windows 7 All minor power Irps
PnP Through Windows 7 Start and Remove Irps
Function Call States
Initiated Log record created when function is being entered
Completed Log record created when function is returning
Function Interfaces
Hub-Bus Interface Version 5 (Windows 2003 Server) All interface functions
Hub-Bus Interface Version 6 (Windows Vista) 15 new interface functions
Hub-Bus Interface Version 7 (Windows 7) 6 new interface functions (3.2)
Miniport-Usbport Interface Version 2.0, Windows XP and Windows 2003 Server (x86 only) 41 functions are logged
Miniport-Usbport Interface Version 3.0, Windows Vista (x86 only) 11 new functions are logged
Miniport-Usbport Interface Version 3.1, Windows 7 (x86 only) 2 new functions are logged (3.2)

Logging Control

Feature Description
Enabling Capture
Per device By selecting a node in USB Topology View of Device Tree Tab View.
Per device object or driver By selecting a device object or driver in Driver View of Device Tree Tab View.
Auto-enabled Auto-enable capture for newly arrived (hot-plugged) devices.
Boot-enabled Capture Selected device objects can be enabled for capture at next system boot.
Hub-Bus Interface Capture Enabled by selecting the root-hub or parent root-hub to which a device is attached.
Miniport-Usbport Interface Capture Enabled by selecting the host controller to which a device is attached.
Filtering Capture
Defined Filters Filters can be applied during capture to reduce amount of data collected.
Halting Capture
Defined Triggers A defined trigger can be used to stop capture.
Continous Capture
Continuous logging Buffer wrapping can be enabled to continuously log to a fixed size buffer.
Background Capture
Background logging Suppress real-time display and show capture progress bar for high throughput devices

Capture Log Files

Feature Description
Format
Binary file Logs can be saved to a binary file for later viewing
Maximum File Size Maximum log file may be set in the range 1 to 100 Mbytes
Common format Common log file format is used for x86 and x64
Contents
Log Records All buffered log records are stored to the log file.
Device Tree The USB device tree and device properties are stored to the log file.
System Properties Information (including date and time) about the system on which the log file was collected is also stored.
Configuration Options SourceUSB configuration options in use during the capture are stored.
Exports and Reports
XML Log Export All or range of log records exported as XML file
XML Log Processing XML log processing examples using C++ parser
XML Device Report Device report for items checked in Device Tree tab exported as XML file
HTML Device Report Device report for items checked in Device Tree tab exported as HTML file
Diagnostics
Analyzer Driver Diagnostics (3.2) Enabled/disabled via help menu; captured to .csv file
Event Tracing for Windows (3.2) SourceUSB application is a registered event provider

Performance Measurements

Feature Description
Timestamps All log records are time-stamped.
Elapsed Time Display elapsed time in units of seconds, milliseconds, or microseconds
Set Time Origin Any log record can be set as time 0 for displaying relative timestamps
Delta Times Log View can toggle between elapsed timings and delta timings (time differences between adjacent records)

For specific details on new features added in release 3.2, see SourceUSB Change History.
If you have suggestions for features that you would like to see, please share them with us by sending your ideas to: Product Feedback