SRB_IO_CONTROL


typedef struct _SRB_IO_CONTROL {
    ULONG HeaderLength;
    UCHAR Signature[8];
    ULONG Timeout;
    ULONG ControlCode;
    ULONG ReturnCode;
    ULONG Length;
} SRB_IO_CONTROL, *PSRB_IO_CONTROL;

HeaderLength

Is sizeof(SRB_IO_CONTROL).

Signature

Indicates the type of HBA this request is for. This signature is used to prevent conflicts in ControlCode values between vendors and should be a string of ASCII characters. If the HBA miniport driver does not recognize the signature it completes the request with a status of SRB_STATUS_INVALID_REQUEST.

Timeout

Indicates the minimum time, in seconds, the request can execute before it is considered to have timed out. HBA miniport drivers are not required to time requests.

ControlCode

Indicates the operation to be performed. There are no operations defined by this specification. Values must be defined by the driver with a set of private I/O control codes with which the application can make device control requests.

ReturnCode

Returns a code for examination by the requesting application.

Length

Indicates the length of the following data area. This area can be divided for the particular operation into input and output areas. The DataBuffer will be copied to the requestor limited by the updated DataTransferLength.

This structure is used by applications to send requests directly to an application-dedicated HBA. Note that such an application must set up requests to program the HBA.

See also SCSI_REQUEST_BLOCK