Freigeben über


FltEnumerateVolumes-Funktion (fltkernel.h)

Die FltEnumerateVolumes Routine enumeriert alle Volumes im System.

Syntax

NTSTATUS FLTAPI FltEnumerateVolumes(
  [in]  PFLT_FILTER Filter,
  [out] PFLT_VOLUME *VolumeList,
  [in]  ULONG       VolumeListSize,
  [out] PULONG      NumberVolumesReturned
);

Parameter

[in] Filter

Undurchsichtiger Filterzeiger für den Aufrufer. Dieser Parameter ist erforderlich und kann nicht NULL-werden.

[out] VolumeList

Zeiger auf einen vom Aufrufer zugewiesenen Puffer, der ein Array von undurchsichtigen Volumezeigern empfängt. Dieser Parameter ist optional und kann NULL- werden, wenn VolumeListSize null ist. Wenn VolumeListSize- für die Eingabe null ist und VolumeList-NULL-ist, erhält NumberVolumesReturned die Anzahl der gefundenen Volumes.

[in] VolumeListSize

Anzahl der undurchsichtigen Filterzeiger, die der Puffer VolumeList Punkte enthalten kann. Dieser Parameter ist optional und kann null sein. Wenn VolumeListSize- für die Eingabe null ist und VolumeList-NULL-ist, erhält NumberVolumesReturned die Anzahl der gefundenen Volumes.

[out] NumberVolumesReturned

Zeiger auf eine vom Aufrufer zugewiesene Variable, die die Anzahl der undurchsichtigen Volumezeiger empfängt, die im Array zurückgegeben werden, auf das volumeList verweist. Wenn VolumeListSize zu klein ist und VolumeList- nichtNULL- für eingaben ist, gibt FltEnumerateVolumes STATUS_BUFFER_TOO_SMALL zurück und legt NumberVolumesReturned auf die Anzahl der gefundenen Volumes fest. Dieser Parameter ist erforderlich und kann nicht NULL-werden.

Rückgabewert

FltEnumerateVolumes gibt STATUS_SUCCESS oder einen entsprechenden NTSTATUS-Wert wie den folgenden zurück:

Rückgabecode Beschreibung
STATUS_BUFFER_TOO_SMALL
Der Puffer, auf den der VolumeList Parameter verweist, ist nicht groß genug, um die angeforderten Informationen zu speichern. Dies ist ein Fehlercode.

Bemerkungen

Da sich der Inhalt der Volumeliste des Filtermanagers jederzeit ändern kann, werden zwei Aufrufe von FltEnumerateVolumes nicht garantiert, dasselbe Ergebnis zurückzugeben.

FltEnumerateVolumes fügt jedem der im Array zurückgegebenen undurchsichtigen Volumezeiger einen Rundownverweis hinzu, auf den VolumeList verweist. Wenn diese Zeiger nicht mehr benötigt werden, muss der Aufrufer sie freigeben, indem FltObjectDereference- auf jedem aufruft. Daher muss jeder erfolgreiche Aufruf von FltEnumerateVolumes mit einem nachfolgenden Aufruf von FltObjectDereference für jeden zurückgegebenen Volumezeiger abgeglichen werden.

Rufen Sie FltGetVolumeInformationauf, um einen oder mehrere undurchsichtige Volumezeiger zu konvertieren, die vom VolumeList Parameter zurückgegeben werden.

Rufen Sie FltEnumerateVolumeInformationauf, um Volumeninformationen für alle Volumes auflisten, die dem Filter-Manager bekannt sind.

Rufen Sie zum Aufzählen aller registrierten Minifiltertreiber FltEnumerateFiltersauf.

Rufen Sie zum Aufzählen aller Minifiltertreiberinstanzen FltEnumerateInstancesauf.

Rufen Sie FltEnumerateInstanceInformationByVolumeauf, um alle Minifiltertreiberinstanzen auf einem bestimmten Volume aufzurufen.

Anforderungen

Anforderung Wert
Zielplattform- Universal
Header- fltkernel.h (include FltKernel.h)
Library FltMgr.lib
IRQL- <= APC_LEVEL

Siehe auch

FltEnumerateFilters

FltEnumerateInstanceInformationByVolume

FltEnumerateInstances

FltEnumerateVolumeInformation

FltGetVolumeInformation

FltObjectDereference-