FSCTL_REARRANGE_FILE IOCTL (ntifs.h)
FSCTL_REARRANGE_FILE 重新排列檔案內的配置,將叢集從檔案內要求的連續來源範圍移至相同檔案內的另一個位置。
主要程序代碼
輸入緩衝區
描述要重新排列之配置 之REARRANGE_FILE_DATA 結構的指標。 (針對32位呼叫端,輸入緩衝區是 結構REARRANGE_FILE_DATA32 指標。)
輸入緩衝區長度
輸入緩衝區的位元組大小。
輸出緩衝區
沒有;設定為 NULL。
輸出緩衝區長度
設定為零。
狀態區塊
傳回值
FSCTL_REARRANGE_FILE 在成功完成時傳回STATUS_SUCCESS;否則會傳回NTSTATUS程式代碼,例如下列其中一個。
傳回碼 | 意義 |
---|---|
STATUS_ACCESS_DENIED | 只允許內核模式呼叫。 |
STATUS_BUFFER_TOO_SMALL | 指定的輸入緩衝區長度小於大小of (REARRANGE_FILE_DATA) 。 |
STATUS_PENDING | 作業完成擱置中。 |
備註
要求參數 包含來源和目標檔案位元移,以及來源區域要移動的位元組長度,全部都必須對齊叢集。
- 如果向下移動叢集,目標檔案位移會指出移動來源範圍的下限應該對齊的點。
- 如果向上移動叢集,目標檔案位移會指出來源範圍上限應該對齊的點。
在這兩種情況下,目標位移都表示來源範圍應該插入到從目標位移開始的叢集之前,而配置大小維持固定的條件約束會強制區分。
不同於FSCTL_SHUFFLE_FILE,FSCTL_REARRANGE_FILE不允許新增包含隨機數據的配置。
若要執行這項作業,請使用下列參數呼叫 FltFsControlFile 或 ZwFsControlFile 。
參數 | Description |
---|---|
執行個體 | [in]僅適用於 FltFsControlFile 。 呼叫端的不透明實例指標。 這個參數是必要的,而且不能是 NULL。 |
FileObject | [in]僅適用於 FltFsControlFile 。 此要求目標之檔案或目錄的檔案物件指標。 這個參數是必要的,而且不能是 NULL。 |
FileHandle | [in]僅適用於 ZwFsControlFile 。 此要求目標之檔案或目錄的檔案句柄。 這個參數是必要的,而且不能是 NULL。 |
IoStatusBlock | [out]僅適用於 ZwFsControlFile 。 包含要求最終狀態 之IO_STATUS_BLOCK 結構的指標。 |
FsControlCode | [in]設定為 FSCTL_REARRANGE_FILE。 |
InputBuffer | [in]請參閱IOCTL參數。 |
InputBufferLength | [in]請參閱IOCTL參數。 |
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 版本 1809 |
標頭 | ntifs.h |