Memahami Enumerasi Volume dengan Nama Volume Duplikat

Saat menghitung volume, nama volume duplikat dapat muncul dalam daftar informasi volume yang dihasilkan.

Untuk membantu memahami mengapa hal ini dapat terjadi, pertimbangkan skenario berikut: rutinitas enumerasi volume FltEnumerateVolumeInformation digunakan untuk menghitung semua volume sistem. Ini menghasilkan buffer yang diisi dengan struktur informasi volume - satu untuk setiap volume yang diketahui memfilter manajer. Dalam buffer ini, setiap struktur informasi volume dapat berjenis FILTER_VOLUME_BASIC_INFORMATION atau FILTER_VOLUME_STANDARD_INFORMATION, tetapi tidak keduanya.

Mengingat daftar struktur informasi volume ini, dimungkinkan bagi beberapa elemen daftar untuk berisi nama volume yang sama. Artinya, anggota FilterVolumeName dari dua elemen daftar atau lebih bisa identik. Ini dimungkinkan karena semua rutinitas enumerasi manajer filter, seperti FltEnumerateVolumes, menghitung volume termasuk yang telah dilepas tetapi belum dirobohkan (karena fakta bahwa file terbuka masih ada pada volume). Dengan demikian, ketika volume dilepas, namanya dapat muncul lebih dari sekali dalam daftar informasi volume - sekali untuk status terpasang saat ini dan sekali untuk status sebelumnya yang dilepas tetapi tidak dirobohkan, dalam kasus yang paling sederhana.

Jika nama volume duplikat muncul dalam daftar informasi volume, setiap grup nama yang identik dijelaskan oleh deskripsi di atas. Namun, dimungkinkan untuk mengonfirmasi skenario di atas dengan menggunakan prosedur berikut:

  • Jika daftar diisi dengan struktur jenis FILTER_VOLUME_STANDARD_INFORMATION, identifikasi sekelompok struktur yang anggota FilterVolumeName-nya sama. Jika satu atau beberapa struktur dalam grup ini memiliki bendera FLTFL_VSI_DETACHED_VOLUME yang diatur dalam anggota Benderanya , volume yang terkait dengan grup berada dalam status dilepas tetapi tidak ditumbangkan. Ini mengonfirmasi mengapa nama volume duplikat ada. Ulangi prosedur ini untuk semua grup yang tersisa tersebut, jika berlaku.

  • Jika daftar diisi dengan struktur tipe FILTER_VOLUME_BASIC_INFORMATION, konversikan daftar ini ke bentuk struktur FILTER_VOLUME_STANDARD_INFORMATION yang setara dan lanjutkan seperti pada poin sebelumnya.

Catatan Struktur FILTER_VOLUME_STANDARD_INFORMATION hanya tersedia dimulai dengan Windows Vista.

Rutinitas dan struktur yang terpengaruh oleh topik ini meliputi hal-hal berikut:

FILTER_VOLUME_BASIC_INFORMATION

FILTER_VOLUME_STANDARD_INFORMATION

FilterVolumeFindFirst

FilterVolumeFindNext

FltEnumerateVolumeInformation

FltEnumerateVolumes

FltGetVolumeInformation