Previous Topic Next Topic
 

Internal to Windows, and in conjunction with I/O Request Packets (IRPs), data structures are used to send down specific I/O requests. For example, for storage class devices, Windows drivers build up SCSI_REQUEST_BLOCK structures (SRBs). Embedded within the SRB are the CDB, any data buffer locations, timeout values, and more. For USB requests, Windows drivers build up URB structures (USB Request Blocks). Embedded within the URB are the URB function, any data buffer locations, URB status, and more. The same is true for IOCTLs (though there are many different IOCTL structures in use).

busTRACE takes a snapshot of key data structures as they go down the I/O stack and back up the I/O stack (the I/O stack concept was discussed in the Raw Data section). By clicking on the Data Structures tab, you can view these captured structures in their decoded format.

For those of you familiar with 'C' data structures, and the Microsoft's Windows Driver Development Kit, these structures will likely look familiar to you. We show you the data structure name (as defined by the DDK), the value that was captured, the structure offset where the data was located, as well as the size of the data for that specific structure item.

The View tree control to the left side shows you the available data that busTRACE has captured and can decode for you. Simply select the data structure you are interested in viewing. Below are some common values:

IRP_MJ_SCSI

Selecting this data structure shows you key portions of the captured IRP's I/O stack entry.

IRP Structure

Selecting this data structure shows you the decoded IRP (only appears if you enabled the specific capture setting).

I/O Stack Contents

Selecting this data structure shows you the entire I/O stack contents (only appears if you enabled the specific capture setting).

SCSI Request Block

Selecting this data structure shows you the decoded SCSI_REQUEST_BLOCK.

Storage Request Block

Selecting this data structure shows you the decoded STORAGE_REQUEST_BLOCK.

USB Request Block

Selecting this data structure shows you the decoded URB.

At the top of the window, a toolbar is available with various options.

Selecting this option will copy the data structure, in text format, to the clipboard. You can use this feature to quickly copy and paste the data structure into another document.

Alternatively, you can simply right click anywhere in the window and choose the Copy option to copy the data to the clipboard.

busTRACE takes a snapshot of key data structures going down the I/O stack, and then going back up the I/O stack. You can use these toolbar buttons to select which structure you would like to see.

This is a fast and easy way to view any changes that occur to the key structures as they go down and back up the I/O stack.

  
These options behave the same as they do for the Raw Data tab.
By default, busTRACE shows you the data structure values in hex format. You can use select this option to toggle between hex and decimal output.

See Also: