USBlyzer - Software USB Protocol Analyzer for Windows   USB Analyzer for Windows  

Latest Events

 June 18, 2008
USBlyzer 1.3 has been released.
See USBlyzer USBlyzer 1.3 Release Notes for details.
 
 
 December 26, 2007
USBlyzer 1.2 has been released.
  • When displaying the time, we previously only showed the absolute system time the I/O request was captured. Now you can configure USBlyzer to display the time in the following formats:

    • Absolute system time (11:45:14.278)

    • Time elapsed since capture started (00:00:15.953)

    • Seconds elapsed since capture started (2.396)

    To configure the time display settings, new section was added in the Preferences Dialog under Options->Preferences...->Time.

  • Hub Class support added. Now we decode all Hub class-specific requests (Get Hub Status, Clear Port Feature, Get Hub Descriptor, Reset TT etc.). Read more about Hub class decoder.

  • Request Summary analysis was significantly improved. When displaying the summary for Control Transfers, we previously only showed the Setup Packet in raw format. Now the summary analysis is much more specific and relevant for all USB Standard and USB Hub Requests.

  • Previously we only captured state-transition Plug and Play IRPs (start, stop, remove). Now USBlyzer captures and decodes all Plug and Play IRPs. The following was added:

    • IRP_MN_QUERY_DEVICE_RELATIONS

    • IRP_MN_QUERY_INTERFACE

    • IRP_MN_QUERY_CAPABILITIES

    • IRP_MN_QUERY_RESOURCES

    • IRP_MN_QUERY_RESOURCE_REQUIREMENTS

    • IRP_MN_QUERY_DEVICE_TEXT

    • IRP_MN_FILTER_RESOURCE_REQUIREMENTS

    • IRP_MN_READ_CONFIG

    • IRP_MN_WRITE_CONFIG

    • IRP_MN_EJECT

    • IRP_MN_SET_LOCK

    • IRP_MN_QUERY_ID

    • IRP_MN_QUERY_PNP_DEVICE_STATE

    • IRP_MN_QUERY_BUS_INFORMATION

    • IRP_MN_DEVICE_USAGE_NOTIFICATION

  • Added capturing and decoding support for the following Windows® Vista™ URBs:

    • URB_FUNCTION_CONTROL_TRANSFER_EX (URB_CONTROL_TRANSFER_EX structure)

    • URB_FUNCTION_SET_PIPE_IO_POLICY (URB_PIPE_IO_POLICY structure)

    • URB_FUNCTION_GET_PIPE_IO_POLICY (URB_PIPE_IO_POLICY structure)

  • Added capturing and decoding support for the following Windows® Vista™ IOCTLs:

    • IOCTL_USB_GET_HUB_CAPABILITIES_EX (USB_HUB_CAPABILITIES_EX structure)

  • When displaying the completed IRP status, we previously only showed the completion status of the IRP itself in the IRP Status column of the Capture List. Now for all completed URBs you can also see the USBD_STATUS. This might be very useful. For example, for failed URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL you might see "Unsuccessful (Device not Responding)" instead of just "Unsuccessful". So in this particular case you know that URB failed with USBD_STATUS_DEV_NOT_RESPONDING, by just looking at Capture List.

  • Export Capture List content to XML report.

  • New Capture List column "Request Details" has been added. This feature is extremely useful in analyzing the captured data and greatly speeds up the analysis process. Now you can see, at a glance, by just looking at Capture List the Number of Bytes transferred for bulk and isochronous transfers, the Port Number for IOCTL_USB_GET_NODE_CONNECTION_XXX I/O control requests, Request Type and Recipient for control transfers and more. The table below is the complete list of the data that will be displayed in the Request Details column.

    Request Request Details Column
    P'n'P IRP_MN_QUERY_DEVICE_RELATIONS DEVICE_RELATION_TYPE enumeration member
    IRP_MN_QUERY_INTERFACE Interface Type. For example, "USB Bus Driver" for USB_BUS_INTERFACE_USBDI_GUID or "USB Port Driver" for USB_BUS_INTERFACE_HUB_GUID.
    IRP_MN_QUERY_DEVICE_TEXT DEVICE_TEXT_TYPE enumeration member
    IRP_MN_QUERY_ID BUS_QUERY_ID_TYPE enumeration member
    IRP_MN_DEVICE_USAGE_NOTIFICATION DEVICE_USAGE_NOTIFICATION_TYPE enumeration member
    IOCTL IOCTL_USB_HCD_DISABLE_PORT
    IOCTL_USB_HCD_ENABLE_PORT
    Port Index (zero based)
    IOCTL_USB_GET_NODE_CONNECTION_INFORMATION
    IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX
    IOCTL_USB_GET_NODE_CONNECTION_NAME
    IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME
    IOCTL_USB_GET_NODE_CONNECTION_ATTRIBUTES
    IOCTL_USB_HUB_CYCLE_PORT
    Port Number
    IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION Port Number and Descriptor Type
    URB URB_FUNCTION_SELECT_CONFIGURATION Configuration Value
    URB_FUNCTION_SELECT_INTERFACE Interface Number and Alternate Settings
    URB_FUNCTION_CONTROL_TRANSFER
    URB_FUNCTION_CONTROL_TRANSFER_EX
    Request Type (Set Feature, Get Descriptor etc.), Recipient (Device, Interface, Endpoint etc.), Feature Selector (Remote Wakeup etc.) and other relevant info.
    URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER
    URB_FUNCTION_ISOCH_TRANSFER
    Transfer Buffer Length or Number of Bytes Transferred
    URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE
    URB_FUNCTION_GET_DESCRIPTOR_FROM_INTERFACE
    URB_FUNCTION_GET_DESCRIPTOR_FROM_ENDPOINT
    URB_FUNCTION_SET_DESCRIPTOR_TO_DEVICE
    URB_FUNCTION_SET_DESCRIPTOR_TO_INTERFACE
    URB_FUNCTION_SET_DESCRIPTOR_TO_ENDPOINT
    Descriptor Type and Descriptor Index
    URB_FUNCTION_SET_FEATURE_TO_DEVICE
    URB_FUNCTION_SET_FEATURE_TO_INTERFACE
    URB_FUNCTION_SET_FEATURE_TO_ENDPOINT
    URB_FUNCTION_SET_FEATURE_TO_OTHER
    URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE
    URB_FUNCTION_CLEAR_FEATURE_TO_INTERFACE
    URB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT
    URB_FUNCTION_CLEAR_FEATURE_TO_OTHER
    Feature Selector (Halt, Test Mode etc.)
    URB_FUNCTION_GET_INTERFACE Interface Number
    URB_FUNCTION_GET_STATUS_FROM_ENDPOINT Endpoint Number and Direction
    URB_FUNCTION_CLASS_DEVICE
    URB_FUNCTION_CLASS_INTERFACE
    URB_FUNCTION_CLASS_ENDPOINT
    URB_FUNCTION_CLASS_OTHER
    Request Type (Get Hub Status, Set Port Feature etc.), Recipient (Device, Interface, Endpoint etc.), Feature Selector (Over-Current, Connect Status Change etc.) and other relevant info.
  • New Data Analysis Panel has been added. When displaying the data buffer contents, we previously only showed the raw hexadecimal dump in the Raw Data Panel. Now you can also see the complete analysis for many types of requests in Data Analysis Panel. USBlyzer is able to verify the general compliance of USB Request Packets with the USB Specification. Any incompatibilities are marked with red color. The table below is the complete list of the data that will be decoded and displayed in details on the Data Analysis panel.

    Request Data Analysis Panel
    P'n'P IRP_MN_QUERY_DEVICE_RELATIONS DEVICE_RELATIONS structure
    IRP_MN_QUERY_INTERFACE Interface structure like USB_BUS_INTERFACE_USBDI_V0, USB_BUS_INTERFACE_HUB_V0, USBC_DEVICE_CONFIGURATION_INTERFACE_V1 etc.
    IRP_MN_QUERY_CAPABILITIES DEVICE_CAPABILITIES structure
    IRP_MN_QUERY_BUS_INFORMATION PNP_BUS_INFORMATION structure
    Kernel-Mode IOCTL IOCTL_INTERNAL_USB_GET_HUB_NAME
    IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION
    IOCTL_INTERNAL_USB_GET_BUS_INFO
    IOCTL_INTERNAL_USB_GET_CONTROLLER_NAME
    USB_HUB_NAME
    USB_IDLE_CALLBACK_INFO
    USB_BUS_NOTIFICATION
    USB_CONTROLLER_NAME
    structures
    User-Mode IOCTL IOCTL_USB_HCD_GET_STATS_1
    IOCTL_USB_GET_ROOT_HUB_NAME
    IOCTL_USB_GET_NODE_INFORMATION
    IOCTL_USB_GET_NODE_CONNECTION_INFORMATION
    IOCTL_USB_GET_NODE_CONNECTION_NAME
    IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME
    IOCTL_GET_HCD_DRIVERKEY_NAME
    IOCTL_USB_HCD_GET_STATS_2
    IOCTL_USB_GET_HUB_CAPABILITIES
    IOCTL_USB_GET_NODE_CONNECTION_ATTRIBUTES
    IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX
    IOCTL_USB_GET_HUB_CAPABILITIES_EX
    HCD_STAT_INFORMATION_1
    USB_ROOT_HUB_NAME
    USB_NODE_INFORMATION
    USB_NODE_CONNECTION_INFORMATION
    USB_NODE_CONNECTION_NAME
    USB_NODE_CONNECTION_DRIVERKEY_NAME
    USB_HCD_DRIVERKEY_NAME
    HCD_STAT_INFORMATION_2
    USB_HUB_CAPABILITIES
    USB_NODE_CONNECTION_ATTRIBUTES
    USB_NODE_CONNECTION_INFORMATION_EX
    USB_HUB_CAPABILITIES_EX
    structures
    IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION USB_DESCRIPTOR_REQUEST structure
    All Standard USB Descriptors:
    • Device Descriptor

    • Device Qualifier Descriptor

    • Configuration Descriptor

    • Other Speed Configuration Descriptor

    • String Descriptor

    URB URB_FUNCTION_CONTROL_TRANSFER
    URB_FUNCTION_CONTROL_TRANSFER_EX
    All Standard USB Requests:
    • Get Status

    • Clear Feature

    • Set Feature

    • Set Address

    • Get Descriptor

    • Set Descriptor

    • Get Configuration

    • Set Configuration

    • Get Interface

    • Set Interface

    • Synch Frame

    All USB Hub Requests:
    • Get Hub Status

    • Get Port Status

    • Clear Hub Feature

    • Clear Port Feature

    • Get Bus State

    • Set Hub Feature

    • Set Port Feature

    • Get Hub Descriptor

    • Set Hub Descriptor

    • Clear TT Buffer

    • Reset TT

    • Get TT State

    • Stop TT

    URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE
    URB_FUNCTION_GET_DESCRIPTOR_FROM_ENDPOINT
    URB_FUNCTION_GET_DESCRIPTOR_FROM_INTERFACE
    URB_FUNCTION_SET_DESCRIPTOR_TO_DEVICE
    URB_FUNCTION_SET_DESCRIPTOR_TO_ENDPOINT
    URB_FUNCTION_SET_DESCRIPTOR_TO_INTERFACE
    All Standard USB Descriptors:
    • Device Descriptor

    • Device Qualifier Descriptor

    • Configuration Descriptor

    • Other Speed Configuration Descriptor

    • String Descriptor

    URB_FUNCTION_GET_STATUS_FROM_DEVICE
    URB_FUNCTION_GET_STATUS_FROM_ENDPOINT
    URB_FUNCTION_GET_STATUS_FROM_OTHER
    Device, Endpoint, Hub or Port Status
    URB_FUNCTION_CLASS_DEVICE
    URB_FUNCTION_CLASS_INTERFACE
    URB_FUNCTION_CLASS_ENDPOINT
    URB_FUNCTION_CLASS_OTHER
    Class Request Data (Currently only Hub Class requests are implemented)
    URB_FUNCTION_GET_CONFIGURATION Configuration Value
    URB_FUNCTION_GET_INTERFACE Alternate Setting

See USBlyzer USBlyzer 1.2 Release Notes for details.
 
 
 September 18, 2007
USBlyzer 1.1 has been released.
  • The USB Properties panel has been completely re-designed and now the USB device descriptors and related information are presented in much greater details.

  • USBlyzer is now able to verify the general compliance of all standard USB descriptors with the USB Specification. Any incompatibilities are marked with red color in the USB Properties panel.

  • The content of the USB Properties panel can now be exported to the HTML report.

  • Capture Settings, Filter Settings and Find Settings dialogs are now resizable.

  • The Capture List is now colorized. You have three options: colorize entire row, type column only or not colorize at all.

  • The Device Manager's device properties dialog box can be invoked by right-clicking the specific device in the Device Tree and then clicking Properties. This allow you view information about a device driver, bandwidth allocations for USB host controllers, power allocations for USB hubs and more.

  • The device tree now displays the drive letter that is assigned to each USB mass-storage device such as USB Flash Drive, USB CD-ROM Device, USB Card Reader etc.

  • Internal improvements in saving the captured data to a capture file.

  • Minor bug fixes and improvements.


See USBlyzer USBlyzer 1.1 Release Notes for details.
 
 
 July 02, 2007
USBlyzer 1.0 has been released. Many thanks to all the people who tested the beta version! The most active beta testers will receive a license for free.
  • Displaying Interface Association Descriptor (IAD).

  • Displaying Device Class, Subclass, Protocol.

  • Displaying Interface Class, Subclass, Protocol.

  • More than 2000 vendors recognized.


See USBlyzer USBlyzer 1.0 Release Notes for details.
 
 
 June 10, 2007
USBlyzer 1.0 Beta 3 has been released.
  • Critical bug in capture driver causing BSOD on multiprocessor systems was fixed.

  • Minor GUI fixes and improvements.

 
 
 May 06, 2007
USBlyzer 1.0 Beta 2 has been released.
  • Several compatibility issues were fixed.

  • Several minor bugs were fixed.

 
 
 February 02, 2007
USBlyzer 1.0 Beta 1 has been released.
 
 
 December 18, 2006
The first public beta comming soon!
Latest Events
 June 18, 2008
USBlyzer 1.3 has been released.

- HID Class support added.
- Syncing Capture List with Device Tree.

 December 26, 2007
USBlyzer 1.2 has been released.

- Hub Class support added.
- New Data Analysis Panel added.
- New Request Details column added.

 September 18, 2007
USBlyzer 1.1 has been released.

The USB Properties panel has been completely re-designed and now the USB device descriptors are presented in much greater details.

Subscribe to USBlyzer RSS feed (About RSS)