次の方法で共有


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 転送数はキロバイト単位です。
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