次の方法で共有


FSCTL_OFFLOAD_READ 制御コード

FSCTL_OFFLOAD_READ 制御コードは、オフロード読み取りプリミティブをサポートするストレージ システム内のデータ ブロックのオフロード読み取りを開始します。

この操作を実行するには、次のパラメーターを指定して FltFsControlFile または ZwFsControlFile を呼び出します。

パラメーター

  • インスタンス [in]: FltFsControlFile のみ。 呼び出し元の不透明なインスタンス ポインター。 このパラメーターは必須であり、NULL にすることはできません。

  • FileObject [in]: FltFsControlFile のみ。 読み取り元のファイルを指定するファイル ポインター オブジェクト。 このパラメーターは必須であり、NULL にすることはできません。

  • FileHandle [in]: ZwFsControlFile のみ。 読み取り元のファイルのファイル ハンドル。 このパラメーターは必須であり、NULL にすることはできません。

  • FsControlCode [in]: 操作の制御コード。 この操作には FSCTL_OFFLOAD_READ を使用します。

  • InputBuffer [in]: 読み取り元のデータ ブロックのサイズとオフセットが含まれる FSCTL_OFFLOAD_READ_INPUT 構造体へのポインター。

  • InputBufferLength [in]: InputBuffer が指し示すバッファーのサイズ (バイト単位)。 この値は sizeof(FSCTL_OFFLOAD_READ_INPUT) です。

  • OutputBuffer [out]: オフロード読み取り操作の結果を受け取る FSCTL_OFFLOAD_READ_OUTPUT 構造体へのポインター。

  • OutputBufferLength [out]: OutputBuffer パラメーターが指し示すバッファーのサイズ (バイト単位)。 この値は、sizeof(FSCTL_OFFLOAD_READ_OUTPUT) 以上である必要があります。

ステータスブロック

FltFsControlFile または ZwFsControlFile は、操作が成功した場合に STATUS_SUCCESS を返します。 それ以外の場合は、適切な関数から次の NTSTATUS 値のいずれかが返される可能性があります。

コード 意味
STATUS_INVALID_DEVICE_REQUEST 指定されたハンドルは有効なファイル ハンドルではありません
STATUS_INVALID_PARAMETER パラメーターが無効です。 「解説」を参照してください。
STATUS_VOLUME_DISMOUNTED ファイル システム ボリュームがマウント解除されています。
STATUS_NOT_SUPPORTED このボリュームではオフロード読み取り操作はサポートされていません。
STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED 要求されたファイルの種類はサポートされていません。 次のファイルの種類ではオフロード操作はサポートされていません。トランザクション ファイル (TxF)、非ユーザー ファイル、圧縮ファイル、暗号化されたファイル、スパース ファイル。NTFS メタデータ ファイル。
STATUS_FILE_DELETED このファイルのデータ ストリームは無効です。
STATUS_FILE_CLOSED ファイル ハンドルは閉じています。
STATUS_INVALID_HANDLE 指定されたファイル ハンドルは無効です。
STATUS_FILE_LOCK_CONFLICT 現在のファイルがロック状態にあるため、読み取りアクセスが不十分です。
STATUS_END_OF_FILE FSCTL_OFFLOAD_READ_INPUTFileOffset メンバーは、ファイルの終わり (EOF) の後で開始されます。
STATUS_DISMOUNTED_VOLUME マウントが解除されたボリュームではオフロード読み取りを実行できません。
STATUS_INSUFFICIENT_RESOUCES 要求を完了するために使用できるリソースが不足しています。
STATUS_BUFFER_TOO_SMALL OutputBufferLength が小さすぎて OutputBufferFSCTL_OFFLOAD_READ_OUTPUT 構造体を受け取ることができません。

解説

オフロード読み取りは通常のファイルでのみ使用できます。 サポートされていないファイルの種類の一覧については、STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED の説明を参照してください。

読み取りの開始位置は有効なデータ長 (VDL) を超えることができますが、EOF を超えることはできません。

STATUS_INVALID_PARAMETER が返された場合、エラーは次のいずれかの無効なパラメーターによるものである可能性があります。

  • ファイル サイズが PAGE_SIZE 未満です。
  • InputBufferLength<sizeof(FSCTL_OFFLOAD_READ_INPUT)
  • FSCTL_OFFLOAD_READ_INPUT のメンバーのうち 1 つ以上が正しくありません。
    • FileOffset がボリュームの論理セクター サイズの倍数ではありません。
    • CopyLength がボリュームの論理セクター サイズの倍数ではありません。
    • SizeFSCTL_OFFLOAD_READ_INPUT 構造体のサイズではありません。
    • FileOffset + CopyLength>MAXULONGLONG

要件

要件タイプ 要件
サポートされている最小のクライアント Windows 8
ヘッダー Ntifs.h (Ntifs.h または Fltkernel.h を含む)

関連項目

FltFsControlFile

ZwFsControlFile

FSCTL_OFFLOAD_READ_INPUT

FSCTL_OFFLOAD_READ_OUTPUT