FSCTL_REARRANGE_FILE IOCTL (ntifs.h)

FSCTL_REARRANGE_FILE mengatur ulang alokasi dalam file, memindahkan kluster dari rentang sumber yang berdamai yang diminta dalam file ke lokasi lain dalam file yang sama.

Kode utama

IRP_MJ_DEVICE_CONTROL

Buffer input

Penunjuk ke struktur REARRANGE_FILE_DATA yang menjelaskan alokasi yang akan disusun ulang. (Untuk penelepon 32-bit, buffer input adalah penunjuk ke struktur REARRANGE_FILE_DATA32 .)

Panjang buffer input

Ukuran dalam byte buffer input.

Buffer output

Tidak; atur ke NULL.

Panjang buffer output

Atur ke nol.

Blok status

Mengembalikan nilai

FSCTL_REARRANGE_FILE mengembalikan STATUS_SUCCESS setelah berhasil diselesaikan; jika tidak, ia mengembalikan kode NTSTATUS seperti salah satu dari berikut ini.

Menampilkan kode Makna
STATUS_ACCESS_DENIED Hanya panggilan mode kernel yang diizinkan.
STATUS_BUFFER_TOO_SMALL Panjang buffer input yang ditentukan lebih kecil dari sizeof(REARRANGE_FILE_DATA).
STATUS_PENDING Penyelesaian operasi tertunda.

Keterangan

Parameter permintaan berisi offset byte file sumber dan target, dan panjang byte wilayah sumber untuk dipindahkan, yang semuanya harus selaras dengan kluster.

  • Jika memindahkan kluster ke bawah, offset file target menunjukkan titik di mana batas bawah rentang sumber bergerak harus diratakan.
  • Jika memindahkan kluster ke atas, offset file target menunjukkan titik di mana batas atas rentang sumber harus diratakan.

Dalam kedua kasus, offset target menunjukkan bahwa rentang sumber harus dimasukkan sebelum kluster yang dimulai pada offset target, perbedaan yang dipaksakan oleh batasan bahwa ukuran alokasi tetap diperbaiki.

Tidak seperti FSCTL_SHUFFLE_FILE, FSCTL_REARRANGE_FILE tidak mengizinkan penambahan alokasi yang berisi data acak.

Untuk melakukan operasi ini, panggil FltFsControlFile atau ZwFsControlFile dengan parameter berikut.

Parameter Deskripsi
Instans [in] Hanya untuk FltFsControlFile . Penunjuk instans buram untuk pemanggil. Parameter ini diperlukan dan tidak boleh NULL.
FileObject [in] Hanya untuk FltFsControlFile . Penunjuk objek file untuk file atau direktori yang merupakan target permintaan ini. Parameter ini diperlukan dan tidak boleh NULL.
FileHandle [in] Hanya untuk ZwFsControlFile . Handel file dari file atau direktori yang merupakan target permintaan ini. Parameter ini diperlukan dan tidak boleh NULL.
IoStatusBlock [keluar] Hanya untuk ZwFsControlFile . Penunjuk ke struktur IO_STATUS_BLOCK yang berisi status akhir permintaan.
FsControlCode [in] Atur ke FSCTL_REARRANGE_FILE.
InputBuffer [in] Lihat parameter IOCTL.
InputBufferLength [in] Lihat parameter IOCTL.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 10, version 1809
Header ntifs.h

Lihat juga

FltFsControlFile

FSCTL_SHUFFLE_FILE

REARRANGE_FILE_DATA

ZwFsControlFile