struktur MOVE_FILE_DATA (winioctl.h)

Berisi data input untuk kode kontrol FSCTL_MOVE_FILE .

Sintaks

typedef struct {
  HANDLE        FileHandle;
  LARGE_INTEGER StartingVcn;
  LARGE_INTEGER StartingLcn;
  DWORD         ClusterCount;
} MOVE_FILE_DATA, *PMOVE_FILE_DATA;

Anggota

FileHandle

Handel ke file yang akan dipindahkan.

Untuk mengambil handel ke file, gunakan CreateFile.

Jika file dienkripsi, handel harus memiliki hak akses FILE_READ_DATA, FILE_WRITE_DATA, FILE_APPEND_DATA, atau FILE_EXECUTE . Untuk informasi selengkapnya, lihat Keamanan File dan Hak Akses.

StartingVcn

VCN (nomor kluster relatif terhadap awal file) dari kluster pertama yang akan dipindahkan.

StartingLcn

LCN (nomor kluster pada volume) tempat VCN akan dipindahkan.

ClusterCount

Jumlah kluster yang akan dipindahkan.

Keterangan

Untuk mengambil data untuk mengisi struktur ini, gunakan fungsi DeviceIoControl dengan kode kontrol FSCTL_GET_RETRIEVAL_POINTERS .

Kluster pertama direktori pada volume sistem file FAT tidak dapat dipindahkan.

Jika memungkinkan, pindahkan data dalam blok yang selaras relatif satu sama lain dalam kenaikan 16 kilobyte (KB). Ini mengurangi overhead copy-on-write ketika salinan bayangan diaktifkan, karena ruang salinan bayangan ditingkatkan dan performa berkurang ketika kondisi berikut terjadi:

  • Ukuran blok permintaan pemindahan kurang dari atau sama dengan 16 KB.
  • Delta pemindahan tidak dalam kenaikan 16 KB.
Delta pemindahan adalah jumlah byte antara awal blok sumber dan awal blok target. Dengan kata lain, blok yang dimulai dari offset X (on-disk) dapat dipindahkan ke offset awal Y jika nilai absolut X minus Y bahkan kelipatan 16 KB. Jadi, dengan asumsi kluster 4 KB, perpindahan dari kluster 3 ke kluster 27 akan dioptimalkan, tetapi perpindahan dari kluster 18 ke kluster 24 tidak akan. Perhatikan bahwa mod(3,4) = 3 = mod(27,4). Mod 4 dipilih karena empat kluster pada 4 KB masing-masing setara dengan 16 KB. Oleh karena itu, volume yang diformat ke ukuran kluster 16 KB akan mengakibatkan semua file pemindahan dioptimalkan.

Untuk informasi selengkapnya tentang salinan bayangan, lihat Layanan Menyalin Bayangan Volume.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Header winioctl.h (termasuk Windows.h)

Lihat juga

Defragmentasi File

FSCTL_GET_RETRIEVAL_POINTERS

FSCTL_MOVE_FILE

GetFileAttributes

GetFileAttributesEx

GetFileInformationByHandle