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の乗数の値は 1000 ではなく 1024 です。 定義されている単位は次のとおりです。

意味
TRANSFER_COUNT_UNITS_BYTES
転送カウントはバイト単位です。
TRANSFER_COUNT_UNITS_KIBIBYTES
転送数はキロバイト単位です。
TRANSFER_COUNT_UNITS_MEBIBYTES
転送数はメガバイト単位です。
TRANSFER_COUNT_UNITS_GIBIBYTES
転送数はギガバイト単位です。
TRANSFER_COUNT_UNITS_TEBIBYTES
転送数はテラバイト単位です。
TRANSFER_COUNT_UNITS_PEBIBYTES
転送数はペタバイト単位です。
TRANSFER_COUNT_UNITS_EXBIBYTES
転送数はエクサバイト単位です。
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) として作成されたトークンが含まれます。

すべてのマルチバイト値はビッグ エンディアン形式です。 評価の前に、これらの値は現在のプラットフォームのエンディアン形式に一致するように変換する必要があります。

要件

要件
サポートされている最小のクライアント Windows 8
Header storport.h (Scsi.h、Minitape.h、Storport.h を含む)

こちらもご覧ください

RECEIVE_TOKEN_INFORMATION_RESPONSE_HEADER