RECEIVE_TOKEN_INFORMATION_HEADER 结构 (storport.h)
RECEIVE_TOKEN_INFORMATION_HEADER 结构包含从卸载数据传输操作返回的状态信息。
语法
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;
成员
AvailableData[4]
SenseData 数组中可用的数据量和任何其他结果信息。
ResponseToServiceAction
指示响应所针对的命令操作的响应代码。 服务操作代码如下所示。
值 | 含义 |
---|---|
SERVICE_ACTION_POPULATE_TOKEN | 响应信息适用于 POPULATE TOKEN 命令。 |
SERVICE_ACTION_WRITE_USING_TOKEN | 响应信息适用于 WRITE USING TOKEN 命令。 |
Reserved1
保留。
OperationStatus
复制操作的当前状态。 状态可以是以下值之一。
值 | 含义 |
---|---|
0x01 | 操作已成功完成。 |
0x02 | 操作未成功完成。 |
0x04 | 操作已成功完成,但复制发起程序应验证是否已传输所有数据。 |
0x10 | 操作正在进行中。 前台或后台操作状态未知。 |
0x11 | 操作在前台正在进行。 |
0x12 | 操作正在后台进行。 |
0x60 | 操作已终止。 可能由现有资源预留。 |
Reserved2
保留。
OperationCounter[2]
为当前复制操作处理的命令数。
EstimatedStatusUpdateDelay[4]
发送下一个 RECEIVE COPY STATUS 命令以获取有关当前复制操作的更新信息之前等待的建议时间(以毫秒为单位)。
CompletionStatus
复制命令操作的 SCSI 状态代码。
SenseDataFieldLength
可用于感知数据的整个数据区域的长度(以字节为单位)。 此值始终 >为 = SenseDataLength。
SenseDataLength
SenseData 中数据的长度(以字节为单位)。
TransferCountUnits
应用于 TransferCount 的字节单位。 每个单位扩展都是基准 2 中的指数。 例如 ,TRANSFER_COUNT_UNITS_KIBIBYTES的乘数值为 1024,而不是 1000。 定义的单位如下。
值 | 含义 |
---|---|
TRANSFER_COUNT_UNITS_BYTES | 传输计数以字节为单位。 |
TRANSFER_COUNT_UNITS_KIBIBYTES | 传输计数以 KB 为单位。 |
TRANSFER_COUNT_UNITS_MEBIBYTES | 传输计数以兆字节为单位。 |
TRANSFER_COUNT_UNITS_GIBIBYTES | 传输计数以 GB 为单位。 |
TRANSFER_COUNT_UNITS_TEBIBYTES | 传输计数以 TB 为单位。 |
TRANSFER_COUNT_UNITS_PEBIBYTES | 传输计数以 PB 为单位。 |
TRANSFER_COUNT_UNITS_EXBIBYTES | 传输计数以 EB 为单位。 |
TRANSFER_COUNT_UNITS_NUMBER_BLOCKS | 传输计数不是指数,而是逻辑块长度的单位。 |
TransferCount[8]
操作中传输的数据的长度。 TransferCountUnits 中的单位类型应用于此值,以提供总字节计数。
SegmentsProcessed[2]
为数据传输操作处理的段数。 段是存储设备的复制提供程序在内部使用的复制长度单位。 在 Windows 系统上,此值是保留的,应用程序必须忽略此成员。
Reserved3[6]
保留。
SenseData[ANYSIZE_ARRAY]
为复制操作返回的感知数据。
注解
如果RECEIVE_TOKEN_INFORMATION_HEADER用于 POPULATE TOKEN 命令操作,并且该命令已成功完成,则从 SenseData 数组开头的 SenseDataFieldLength 偏移量处的 SenseData 之后,也会显示RECEIVE_TOKEN_INFORMATION_RESPONSE_HEADER结构。 RECEIVE_TOKEN_INFORMATION_RESPONSE_HEADER 结构将包含作为数据表示形式的令牌, (ROD) 随 命令发送的范围参数。
所有多字节值都采用 big endian 格式。 在评估之前,必须转换这些值以匹配当前平台的 endian 格式。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 |
标头 | storport.h (包括 Scsi.h、Minitape.h、Storport.h) |