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)

另请参阅

RECEIVE_TOKEN_INFORMATION_RESPONSE_HEADER