SourceQuest

bringing hardware & software together

Change History

Release 3.2.0 (12-February-2010)

These are the highlights of features added in release 3.2:

  • Support for Windows 7
    SourceUSB now supports Windows 7:
    • Minor application changes were made to make SourceUSB "Windows 7 Ready".
    • O/S specifc USB driver stack structures have been updated for Win7.
    • DIFx installer components have been updated to v2.1 for Win7.
    • Driver build now uses Windows Driver Kit 7600.

  • Support for Vista SP2
    SourceUSB now supports Windows Vista Service Pack 2:
    • O/S specifc USB driver stack structures have been updated for Vista SP2

  • New Win7 Hub Interface functions
    Windows 7 has introduced new functions at the Hub Bus Interface (USB_BUSIF_HUB_VERSION_7). These are now logged by SourceUSB:
    • CreateUsbDeviceV7
    • GetContainerIdForPort
    • SetContainerIdForPort
    • AbortAllDevicePipes
    • SetDeviceErrataFlag

  • New Win7 Miniport functions
    Windows 7 has introduced new functions at the Miniport Interface. These new functions are now logged by SourceUSB:
    • GetHcCapabilities
    • USBPORTSVC_EtwWrite

  • Support for Broadband Stick Modems
    USB Broadband Modems are initially enumerated as Mass Storage Class devices that then re-enumerate as Communication Class devices using the drive installation contents. This release fixes some plug-and-play issues that prevented SourceUSB from tracing the double enumeration sequence.

  • Enhanced Application and Driver Diagnostics
    SourceUSB's Help menu has added commands for enabling and saving a driver diagnostics file. The SourceUSB application also now registers as an event provider with Event Tracing for Windows. These enhancements will help with customer support.


Release 3.1.0 (15-August-2009)

These are the highlights of features added in release 3.1:

  • Mass Storage Class, Bulk-Only Transport
    The Bulk-Only Transport, used by flash drives, external hard disks and DVD players, etc., is now decoded:
    • All fields of the Command Block Wrapper (CBW) are decoded in the Log Details pane.
    • All fields of the Command Status Wrapper (CSW) are also decoded in the Log Details pane.

  • Log View Columns for CBW and CSW
    New Log View columns make it easy to locate command and status URBs.
    • The CBW column contains the unique tag value and operation code for bulk transfer URBs which carry a Command Block Wrapper.
    • The CSW column contains the unique tag value (which matches the paired CBW) and status for bulk transfer URBs which carry a Command Status Wrapper.

  • Decoding of SCSI Command Descriptor Blocks (CDBs)
    SourceUSB now decodes Command Descriptor Blocks of 109 SCSI operation codes carried by CBWs.
    • CDBs from the SPC-2, MMC-5, and RBC command sets are decoded.
    • The decoded fields for each CDB are displayed beneath the CBW in the Log Details pane.

  • Display of Class Specific Requests Embedded in Vista Control Transfer URBs
    There are many URBs which are used to send control transfers, which potentially carry class specific requests that SourceUSB decodes.
    • In this release URB_FUNCTION_CONTROL_TRANSFER_EX is added.
    • Setup packets in these control transfers are also now decoded by class.

  • New Documentation on Some Advanced User Interface Features
    The User’s Guide has been updated with more complete documentation on the advanced user interface capabilities:
    • Description of window pane pinning and unpinning behavior.
    • Use of the Ctrl+Tab shortcut to get the window selector popup.
    • A sample window layout for optimum Log View browsing.

  • Restructuring of the Analyzer Driver
    The analyzer driver has undergone fundamental refactoring of some internals, for improved maintainability and stability.

  • Bug Fixes
    • Under some circumstances a "dangling reference" to a removed device could cause a BSOD.


Release 3.0.1 (14-November-2008)

In this release, the following bug fixes were made:

  • Host Controller Hot Plug - crash from hot-plug of PC Card and ExpressCard - PCI Express host controller cards; this also applies to devices which are hosted on host controller cards, e.g. Sierra Wireless aircard; host-controller can be disabled and re-enabled from device manager without hanging application.
  • Registry Repair - registry repair after a program crash could cause application hang;.
  • Minidump File Overwritten - multi-exception crash could cause minidump files to be overwritten; now each exception has a unique minidump file named sqdXXXX.dmp
  • Multiple Driver Nodes with Same Name - Drivers Tab now displays driver object addresses for each driver node; helps distinguish multiple Driver nodes with same name.

Release 3.0.0 (11-June-2008)

These are the highlights of features added in release 3.0:

  • Windows x64 Support
    Both x86 and x64 setup programs are now included in each release. Supported x64 platforms include:
    • Windows XP/x64
    • Windows Server 2003/x64
    • Windows Vista/x64
    Driver and setup programs are now digitally signed with an Authenticode Certificate.

  • Capture File Restructured
    As in previous versions, SourceUSB captures a log of events in a binary ".srcusb" file. The internal structure of the capture file has been modified to be portable between x86 and x64 platforms. For example, you can capture a trace using SourceUSB-x64 on Vista/x64 and subsequently view it using SourceUSB-x86 on Windows XP/x86.

  • Upgrade to Visual Studio "Whidbey Style"
    SourceUSB's user interface has been redesigned with the robust and versatile Codejock Xtreme Toolkit. In this release, SourceUSB has incorporated their Docking Pane and Property Grid features:
    • Panes can be docked, floated or combined in a tabbed window
    • Panes can be pinned or can auto-hide
    • Layout is saved and restored on program close and open
    • Property Grids provide compact display of two column data
    • Property Grids come with dedicated toolbars

  • Replacement of Details Pane with multiple property grids
    In previous versions, the “Details Pane” contained a mini-browser window that rendered dynamic HTML content to display details relating to a selected log record, device properties and USB descriptors for a selected device tree node, or properties for the system as a whole. To make all of this information accessible at the same time, three new property grids are used:
    • Log Details - shows detailed information for selected log records in the listview
    • Device Properties - shows PnP properties and descriptors for selected nodes in the device tree
    • System Properties - shows properties for the system as a whole

  • Logging Irp dispatch return status
    Previously, two states were logged for each Irp (I/O Request Packet), “initiated” when the Irp is sent down a device stack, and “completed” when the Irp completion routine is called by I/O Manager. In this release, a third state is logged for each Irp, its “return” state. This log entry is generated at the return from a dispatch routine. This log record reveals asynchronous Irps when the return status is STATUS_PENDING.

  • Large buffer support
    Previously, data capture was limited to either 8, 64, or 64K bytes per URB transfer. This meant that no more than 64K bytes of a transfer could be captured. In this release, several higher capture limits are allowed: 256K, 512K, 768K, and 1024K. The larger transfers are captured using additional 64K capture buffers. Each additional capture buffer adds another log record.

  • Enhanced support for Isochronous/Interrupt transfers
    The following endpoint characteristics are now decoded:
    • Additional transactions per microframe (high-bandwidth)
    • Effective maximum packet size (up to 3K/microframe)
    • Isochronous Usage Type
    • Isochronous Synchronization Type
    • bInterval is interpreted depending on endpoint type
    • Counts of zero-length and error packets per Isochronous URB transfer are displayed as a column in the Log ListView and in the Log Details Pane.

  • Compatibility with latest service packs
    SourceUSB has been tested with the following recent service packs:
    • Windows XP Service Pack 3
    • Windows Vista Service Pack 1


Release 2.1.1 (5-December-2007)

In this release, the following bug fixes were made:

  • Installer error - Repaired installer error which displayed a message box with "Failed to move MSI package to cache" and terminated.
  • Boot logging - When starting SourceUSB after reboot (with boot logging enabled), new log records start at sequence number 0. This is now fixed so that subsequent record numbers are consecutive with earlier collected records.
  • Log enable reset - Rarely, the log enable for a device object could be reset during a capture session in response to a PnP event.
  • Log enable cleared - Sometimes logging enable (device tree checkbox) for a device would be cleared when starting capture.

Release 2.1.0 (28-April-2007)

These are the highlights of features added in release 2.1:

  • Miniport-Usbport interface logging for Vista
    This release supports logging of direct function calls between the miniport driver (EHCI, UHCI, OHCI) and the Usbport driver in Windows Vista.

  • Support 11 new Usbport-Miniport interface functions for Vista
    This release includes support for new interface functions introduced in Windows Vista Build 6000: ReleasePortControl, ReadConfigFlag, SetWakeOnConnect, InterruptDpcEx, NotifyTransferQueueState, CheckHwSync, USBPORTSVC_RequestAsyncCallbackEx, USBPORTSVC_CancelAsyncCallback, DbgFreeEndpoint, HaltController, and Get32BitMicroFrameNumber.

  • Support 8 new USB internal ioctl requests for Vista
    This release includes support for new USB internal ioctls introduced in Windows Vista Build 6000: IOCTL_INTERNAL_USB_RECORD_FAILURE, IOCTL_INTERNAL_USB_GET_DEVICE_HANDLE_EX, IOCTL_INTERNAL_USB_GET_TT_DEVICE_HANDLE, IOCTL_INTERNAL_USB_GET_TOPOLOGY_ADDRESS, IOCTL_INTERNAL_USB_NOTIFY_IDLE_READY, IOCTL_INTERNAL_USB_REQ_GLOBAL_SUSPEND, IOCTL_INTERNAL_USB_REQ_GLOBAL_RESUME, and IOCTL_INTERNAL_USB_GET_DEVICE_CONFIG_INFO.

  • Support 2 new URBs for Vista
    This release includes support for new URBs introduced in Windows Vista Build 6000: URB_FUNCTION_SET_PIPE_IO_POLICY, URB_FUNCTION_GET_PIPE_IO_POLICY.

  • Support 15 new Hub-Bus interface functions for Vista
    This release includes support for new Hub-Bus interface functions introduced in Windows Vista Build 6000: CreateUsbDeviceEx, InitializeUsbDeviceEx, HubIsRoot, AcquireBusSemaphore, ReleaseBusSemaphore, CalculatePipeBandwidth, SetBusSytemWakeMode, SetDeviceFlag, HubTestPoint, GetDevicePerformanceInfo, WaitAsyncPowerUp, GetDeviceAddress, RefDeviceHandle, DerefDeviceHandle, and SetDeviceHandleIdleReadyState.

  • Delta Timings are now displayed
    Log View can now display performance timing as a time difference between adjacent log entries.

  • Device Reports in HTML
    HTML is now an export option for Device Reports. This allows quick capture of device and system configurations as an easily viewable report.

  • Raw Descriptor Display
    In addition to the decoded descriptor display, the DataBar will now show the raw bytes of the descriptor block.

  • 3 new reference guides have been added to the help system
    New reference guides have been added including: USB internal ioctl (USBINT) reference, Hub-Bus interface (IHUB) function reference, and Miniport-Usbport interface (MPORT) function reference.

  • Extended context sensitive help for trace records
    The Details Pane and Log View can supply help on a specific record (e.g. USBINT request). In this release, the new reference guides provide links to USBINT, IHUB, and MPORT trace records.

  • Enhancements and bug fixes
    Many bug fixes and enhancements have been made, these include:
    • SourceUSB application now uses shared libraries to reduce file size.
    • Improved tracking of PipeHandles on transfers including the NULL handle for the default endpoint.
    • Improved tracking of configuration/interface/endpoint on transfers:
      • Early capture of device handle, interface, configuration data.
      • Use Setup Packet information from CONTROL_TRANSFER_EX urbs.
    • Bug fix: Detect bogus non-zero DeviceHandle values which would sometimes prevent a device from being properly recognized by the Analyzer Driver.
    • Bug fix: SET_POWER filter was not working, now corrected.
    • Bug fix: Repaired validation errors in the MSI installer.
    • Bug fix: Emptying "local temp" directory could break SourceUSB uninstall; MSI file is now cached to a sub-directory of "\WINDOWS\Downloadable Installations".

Release 2.0.1 (9-December-2006)

This is a bug fix release following Windows Vista RTM.
See SourceUSB 2.0.1 Release Notes for details.


Release 2.0.0 (3-July-2006)

These are the highlights of features added in release 2.0:


Release 1.2.0 (26-September-2005)

These are the highlights of features added in release 1.2:

  • Contiuous logging - logging can now continue non-stop by wrapping to the alternate buffer once the active buffer fills. Logging can be stopped manually using the toolbar or menu. Logging can also be stopped by a trigger.

  • Capture triggering - a trigger can be defined which consists of a combination of: request type, request status, started or completed status, and data direction. Defined triggers can be named and saved for later recall.

  • Background logging - in previous versions, log records were displayed as they were received; this is still available as the default 'real-time" logging. For devices with high throughput, a "real-time" display can not keep up. For this scenario, logging is best performed "silently" in the background until manually stopped or a trigger is encountered.

  • Sequence tagging - log records have been numbered sequentially in all versions of SourceUSB. In previous versions, two different streams of data from the analyzer driver were combined, so it was not possible to detect dropped data from the sequence numbers. In this release, the data streams have been separated. This makes it possible to detect records which arrive out-of-sequence. At the end of each log session, a warning is given if any out-of-sequence records were detected. Out-of-sequence records are highlighted in red in the log view. Seeing out-of-sequence records when "real-time" logging is a hint that background logging would be more appropriate.

  • New context menu commands - in the log view, every log record has a performance counter value stored with it and these are used to compute the elapsed time. Any record can be designated as "time 0" using the "Time Origin" menu command. The default units for elapsed time are seconds but context menu commands have been added for selecting seconds, milliseconds, or microseconds.

  • Auto-sizing of log view columns - two methods are provided to size the columns of the log view. The first is an auto-sizing that sets some columns to a fixed width and other columns shrink or expand in proportion to the overall size of the client window. The second method is a context menu command to resize columns to "best fit" the displayed data. Log view columns can be removed and added back as well as rearranged. Your arrangement is saved on exit from the application and restored next time SourceUSB is launched.

  • Windows Installer - the new SourceUSB installation package is a "wrapped" MSI file. In older releases, problems would occur if a previous installation was not completely removed before installing a new version. The new installer accurately detects previous installations of SourceUSB and prevents any attempt to install over an incompletely removed instance. The new "repair" function allows "in-place" refresh of package components. Installation is for all machine users, while it was for a single-user in previous versions.

  • User-interface improvements - tooltips for menu items and toolbar buttons also display short cut keystrokes. Status bar indicators are provided for continuous logging, trigger active, filter active, and capture in progress. For background logging, a pair of progress bars show the fill level of each capture buffer.

  • Bug fixes - many bug fixes have been made including fixes for SQReport crashdumps we have received from customers and trial users.


Release 1.1.0 (23-July-2004)

These are the highlights of features added in release 1.1:

  • New Data bar - a separate dockable, scrollable data window for viewing transfer buffers up to 64 Kbytes transfer size

  • Capture filtering - use filters to limit capture of log records

  • Max log size increased - logging buffer size is now selectable from 1, 5, 10, 50, or 100 Megabytes

  • Export log data as XML - capture buffers and existing logfiles can be exported as XML files; the exported data follows a defined schema; a sample XSL stylesheet illustrates how to scan log records

  • Export device report as XML - a new report has been created which pulls together many device characteristics into a single document; this report has a defined schema and a sample XSL stylesheet

  • Relaxed trial limits - capture buffer size increased to 256 Kbytes; no limit on transfer buffer sizes

  • Log file schema enhanced - logging settings, filter settings, timestamp, Windows platform string now included

  • Crash recovery improved - application crash recovery is more robust and includes reseting the analyzer driver and auto-generation of problem reports by SQReport.exe for emailing to sqsupport@sourcequest.com

  • Bug fixes - many bug fixes have been made including corrections to pipe information, end point direction, configuration value; for more details see the release notes.