次の方法で共有


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 メンバー内で読み取られたデータを保持します。

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

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

要件

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

こちらもご覧ください

FSCTL_OFFLOAD_READ

FSCTL_OFFLOAD_READ_INPUT

STORAGE_OFFLOAD_TOKEN