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 を含む) |