Freigeben über


Grundlegendes zu Volumeaufzählungen mit doppelten Volumenamen

Beim Aufzählen von Volumes ist es möglich, dass doppelte Volumenamen in einer sich ergebenden Volumeinformationsliste angezeigt werden.

Um zu verstehen, warum dies auftreten kann, betrachten Sie das folgende Szenario: Die Volumeaufzählungsroutine FltEnumerateVolumeInformation wird verwendet, um alle Systemvolumes aufzulisten. Dies führt zu einem Puffer, der mit Volumeinformationsstrukturen gefüllt ist – eine für jedes Volume, das dem Filter-Manager bekannt ist. In diesem Puffer kann jede Volumeinformationsstruktur vom Typ FILTER_VOLUME_BASIC_INFORMATION oder FILTER_VOLUME_STANDARD_INFORMATION sein, aber nicht beides.

Aufgrund dieser Liste von Volumeinformationsstrukturen ist es möglich, dass mehrere Listenelemente denselben Volumenamen enthalten. Das heißt, die FilterVolumeName-Member von zwei oder mehr Listenelementen können identisch sein. Dies ist möglich, da alle Filter-Manager-Enumerationsroutinen, z. B . FltEnumerateVolumes, Volumes auflisten, einschließlich der Volumes, die zwar nicht bereitgestellt, aber nicht abgerissen wurden (aufgrund der Tatsache, dass auf dem Volume noch offene Dateien vorhanden sind). Wenn ein Volume also nicht bereitgestellt wird, kann sein Name mehr als einmal in einer Volumeinformationsliste angezeigt werden – einmal für den aktuellen eingebundenen Zustand und einmal für den vorherigen, aber nicht heruntergerissenen Zustand, im einfachsten Fall.

Wenn doppelte Volumenamen in einer Volumeinformationsliste angezeigt werden, wird jede Gruppe identischer Namen durch die obige Beschreibung erläutert. Es ist jedoch möglich, das obige Szenario mit den folgenden Verfahren zu bestätigen:

  • Wenn die Liste mit Strukturen vom Typ FILTER_VOLUME_STANDARD_INFORMATION aufgefüllt ist, identifizieren Sie eine Gruppe von Strukturen, deren FilterVolumeName-Member gleich sind. Wenn für eine oder mehrere Strukturen in dieser Gruppe das FLTFL_VSI_DETACHED_VOLUME-Flag in ihrem Flags-Member festgelegt ist, befand sich das der Gruppe zugeordnete Volume in einem nicht abgerissenen Zustand. Dadurch wird bestätigt, warum doppelte Volumenamen vorhanden sind. Wiederholen Sie diesen Vorgang für alle verbleibenden Gruppen, falls zutreffend.

  • Wenn die Liste mit Strukturen vom Typ FILTER_VOLUME_BASIC_INFORMATION aufgefüllt ist, konvertieren Sie diese Liste in die entsprechende FILTER_VOLUME_STANDARD_INFORMATION Strukturform, und fahren Sie wie im vorherigen Aufzählungspunkt fort.

Hinweis Die FILTER_VOLUME_STANDARD_INFORMATION-Struktur ist nur ab Windows Vista verfügbar.

Folgende Routinen und Strukturen sind von diesem Thema betroffen:

FILTER_VOLUME_BASIC_INFORMATION

FILTER_VOLUME_STANDARD_INFORMATION

FilterVolumeFindFirst

FilterVolumeFindWeiter

FltEnumerateVolumeInformation

FltEnumerateVolumes

FltGetVolumeInformation