次の方法で共有


FSCTL_QUERY_ALLOCATED_RANGES IOCTL (ntifs.h)

FSCTL_QUERY_ALLOCATED_RANGES は、0 以外のデータを含むことができるバイト範囲を探 ファイルまたは代替 ストリームのスキャンを要求し、それらの範囲に関する情報を返します。 オペレーティング システムに認識できる範囲がゼロのスパース ファイルのみです。 他のファイルの場合、出力バッファーには、開始点と要求された長さを含む 1 つの範囲のみが含まれます。

メジャー コード

FSCTL_QUERY_ALLOCATED_RANGES

入力バッファー

割り当てを照会する範囲を示す FILE_ALLOCATED_RANGE_BUFFER 構造体へのポインター。

入力バッファーの長さ

InputBuffer が指 FILE_ALLOCATED_RANGE_BUFFER 構造体のサイズ (バイト単位)。

出力バッファー

クエリの結果が返される 0 個以上の FILE_ALLOCATED_RANGE_BUFFER データ要素の配列へのポインター。 詳細については、以下を参照してください。

出力バッファーの長さ

OutputBuffer が指 バッファーのサイズ (バイト単位)。

入力/出力バッファー

n/a

入力/出力バッファーの長さ

n/a

状態ブロック

システム用に予約されています。

備考

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

パラメーター 形容
インスタンス [in]fltFsControlFile のみ。 呼び出し元の不透明なインスタンス ポインター。 このパラメーターは必須であり、NULL にすることはできません。
FileObject [in]fltFsControlFile のみ。 この要求のターゲットであるファイルまたはディレクトリのファイル オブジェクト ポインター。 このパラメーターは必須であり、NULL にすることはできません。
FileHandle [in]ZwFsControlFile のみ。 この要求のターゲットであるファイルまたはディレクトリのファイル ハンドル。 このパラメーターは必須であり、NULL にすることはできません。
IoStatusBlock の [out]ZwFsControlFile のみ。 要求の最終的な状態を含む IO_STATUS_BLOCK 構造体へのポインター。
FsControlCode の [in]FSCTL_QUERY_ALLOCATED_RANGESに設定します。
InputBuffer の [in]割り当てを照会する範囲を示す FILE_ALLOCATED_RANGE_BUFFER 構造体へのポインター。
InputBufferLength [in]InputBuffer が指 バッファーのサイズ (バイト単位)。
OutputBuffer の [out]クエリの結果が返される 0 個以上の FILE_ALLOCATED_RANGE_BUFFER データ要素の配列へのポインター。 詳細については、以下を参照してください。
OutputBufferLength [out]OutputBuffer が指 バッファーのサイズ (バイト単位)。
LengthReturned [out]OutputBufferでバッファーに返される情報のサイズ (バイト単位) を受け取る呼び出し元によって割り当てられた変数 ポインター。

FSCTL_QUERY_ALLOCATED_RANGES は、OutputBuffer が指すバッファー内の 0 個以上の FILE_ALLOCATED_RANGE_BUFFER データ要素の配列 返します。 返される FILE_ALLOCATED_RANGE_BUFFER 要素の数は、LengthReturned で返される値 で除算することによって計算されます。 返される範囲は、InputBufferで指定された範囲 交差する必要があります。 ファイルに割り当てられた範囲がない場合、0 FILE_ALLOCATED_RANGE_BUFFER データ要素が返されます。

戻り値

FSCTL_QUERY_ALLOCATED_RANGES は、正常に完了するとSTATUS_SUCCESSを返します。それ以外の場合は、エラー コードが返されます。 一般的なエラー コードが続きます。

エラー コード 意味
STATUS_INVALID_PARAMETER パラメーターが無効です。 たとえば、ハンドルはファイルに対してではありません。InputBuffer のサイズが FILE_ALLOCATED_RANGE_BUFFER 構造体のサイズより小さい。FileOffset が 0 未満です。Length が 0 未満です。または、FileOffset と Length が0x7FFFFFFFFFFFFFFFより大きい します。
STATUS_INVALID_USER_BUFFER 入力バッファーまたは出力バッファーが 4 バイト境界にアラインされていません。
STATUS_BUFFER_TOO_SMALL 出力バッファーが小さすぎて、FILE_ALLOCATED_RANGE_BUFFER 構造体を格納できません。
STATUS_BUFFER_OVERFLOW 出力バッファーが小さすぎて、必要な数の FILE_ALLOCATED_RANGE_BUFFER 構造体を格納できません。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000
ヘッダー ntifs.h

関連項目

FILE_ALLOCATED_RANGE_BUFFER

FltFsControlFile の

ZwFsControlFile