共用方式為


瞭解具有重複磁片區名稱的磁片區列舉

列舉磁片區時,可能會重複的磁片區名稱出現在產生的磁片區資訊清單中。

為了協助瞭解發生這種情況的原因,請考慮下列案例:磁片區列舉常式 FltEnumerateVolumeInformation 是用來列舉所有系統磁片區。 這會導致緩衝區填滿磁片區資訊結構,其中一個是篩選管理員已知的每個磁片區。 在此緩衝區中,每個磁片區資訊結構都可以是類型 FILTER_VOLUME_BASIC_INFORMATIONFILTER_VOLUME_STANDARD_INFORMATION,但不能同時是兩者。

假設此磁片區資訊結構清單,多個清單元素可以包含相同的磁片區名稱。 也就是說,兩個或多個清單元素的 FilterVolumeName 成員可能相同。 這可能是因為所有篩選管理員列舉常式,例如 FltEnumerateVolumes,列舉磁片區,包括已卸載但尚未卸載但尚未中斷 (的磁片區,但因為開啟的檔案仍存在於磁片區) 。 因此,當磁片區被卸載時,其名稱可能會多次出現在磁片區資訊清單中 - 一次用於其目前的掛接狀態,一次用於先前卸載但未損毀的狀態,最簡單。

如果磁片區資訊清單中出現重複的磁片區名稱,則上述描述會說明每個相同名稱群組。 不過,您可以使用下列程式來確認上述案例:

  • 如果清單填入類型為 FILTER_VOLUME_STANDARD_INFORMATION 的結構,請識別 FilterVolumeName 成員相等的結構群組。 如果此群組中的一或多個結構在其 Flags 成員中設定了FLTFL_VSI_DETACHED_VOLUME旗標,則與群組相關聯的磁片區處於卸載但非損毀狀態。 這會確認重複的磁片區名稱存在的原因。 如果適用,請針對所有這類剩餘群組重複此程式。

  • 如果清單填入類型為 FILTER_VOLUME_BASIC_INFORMATION 的結構,請將此清單轉換成其相等的FILTER_VOLUME_STANDARD_INFORMATION結構表單,並如先前的專案符號點所示繼續。

注意 FILTER_VOLUME_STANDARD_INFORMATION 結構僅適用于 Windows Vista。

本主題影響的常式和結構包括下列各項:

FILTER_VOLUME_BASIC_INFORMATION

FILTER_VOLUME_STANDARD_INFORMATION

FilterVolumeFindFirst

FilterVolumeFindNext

FltEnumerateVolumeInformation

FltEnumerateVolumes

FltGetVolumeInformation