FltEnumerateInstances-Funktion (fltkernel.h)
Die FltEnumerateInstances Routine-Treiberinstanzen für einen bestimmten Minifiltertreiber oder ein bestimmtes Volume aufzählt.
Syntax
NTSTATUS FLTAPI FltEnumerateInstances(
[in, optional] PFLT_VOLUME Volume,
[in, optional] PFLT_FILTER Filter,
[out] PFLT_INSTANCE *InstanceList,
[in] ULONG InstanceListSize,
[out] PULONG NumberInstancesReturned
);
Parameter
[in, optional] Volume
Undurchsichtiger Zeiger für das Volume, für das der Aufrufer Minifiltertreiberinstanzen aufzählen möchte. Wenn NULL-, werden Instanzen für alle Volumes aufgezählt. Muss nichtNULL- sein, wenn Filter-NULL-ist.
[in, optional] Filter
Undurchsichtiger Filterzeiger für den Minifiltertreiber, dessen Instanzen aufgezählt werden sollen. Wenn NULL-werden Instanzen für alle Minifiltertreiber aufgezählt. Muss nichtNULL- sein, wenn Volume-NULL-ist.
[out] InstanceList
Zeiger auf einen vom Aufrufer zugewiesenen Puffer, der ein Array von undurchsichtigen Instanzzeigern empfängt.
[in] InstanceListSize
Anzahl der undurchsichtigen Instanzzeiger, die der Puffer InstanceList Punkte enthalten kann.
[out] NumberInstancesReturned
Zeiger auf eine vom Aufrufer zugewiesene Variable, die die Anzahl der undurchsichtigen Instanzzeiger empfängt, die im Array zurückgegeben werden, auf das InstanceList verweist. Wenn InstanceListSize- zu klein ist, gibt FltEnumerateInstances STATUS_BUFFER_TOO_SMALL zurück und legt NumberInstancesReturned- fest, um auf die Anzahl der gefundenen übereinstimmenden Instanzen zu verweisen.
Rückgabewert
FltEnumerateInstances gibt STATUS_SUCCESS oder einen geeigneten NTSTATUS-Wert zurück, z. B. einen der folgenden:
Rückgabecode | Beschreibung |
---|---|
|
Der Puffer, auf den der InstanceList Parameter verweist, ist nicht groß genug, um die angeforderten Informationen zu speichern. Dies ist ein Fehlercode. |
|
volume und Filter können nicht beide NULL-sein. Dies ist ein Fehlercode. |
Bemerkungen
Da sich die Minifiltertreiberinstanzen in der Instanzliste jederzeit ändern können, sind zwei Aufrufe von FltEnumerateInstances mit demselben Volume- und Filter- Werten nicht garantiert, dasselbe Ergebnis zurückzugeben.
FltEnumerateInstances fügt einen Rundownverweis auf jeden der undurchsichtigen Instanzzeiger hinzu, die im Array zurückgegeben werden, auf das der InstanceList Parameter 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 FltEnumerateInstances durch einen nachfolgenden Aufruf von FltObjectDereference- für jeden zurückgegebenen Instanzzeiger abgeglichen werden.
Rufen Sie zum Aufzählen aller registrierten Minifiltertreiber FltEnumerateFiltersauf.
Rufen Sie FltEnumerateVolumesauf, um alle Volumes aufzählen zu können, die dem Filter-Manager bekannt sind.
Rufen Sie FltEnumerateFilterInformationauf, um Filterinformationen für alle registrierten Minifiltertreiber auflisten zu können.
Rufen Sie FltGetFilterInformationauf, um Filterinformationen für einen bestimmten Minifiltertreiber abzurufen.
Rufen Sie FltEnumerateInstanceInformationByFilterauf, um alle Instanzen eines bestimmten Minifiltertreibers aufzählen zu können.
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
FltEnumerateInstanceInformationByFilter