FltEnumerateVolumes-Funktion (fltkernel.h)
Die FltEnumerateVolumes-Routine listet alle Volumes im System auf.
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 darf nicht NULL sein.
[out] VolumeList
Zeiger auf einen vom Aufrufer zugewiesenen Puffer, der ein Array von undurchsichtigen Volumezeigern empfängt. Dieser Parameter ist optional und kann NULL sein, wenn VolumeListSize null ist. Wenn VolumeListSize bei der Eingabe null und VolumeListNULL ist, empfängt NumberVolumesReturned die Anzahl der gefundenen Volumes.
[in] VolumeListSize
Anzahl der undurchsichtigen Filterzeiger, die der Puffer, auf den VolumeList verweist, enthalten kann. Dieser Parameter ist optional und kann null sein. Wenn VolumeListSize bei der Eingabe null und VolumeListNULL ist, empfängt NumberVolumesReturned die Anzahl der gefundenen Volumes.
[out] NumberVolumesReturned
Zeiger auf eine vom Aufrufer zugewiesene Variable, die die Anzahl der undurchsichtigen Volumezeiger empfängt, die in dem Array zurückgegeben werden, auf das VolumeList verweist. Wenn VolumeListSize zu klein und VolumeList bei der Eingabe ungleich NULL ist, gibt FltEnumerateVolumes STATUS_BUFFER_TOO_SMALL zurück und legt NumberVolumesReturned so fest, dass auf die Anzahl der gefundenen Volumes verweist. Dieser Parameter ist erforderlich und darf nicht NULL sein.
Rückgabewert
FltEnumerateVolumes gibt STATUS_SUCCESS oder einen geeigneten 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. |
Hinweise
Da sich der Inhalt der Volumeliste des Filter-Managers jederzeit ändern kann, werden zwei Aufrufe von FltEnumerateVolumes nicht garantiert das gleiche Ergebnis zurückgeben.
FltEnumerateVolumes fügt einen Rundownverweis zu jedem der undurchsichtigen Volumezeiger hinzu, die im Array zurückgegeben werden, auf das VolumeList verweist. Wenn diese Zeiger nicht mehr benötigt werden, muss der Aufrufer sie durch Aufrufen von FltObjectDereference für jeden freigeben. Daher muss jeder erfolgreiche Aufruf von FltEnumerateVolumes durch einen nachfolgenden Aufruf von FltObjectDereference für jeden zurückgegebenen Volumezeiger abgeglichen werden.
Um einen oder mehrere nicht transparente Volumezeiger, die vom VolumeList-Parameter zurückgegeben werden, in Volumeinformationen zu konvertieren, rufen Sie FltGetVolumeInformation auf.
Rufen Sie FltEnumerateVolumeInformation auf, um Volumeinformationen für alle Volumes aufzulisten, die dem Filter-Manager bekannt sind.
Rufen Sie FltEnumerateFilters auf, um alle registrierten Minifiltertreiber aufzulisten.
Um alle Minifiltertreiberinstanzen aufzulisten, rufen Sie FltEnumerateInstances auf.
Um alle Minifiltertreiberinstanzen auf einem bestimmten Volume aufzulisten, rufen Sie FltEnumerateInstanceInformationByVolume auf.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | fltkernel.h (fltKernel.h einschließen) |
Bibliothek | FltMgr.lib |
IRQL | <= APC_LEVEL |