FSCTL_MOVE_FILE IOCTL (winioctl.h)
Merelokasi satu atau beberapa kluster virtual file dari satu kluster logis ke kluster logis lainnya dalam volume yang sama. Operasi ini digunakan selama defragmentasi.
Untuk melakukan operasi ini, panggil fungsi DeviceIoControl dengan parameter berikut.
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to volume
FSCTL_MOVE_FILE, // dwIoControlCode
(LPVOID) lpInBuffer, // MOVE_FILE_DATA structure
(DWORD) nInBufferSize, // size of input buffer
NULL, // lpOutBuffer
0, // nOutBufferSize
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);
Keterangan
Kode kontrol FSCTL_MOVE_FILE merelokasi satu atau beberapa kluster virtual file dari satu kluster logis ke kluster logis lainnya dalam volume yang sama. Jika file yang akan dipindahkan adalah file jarang atau terkompresi, granularitas pemindahan adalah 16 kluster; jika tidak, granularitasnya adalah satu kluster.
Untuk menandai file terbuka agar tidak didefragmentasi, panggil fungsi DeviceIoControl dengan kode kontrol FSCTL_MARK_HANDLE dengan MARK_HANDLE_PROTECT_CLUSTERS di anggota HandleInfo dari struktur MARK_HANDLE_INFO yang diteruskan dalam parameter lpInBuffer .
Perhatikan bahwa bitmap yang dikembalikan oleh fungsi DeviceIoControl dengan kode kontrol FSCTL_GET_VOLUME_BITMAP mewakili titik waktu, dan dapat salah segera setelah dibaca jika volume memiliki aktivitas tulis. Dengan demikian, dimungkinkan untuk mencoba memindahkan kluster ke kluster yang dialokasikan meskipun bitmap baru-baru ini menunjukkan bahwa kluster tidak dialokasikan. Program yang menggunakan FSCTL_MOVE_FILE harus disiapkan untuk kemungkinan ini.
Untuk implikasi I/O yang tumpang tindih pada operasi ini, lihat bagian Keterangan dari topik DeviceIoControl .
Untuk daftar file, aliran, dan jenis aliran yang didukung oleh kode kontrol FSCTL_MOVE_FILE , lihat jenis File, aliran, dan aliran yang didukung untuk bagian defragmentasi topik File Defragmentasi .
Di Windows 8 dan Windows Server 2012, kode ini didukung oleh teknologi berikut.
Teknologi | Didukung |
---|---|
Protokol Server Message Block (SMB) 3.0 | Tidak |
SMB 3.0 Transparent Failover (TFO) | Tidak |
SMB 3.0 dengan Scale-out File Shares (SO) | Tidak |
Sistem File Volume Bersama Kluster (CsvFS) | Ya |
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk