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
传输计数以 MB 为单位。
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 之后还会存在一个RECEIVE_TOKEN_INFORMATION_RESPONSE_HEADER结构,该结构与 SenseData 数组的开头相差 SenseDataFieldLength RECEIVE_TOKEN_INFORMATION_RESPONSE_HEADER结构将包含为使用 命令发送的范围参数 (ROD) 数据表示形式的标记。

所有多字节值都采用大 endian 格式。 在评估之前,必须转换这些值以匹配当前平台的 endian 格式。

要求

要求
最低受支持的客户端 Windows 8
标头 storport.h (包括 Scsi.h、Minitape.h、Storport.h)

另请参阅

RECEIVE_TOKEN_INFORMATION_RESPONSE_HEADER