Previous Page
www.bustrace.com

This web page refers to our older busTRACE 6.0 which is no longer shipping. Click here for details on our latest busTRACE version.

busTRACE 6.0 can capture all low-level USB bus activity within your Windows 2000, XP, 2003, Vista (x86 or x64) PC. You are able to see the underlying URB (USB Request Block) as it goes down the I/O stack and back up the I/O stack. In this sample screenshot, busTRACE has captured a USB request to submit a Command Descriptor Block to a USB storage device. The Command Block Wrapper (CBW) is also decoded for you.

Below the screenshot, you can find additional samples of the decoding we perform.

The following decoded USB Request Blocks (URBs) were captured by busTRACE 6.0 as low-level USB requests were sent to a USB Flash Drive.

URB to issue a Command Block Wrapper (CBW) going down the I/O stack

Name Value
_URB  
   union u  
      UrbBulkOrInterruptTransfer (_URB_BULK_OR_INTERRUPT_TRANSFER)  
         Hdr (_URB_HEADER)  
            USHORT Length; 0048h
            USHORT Function; 0009h (Bulk or Interrupt Transfer)
            USBD_STATUS Status; 00000000h (USBD_STATUS_SUCCESS)
            PVOID UsbdDeviceHandle; 00000000h
            ULONG UsbdFlags; 00000000h
         USBD_PIPE_HANDLE PipeHandle; 85E43F3Ch (Bulk 01h - Outbound)
         ULONG TransferFlags; 00000000h (USBD_TRANSFER_DIRECTION_OUT)
         ULONG TransferBufferLength; 0000001Fh
         PVOID TransferBuffer; 8513F688h
         PMDL TransferBufferMDL; 00000000h
         _URB* UrbLink; 00000000h
         hca (_URB_HCD_AREA)  
_USB_COMMAND_BLOCK_WRAPPER  
   ULONG dCBWSignature; 43425355h ("USBC")
   ULONG dCBWTag; 86D32008h
   ULONG dCBWDataTransferLength; 00000000h
   UCHAR bmCBWFlags; 00h (Data Out)
   UCHAR bCBWLUN : 4; 0h
   UCHAR bRsvd0 : 4; 0h
   UCHAR bCBWCBLength : 5; 6h (6 Byte CDB)
   UCHAR bRsvd1 : 3; 0h
   UCHAR CBWCB[16]; 00 00 00 00 00 00 (6 Byte CDB)

URB to issue a Command Status Wrapper (CSW) going up the I/O stack

Name Value
_URB  
   union u  
      UrbBulkOrInterruptTransfer (_URB_BULK_OR_INTERRUPT_TRANSFER)  
         Hdr (_URB_HEADER)  
            USHORT Length; 0048h
            USHORT Function; 0009h (Bulk or Interrupt Transfer)
            USBD_STATUS Status; 00000000h (USBD_STATUS_SUCCESS)
            PVOID UsbdDeviceHandle; 86E85310h
            ULONG UsbdFlags; 00000022h
         USBD_PIPE_HANDLE PipeHandle; 85E43F1Ch (Bulk 81h - Inbound)
         ULONG TransferFlags; 00000003h (USBD_TRANSFER_DIRECTION_IN+USBD_SHORT_TRANSFER_OK)
         ULONG TransferBufferLength; 0000000Dh
         PVOID TransferBuffer; 8513F688h
         PMDL TransferBufferMDL; 85942938h
         _URB* UrbLink; 00000000h
         hca (_URB_HCD_AREA)  
_USB_COMMAND_STATUS_WRAPPER  
   ULONG dCSWSignature; 53425355h ("USBS")
   ULONG dCSWTag; 86D32008h
   ULONG dCSWDataResidue; 00000000h
   UCHAR bCSWStatus; 00h (Command Passed)