共用方式為


FSCTL_REARRANGE_FILE IOCTL (ntifs.h)

FSCTL_REARRANGE_FILE 重新排列檔案內的配置,將叢集從檔案內要求的連續來源範圍移至相同檔案內的另一個位置。

主要程序代碼

IRP_MJ_DEVICE_CONTROL

輸入緩衝區

描述要重新排列之配置 之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不允許新增包含隨機數據的配置。

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

參數 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

另請參閱

FltFsControlFile

FSCTL_SHUFFLE_FILE

REARRANGE_FILE_DATA

ZwFsControlFile