Intel Extensible Firmware Interface User Manual
Page 526

Extensible Firmware Interface Specification
13-6
12/01/02
Version 1.10
Related Definitions
typedef struct {
UINT64
Timeout;
VOID
*DataBuffer;
VOID
*SenseData;
VOID
*Cdb;
UINT32
TransferLength;
UINT8
CdbLength;
UINT8
DataDirection;
UINT8
HostAdapterStatus;
UINT8
TargetStatus;
UINT8
SenseDataLength;
} EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET;
Timeout
The timeout, in 100 ns units, to use for the execution of this
SCSI Request Packet. A
Timeout
value of 0 means that this
function will wait indefinitely for the SCSI Request Packet to
execute. If
Timeout
is greater than zero, then this function will
return
EFI_TIMEOUT
if the time required to execute the SCSI
Request Packet is greater than
Timeout
.
DataBuffer
A pointer to the data buffer to transfer between the SCSI
controller and the SCSI device. Must be aligned to the boundary
specified in the
IoAlign
field of the
structure.
SenseData
A pointer to the sense data that was generated by the execution
of the SCSI Request Packet. Must be aligned to the boundary
specified in the
IoAlign
field of the
EFI_SCSI_PASS_THRU_MODE
structure.
Cdb
A pointer to buffer that contains the Command Data Block to
send to the SCSI device specified by
Target
and
Lun
.
TransferLength
On input, the size, in bytes, of
DataBuffer
. On output, the
number of bytes transferred between the SCSI controller and the
SCSI device. If
TransferLength
is larger than the SCSI
controller can handle, no data will be transferred,
TransferLength
will be updated to contain the number of
bytes that the SCSI controller is able to transfer, and
EFI_BAD_BUFFER_SIZE
will be returned.
CdbLength
The length, in bytes, of the buffer
Cdb
. The standard values are
6, 10, 12, and 16, but other values are possible if a variable
length CDB is used.
DataDirection
The direction of the data transfer. 0 for reads, 1 for writes. All
other values are reserved, and must not be used.