FltEnumerateFilters-Funktion (fltkernel.h)
Die FltEnumerateFilters Routine enumeriert alle registrierten Minifiltertreiber im System.
Syntax
NTSTATUS FLTAPI FltEnumerateFilters(
[out] PFLT_FILTER *FilterList,
[in] ULONG FilterListSize,
[out] PULONG NumberFiltersReturned
);
Parameter
[out] FilterList
Zeiger auf einen vom Aufrufer zugewiesenen Puffer, der ein Array von undurchsichtigen Filterzeigern empfängt. Dieser Parameter ist optional und kann NULL- werden, wenn der Wert von FilterListSize Parameter null ist. Wenn FilterListSize- für eingabe null ist und FilterList-NULL-ist, empfängt der NumberFiltersReturned Parameter die Anzahl der gefundenen Minifiltertreiber.
[in] FilterListSize
Anzahl der undurchsichtigen Filterzeiger, auf die der Puffer, auf den der FilterList Parameter verweist, enthalten kann. Dieser Parameter ist optional und kann null sein. Wenn FilterListSize- für eingabe null ist und FilterList-NULL-ist, empfängt der NumberFiltersReturned Parameter die Anzahl der gefundenen Minifiltertreiber.
[out] NumberFiltersReturned
Zeiger auf eine vom Aufrufer zugewiesene Variable, die die Anzahl der undurchsichtigen Filterzeiger empfängt, die im Array zurückgegeben werden, auf das der FilterList Parameter verweist. Wenn der FilterListSize Parameterwert zu klein ist und FilterList- nichtNULL- für eingaben ist, gibt FltEnumerateFilters STATUS_BUFFER_TOO_SMALL zurück und legt NumberFiltersReturned so fest, dass auf die Anzahl der gefundenen Minifiltertreiber verweist. Dieser Parameter ist erforderlich und kann nicht NULL-werden.
Rückgabewert
FltEnumerateFilters gibt STATUS_SUCCESS oder einen entsprechenden NTSTATUS-Wert wie den folgenden zurück:
Rückgabecode | Beschreibung |
---|---|
|
Der Puffer, auf den der FilterList Parameter verweist, ist nicht groß genug, um die angeforderten Informationen zu speichern. Dies ist ein Fehlercode. |
Bemerkungen
Da Filter jederzeit registriert werden können, werden nicht garantiert zwei Aufrufe von FltEnumerateFilters dasselbe Ergebnis zurückgeben.
FltEnumerateFilters fügt jedem der im Array zurückgegebenen undurchsichtigen Filterzeiger einen Rundownverweis hinzu, auf den der FilterList 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 FltEnumerateFilters durch einen nachfolgenden Aufruf von FltObjectDereference- für jeden zurückgegebenen Filterzeiger abgeglichen werden.
Rufen Sie FltEnumerateFilterInformationauf, um Filterinformationen für alle registrierten Minifiltertreiber auflisten zu können.
Rufen Sie FltEnumerateInstancesauf, um Instanzen aller Minifiltertreiber auf allen Volumes auflisten zu können.
Rufen Sie FltEnumerateVolumesauf, um alle Volumes aufzählen zu können, die dem Filter-Manager bekannt sind.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Universal |
Header- | fltkernel.h (include Fltkernel.h) |
Library | FltMgr.lib |
IRQL- | <= APC_LEVEL |