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;

 

Members

HeaderLength

Is sizeof(SRB_IO_CONTROL).

Signature

Identifies the application-dedicated, target HBA for this request. This signature is used to prevent conflicts in ControlCode values between vendors. It should be a string of ASCII characters. If a miniport driver does not recognize the input Signature value, it must complete the request with a status of SRB_STATUS_INVALID_REQUEST.

Timeout

Indicates the interval in seconds that the request can execute before the OS-specific port driver might consider it timed out. Miniport drivers are not required to time requests because the port driver does.

ControlCode

Indicates the operation to be performed. There are no system-defined operations. Values must be defined by the driver as a set of private I/O control codes with which the application can make requests by calling the Win32 DeviceIoControl function. For more information about defining private I/O control codes for device control requests, see also Part II of this manual.

ReturnCode

Returns a status code for examination by the requesting application.

Length

Indicates the size in bytes of the immediately following data area. This area can be divided for the particular operation into input and output areas. For input requests, the contents of the DataBuffer will be copied to the requestor up to the returned value of DataTransferLength.

Comments

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

See Also

IOCTL_SCSI_PASS_THROUGH, IOCTL_SCSI_PASS_THROUGH_DIRECT, SCSI_REQUEST_BLOCK