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構造体のサイズ (バイト単位)。
出力バッファー
クエリの結果が返されるデータ要素 FILE_ALLOCATED_RANGE_BUFFER 0 個以上の配列へのポインター。 詳しくは以下をご覧ください。
出力バッファーの長さ
OutputBuffer が指すバッファーのサイズ (バイト単位)。
入力/出力バッファー
該当なし
入力/出力バッファーの長さ
該当なし
ステータス ブロック
システムで使用するために予約されています。
注釈
この操作を実行するには、次のパラメーター を指定して FltFsControlFile または ZwFsControlFile を呼び出します。
パラメーター | 説明 |
---|---|
インスタンス | [入力] FltFsControlFile の場合のみ。 呼び出し元の不透明なインスタンス ポインター。 このパラメーターは必須であり、NULL にすることはできません。 |
FileObject | [入力] FltFsControlFile の場合のみ。 この要求のターゲットであるファイルまたはディレクトリのファイル オブジェクト ポインター。 このパラメーターは必須であり、NULL にすることはできません。 |
FileHandle | [入力] ZwFsControlFile の場合のみ。 この要求のターゲットであるファイルまたはディレクトリのファイル ハンドル。 このパラメーターは必須であり、NULL にすることはできません。 |
IoStatusBlock | [out] ZwFsControlFile の場合のみ。 要求の最終的な状態を含む IO_STATUS_BLOCK 構造体へのポインター。 |
FsControlCode | [入力] FSCTL_QUERY_ALLOCATED_RANGESに設定します。 |
InputBuffer | [入力]割り当てのクエリを 実行 する範囲を示すFILE_ALLOCATED_RANGE_BUFFER構造体へのポインター。 |
InputBufferLength | [入力] InputBuffer が指すバッファーのサイズ (バイト単位)。 |
OutputBuffer | [out]クエリの結果が返されるデータ要素 FILE_ALLOCATED_RANGE_BUFFER 0 個以上の配列へのポインター。 詳しくは以下をご覧ください。 |
OutputBufferLength | [out] OutputBuffer が指すバッファーのサイズ (バイト単位)。 |
LengthReturned | [out] OutputBuffer でバッファーに返される情報のサイズをバイト単位で受け取る呼び出し元によって割り当てられた変数へのポインター。 |
FSCTL_QUERY_ALLOCATED_RANGESは、OutputBuffer が指すバッファー内の 0 個以上FILE_ALLOCATED_RANGE_BUFFERデータ要素の配列を返します。 返 されるFILE_ALLOCATED_RANGE_BUFFER 要素の数は、 LengthReturned で返される値を で除算することによって sizeof(FILE_ALLOCATED_RANGE_BUFFER)
計算されます。 返される範囲は 、InputBuffer で指定された範囲と交差している必要があります。 ファイル に 割り当てられた範囲がない場合は、0 FILE_ALLOCATED_RANGE_BUFFERデータ要素が返されます。
戻り値
FSCTL_QUERY_ALLOCATED_RANGESは 、正常に完了するとSTATUS_SUCCESSを返します。それ以外の場合は、エラー コードが返されます。 一般的なエラー コードは次のとおりです。
エラー コード | 意味 |
---|---|
STATUS_INVALID_PARAMETER | パラメーターが無効です。 たとえば、ハンドルはファイルに対してではありません。 InputBuffer のサイズが 、FILE_ALLOCATED_RANGE_BUFFER 構造体のサイズより小さい。 FileOffset が 0 未満です。 長さが 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 |
Header | ntifs.h |