共用方式為


FSCTL_QUERY_ALLOCATED_RANGES IOCTL (ntifs.h)

FSCTL_QUERY_ALLOCATED_RANGES 要求掃描檔案或替代 數據流, 尋找可包含非零數據的位元組範圍,然後傳回這些範圍的資訊。 只有疏鬆檔案可以有操作系統已知的零範圍。 對於其他檔案,輸出緩衝區只會包含包含起始點和所要求長度的單一範圍。

主要程序代碼

FSCTL_QUERY_ALLOCATED_RANGES

輸入緩衝區

FILE_ALLOCATED_RANGE_BUFFER 結構的指標,表示要查詢配置的範圍。

輸入緩衝區長度

InputBuffer 以位元組為單位指向的 FILE_ALLOCATED_RANGE_BUFFER 結構大小。

輸出緩衝區

傳回查詢結果之零個或多個 FILE_ALLOCATED_RANGE_BUFFER 數據元素陣列的指標。 如需詳細資訊,請參閱下方。

輸出緩衝區長度

OutputBuffer 指向的緩衝區大小,以位元組為單位。

輸入/輸出緩衝區

n/a

輸入/輸出緩衝區長度

n/a

狀態區塊

保留供系統使用。

言論

若要執行這項作業,請使用下列參數呼叫 FltFsControlFileZwFsControlFile

參數 描述
實例 [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]傳回查詢結果之零個或多個 FILE_ALLOCATED_RANGE_BUFFER 數據元素陣列的指標。 如需詳細資訊,請參閱下方。
OutputBufferLength [out]OutputBuffer 指向的緩衝區大小,以位元組為單位。
LengthReturned [out]呼叫端配置的變數指標,該變數會接收緩衝區中傳回之資訊位元組大小,OutputBuffer

FSCTL_QUERY_ALLOCATED_RANGES 傳回緩衝區中 OutputBuffer 指向之零個或多個 FILE_ALLOCATED_RANGE_BUFFER 數據元素的陣列。 傳回的 FILE_ALLOCATED_RANGE_BUFFER 元素數目會以 sizeof(FILE_ALLOCATED_RANGE_BUFFER)除以 LengthReturned 中所傳回的值來計算。 傳回的範圍必須與 inputBuffer 中指定的範圍相交。 當檔案沒有配置的範圍時,會傳回零 FILE_ALLOCATED_RANGE_BUFFER 數據元素。

傳回值

FSCTL_QUERY_ALLOCATED_RANGES 成功完成時傳回STATUS_SUCCESS;否則會傳回錯誤碼。 常見的錯誤碼如下。

錯誤碼 意義
STATUS_INVALID_PARAMETER 參數無效。 例如:句柄不是檔案;InputBuffer 的大小小於 FILE_ALLOCATED_RANGE_BUFFER 結構的大小:FileOffset 小於零;長度 小於零;或 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