Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 |
|---|---|
|
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 |