次の方法で共有


FSCTL_OFFLOAD_READ_OUTPUT構造体 (ntifs.h)

FSCTL_OFFLOAD_READ_OUTPUT 構造体には、FSCTL_OFFLOAD_READ 制御コード要求の出力が含まれています。

構文

typedef struct _FSCTL_OFFLOAD_READ_OUTPUT {
  ULONG     Size;
  ULONG     Flags;
  ULONGLONG TransferLength;
  UCHAR     Token[512];
} FSCTL_OFFLOAD_READ_OUTPUT, *PFSCTL_OFFLOAD_READ_OUTPUT;

メンバーズ

Size

この構造体のサイズ。 このメンバーを sizeof(FSCTL_OFFLOAD_READ_OUTPUT) に設定します。

Flags

結果フラグ。 この値は、次の値のビットごとの OR の組み合わせです。

価値 意味
OFFLOAD_READ_FLAG_FILE_TOO_SMALL
0x00000001
読み取るファイルが小さすぎてオフロード操作には使用できません。
OFFLOAD_READ_FLAG_ALL_ZERO_BEYOND_CURRENT_RANGE
0x00000002
選択した範囲を超える範囲には、すべてのゼロが含まれます。
OFFLOAD_READ_FLAG_CANNOT_OFFLOAD_BEYOND_CURRENT_RANGE
0x00000004
オフロード操作は、選択した範囲を超えて完了できません。 オフロードされていない読み取りメソッドを使用して操作を完了する必要があります。

TransferLength

Tokenで表されるデータの長さ (バイト単位)。

Token[512]

FSCTL_OFFLOAD_READ_INPUTで指定された範囲内のファイル データを表すトークン構造 (STORAGE_OFFLOAD_TOKEN) を含むバイト配列。 トークン の内容は、オフロード操作間で変更されない必要があります。

備考

FSCTL_OFFLOAD_READ 操作が成功した場合、ストレージ デバイスのコピー プロバイダーは、読み取られたファイル データの部分を識別する一意のトークン値を FSCTL_OFFLOAD_READ_OUTPUTで返します。

コピー プロバイダーは、FSCTL_OFFLOAD_READ_INPUT 構造体の TokenTimeToLive メンバー内で読み取られたデータを保持します。

トークン は、FSCTL_OFFLOAD_READ_INPUTFileOffset メンバー内の要求されたオフセットで始まるファイルの連続した領域を表します。 コピーされた結果の長さ (TransferLength) は、FSCTL_OFFLOAD_READ_INPUTの CopyLength メンバーで最初に指定されたものより小さ 可能性があります。 値が小さい場合は、トークン が、要求されたデータよりも少ないデータを論理的に表すことができることを示します。

要求されたデータよりも少ないデータが転送された場合は、別の FSCTL_OFFLOAD_READ 要求を実行して読み取り操作を完了できます。 次の要求では、TransferLength の値と、前の長さの調整された読み取り長から TransferLengthの値を引いた値を使用して、FSCTL_OFFLOAD_READ_INPUT 構造体の更新された FileOffset メンバーを使用します。 また、たとえば、ZwReadFile ルーチンを使用して、オフロードされていない読み取りメソッドを使用して不完全な読み取り操作を完了できます。

必要条件

要件 価値
サポートされる最小クライアント Windows 8。
ヘッダー ntifs.h (Ntifs.h、Fltkernel.h を含む)

関連項目

FSCTL_OFFLOAD_READ

FSCTL_OFFLOAD_READ_INPUT

STORAGE_OFFLOAD_TOKEN