USBlyzer - USB Protocol Analyzer for Windows   USB Analyzer for Windows  

Latest Events


 USBlyzer 2.2 has been released May 15, 2016
  • USB Mass Storage Class (MSC) support added

    Now USBlyzer decodes the following:

    • Command Block Wrapper (CBW) and Command Status Wrapper (CSW) of Bulk-Only Transport (BOT) Protocol.

    • USB Mass Storage Class-Specific Requests:

      • Bulk-Only Mass Storage Reset

      • Get Max LUN

    • The following command sets are supported (based on SubClass code in Device/Interface descriptor):

      • SCSI Primary Command Set (SPC)

      • SCSI Multimedia Command Set (MMC)

      • SCSI Reduced Block Command Set (RBC)

  • Multiple instances of USBlyzer client application can be run simultaneously (only one in capture mode).

  • Bug fixes and improvements.

 
 

 USBlyzer 2.1 has been released March 16, 2014
  • Super Speed USB (USB 3.0) support added

    Now USBlyzer captures and decodes the following:

    • USB 3.0 Specific Descriptors:

      • Binary Device Object Store (BOS) Descriptor

      • SuperSpeed USB Device Capability Descriptor

      • USB 2.0 Extension Descriptor

      • SuperSpeed USB Device Capability Descriptor

      • Container ID Descriptor

      • SuperSpeed Endpoint Companion Descriptor

      • SuperSpeed Hub Descriptor

    • USB 3.0 Hub Class Requests:

      • SetHubDepth (SET_HUB_DEPTH)

      • GetPortErrorCount (GET_PORT_ERR_COUNT)

    • USB 3.0 Hub Class Feature Selectors:

      • Port U1 Timeout (PORT_U1_TIMEOUT)

      • Port U2 Timeout (PORT_U2_TIMEOUT)

      • Port Link State Change (C_PORT_LINK_STATE)

      • Port Config Error Change (C_PORT_CONFIG_ERROR)

      • Port Remote Wake Mask (PORT_REMOTE_WAKE_MASK)

      • BH Reset (BH_PORT_RESET)

      • BH Reset Change (C_BH_PORT_RESET)

      • Force LinkPM Accept (FORCE_LINKPM_ACCEPT)

    • USB 3.0 Device Requests:

      • Set SEL (SET_SEL)

      • Set Isochronous Delay (SET_ISOCH_DELAY)

    • USB 3.0 Device Feature Selectors:

      • Function Suspend (FUNCTION_SUSPEND)

      • U1 Enable (U1_ENABLE)

      • U2 Enable (U2_ENABLE)

      • LTM Enable (LTM_ENABLE)

  • Capture file size limit was increased from 256 MB to 1 GB.

  • URB transfer buffer size limit was increased from 256 MB to 4 MB.

  • Displaying USB device operating speed has been correted.

  • Pended IRPs used in "Inverted call model" are now capturable.

  • Displaying URB transfer direction in I/O column has been correted.

  • Bug fixes and improvements.

  • The following xHCIs (eXtensible Host Controller Interfaces) was used for testing:

    • Renesas Electronics (NEC) μPD720200A, μPD720201 and μPD720202 with Microsoft USB XHCI Driver (USBXHCI.sys) and Microsoft USB3 Hub Driver (USBHUB3.sys)

    • Fresco Logic FL1009 with Fresco Logic xHCI (USB3) Device Driver (FLxHCIc.sys) and Fresco Logic xHCI (USB3) Hub Device Driver (FLxHCIh.sys)

    • Via Labs VL800/801 and 805/806 with VIA USB eXtensible Host Controller Service (xhcdrv.sys) and VIA USB 3.0 Root Hub Service (ViaHub3.sys)

    • Etron EJ188 with Etron Extensible Host Controller Driver (EtronXHCI.sys) and Etron USB 3.0 Extensible Root Hub Driver (EtronHub3.sys)

 
 

 USBlyzer 2.0 has been released April 3, 2011
  • 64-bit OS support

  • Added capturing and decoding support for Power IRPs

    Now USBlyzer captures and decodes IRP_MJ_POWER IRP.

    • IRP_MN_POWER_SEQUENCE

    • IRP_MN_QUERY_POWER

    • IRP_MN_SET_POWER

    • IRP_MN_WAIT_WAKE

  • Added capturing and decoding support for Create/Cleanup/Close IRPs

    Now USBlyzer captures and decodes the following IRPs:

    • IRP_MJ_CREATE

    • IRP_MJ_CLEANUP

    • IRP_MJ_CLOSE

  • Added elapsed and duration time measuring

    The "Elapsed Time" column displays the elapsed time since the capture was started. The "Duration Time" column shows how much time it takes to complete the IRP.

  • Added ability to set elapsed time reference point

    By default, the elapsed time displayed for each record is relative to the capture started record. Now you can set any record to be "zero time" reference point and the elapsed time of the other records will be adjusted accordingly.

  • Improved date and time formating

    • The system time can be displayed as date and time of the day ("2011-04-02 14:53:22.359") or time of the day ("14:53:22.359").

    • The elapsed time can be displayed as system time ("00:00:00.001234"), formatted time ("1.234 ms") or seconds elapsed ("0.001234").

    • The duration time can be displayed as formatted time ("5.678 ms") or seconds elapsed ("0.005678").

  • Added ability to filter Input (Device to Host) and Output (Host to Device) transfers

    For example, unchecking the Output (Host to Device) option would hide all the "Set" requests.

  • Added failed IRPs highlighting

    Failed IRPs are highlighted with a red color.

 
 

 USBlyzer 1.6 has been released March 24, 2010
  • Added support for Virtual Usb Devices.

  • Improved Wireless USB Devices support.

  • Minor bug fixes and improvements.

 
 

 USBlyzer 1.5 has been released August 24, 2009
  • Windows 7 OS support added.

  • Minor bug fixes and improvements.

 
 

 USBlyzer 1.4 has been released October 07, 2008
  • Communication Device Class (CDC) support added

    Now we decode and display CDC class-specific functional descriptors, communication interface management element requests and notifications. Read more about CDC class decoder.

  • New capture list "Raw Data" column has been added

    This column displays up to 8 bytes of the buffer contents for control, bulk, interrupt, and isochronous transfers and for any other URBs which contain the transfer buffer. If the number of bytes that was actually transferred is greater than 8, the displayed sequence is terminated with an ellipsis (...).

  • Minor improvements in displaying capture list "Request Details" column

    Previously, for bulk, interrupt and isochronous transfer URBs the "Request Details" column in the capture list displayed only the value of TransferBufferLength field of URB_BULK_OR_INTERRUPT_TRANSFER and URB_ISOCH_TRANSFER. Now the protocol analyzer also shows you whether the buffer is filled with meaningful data or it's just an empty buffer to be filled with data.

 
 

 USBlyzer 1.3 has been released June 18, 2008
 
 

 USBlyzer 1.2 has been released December 26, 2007
  • 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
 
 

 USBlyzer 1.1 has been released September 18, 2007
  • 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.

 
 

 USBlyzer 1.0 has been released July 02, 2007
  • Displaying Interface Association Descriptor (IAD).

  • Displaying Device Class, Subclass, Protocol.

  • Displaying Interface Class, Subclass, Protocol.

  • More than 2000 vendors recognized.

 
 

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

  • Minor GUI fixes and improvements.

 
 

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

  • Several minor bugs were fixed.

 
 

 USBlyzer 1.0 Beta 1 has been released February 02, 2007
 
 
 
Subscribe to USBlyzer RSS feed Bookmark and Share
Latest Events
 May 15, 2016
USBlyzer 2.2 has been released.

- USB Mass Storage Class support added.
...

 March 16, 2014
USBlyzer 2.1 has been released.

- USB 3.0 support added.
...

 April 3, 2011
USBlyzer 2.0 has been released.

- 64-bit OS support.
- Elapsed and duration time measuring.
...