RECEIVE_TOKEN_INFORMATION_HEADER structure (scsi.h)
The RECEIVE_TOKEN_INFORMATION_HEADER structure contains information returned as status from an offload data transfer operation.
Syntax
typedef struct {
UCHAR AvailableData[4];
UCHAR ResponseToServiceAction : 5;
UCHAR Reserved1 : 3;
UCHAR OperationStatus : 7;
UCHAR Reserved2 : 1;
UCHAR OperationCounter[2];
UCHAR EstimatedStatusUpdateDelay[4];
UCHAR CompletionStatus;
UCHAR SenseDataFieldLength;
UCHAR SenseDataLength;
UCHAR TransferCountUnits;
UCHAR TransferCount[8];
UCHAR SegmentsProcessed[2];
UCHAR Reserved3[6];
UCHAR SenseData[ANYSIZE_ARRAY];
} RECEIVE_TOKEN_INFORMATION_HEADER, *PRECEIVE_TOKEN_INFORMATION_HEADER;
Members
AvailableData[4]
The amount of data available in the SenseData array and any additional result information.
ResponseToServiceAction
A response code indicating which command action the response is for. The service action codes are the following.
Value | Meaning |
---|---|
SERVICE_ACTION_POPULATE_TOKEN | The response information is for a POPULATE TOKEN command. |
SERVICE_ACTION_WRITE_USING_TOKEN | The response information is for a WRITE USING TOKEN command. |
Reserved1
Reserved.
OperationStatus
The current status of the copy operation. The status can be one of the following values.
Value | Meaning |
---|---|
0x01 | The operation completed successfully. |
0x02 | The operation completed unsuccessfully. |
0x04 | The operation completed successfully but the copy initiator should verify that all data was transferred. |
0x10 | The operation is in progress. Foreground or background operation state is unknown. |
0x11 | The operation is in progress in the foreground. |
0x12 | The operation is in progress in the background. |
0x60 | The operation was terminated. Possibly by an existing resource reservation. |
Reserved2
Reserved.
OperationCounter[2]
The number of commands processed for the current copy operation.
EstimatedStatusUpdateDelay[4]
The recommended time, in milliseconds, to wait before sending the next RECEIVE COPY STATUS command for updated information about the current copy operation.
CompletionStatus
SCSI status code for the copy command operation.
SenseDataFieldLength
The length, in bytes, of the entire data area available for sense data. This value is always >= SenseDataLength.
SenseDataLength
The length, in bytes, of the data in SenseData.
TransferCountUnits
The byte units applied to TransferCount. Each unit expansion is an exponent in base 2. The multiplier value of TRANSFER_COUNT_UNITS_KIBIBYTES, for example, is 1024 and not 1000. The defined units are the following.
Value | Meaning |
---|---|
TRANSFER_COUNT_UNITS_BYTES | Transfer count is in bytes. |
TRANSFER_COUNT_UNITS_KIBIBYTES | Transfer count is in kilobytes. |
TRANSFER_COUNT_UNITS_MEBIBYTES | Transfer count is in megabytes. |
TRANSFER_COUNT_UNITS_GIBIBYTES | Transfer count is in gigabytes. |
TRANSFER_COUNT_UNITS_TEBIBYTES | Transfer count is in terabytes. |
TRANSFER_COUNT_UNITS_PEBIBYTES | Transfer count is in petabytes. |
TRANSFER_COUNT_UNITS_EXBIBYTES | Transfer count is in exabytes. |
TRANSFER_COUNT_UNITS_NUMBER_BLOCKS | Transfer count is not an exponent, but in units of logical block length. |
TransferCount[8]
The length of data transferred in the operation. The unit type in TransferCountUnits is applied to this value to give the total byte count.
SegmentsProcessed[2]
The number of segments processed for the data transfer operation. Segments are copy length units used internally by a storage device's copy provider. On Windows systems, this value is reserved and applications must ignore this member.
Reserved3[6]
Reserved.
SenseData[ANYSIZE_ARRAY]
Sense data returned for the copy operation.
Remarks
If RECEIVE_TOKEN_INFORMATION_HEADER is for a POPULATE TOKEN command operation, and the command completed successfully, a RECEIVE_TOKEN_INFORMATION_RESPONSE_HEADER structure will also be present after SenseData at an offset of SenseDataFieldLength from the beginning of the SenseData array. The RECEIVE_TOKEN_INFORMATION_RESPONSE_HEADER structure will contain the token created as a representation of data (ROD) for the range parameters sent with the command.
All multibyte values are in big endian format. Prior to evaluation, these values must be converted to match the endian format of the current platform.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Available starting with Windows 8. |
Header | scsi.h (include Scsi.h, Minitape.h, Storport.h) |