FSCTL_GET_VOLUME_BITMAP IOCTL (winioctl.h)
Mengambil bitmap kluster yang ditempati dan tersedia pada volume.
Untuk melakukan operasi ini, panggil fungsi DeviceIoControl dengan parameter berikut.
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to volume
FSCTL_GET_VOLUME_BITMAP, // dwIoControlCode
(LPVOID) lpInBuffer, // input buffer
(DWORD) nInBufferSize, // size of input buffer
(LPVOID) lpOutBuffer, // output buffer
(DWORD) nOutBufferSize, // size of output buffer
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);
Keterangan
Kode kontrol FSCTL_GET_VOLUME_BITMAP mengambil struktur data yang menjelaskan status alokasi setiap kluster dalam sistem file dari LCN awal yang diminta ke kluster terakhir pada volume. Bitmap menggunakan satu bit untuk mewakili setiap kluster:
- Nilai 1 menunjukkan bahwa kluster dialokasikan (sedang digunakan).
- Nilai 0 menunjukkan bahwa kluster tidak dialokasikan (gratis).
Perhatikan bahwa 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 fungsi DeviceIoControl dengan kode kontrol FSCTL_MOVE_FILE harus disiapkan untuk kemungkinan ini.
Handel yang digunakan di sini harus merupakan handel Volume dan telah dibuka dengan akses apa pun. Perhatikan bahwa hanya Administrator yang dapat membuka handel Volume.
LCN awal dalam buffer input dapat dibulatkan ke bawah sebelum bitmap dihitung. Batas pembulatan tergantung pada sistem file.
Untuk implikasi I/O yang tumpang tindih pada operasi ini, lihat bagian Keterangan dari topik DeviceIoControl .
Operasi ini meratakan bitmap yang dikembalikannya pada batas halaman.
Windows Server 2003 dan Windows XP: Operasi ini menyelaraskan bitmap yang dikembalikannya pada batas byte.
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