FltEnumerateFilters-Funktion (fltkernel.h)

Die FltEnumerateFilters-Routine listet alle registrierten Minifiltertreiber im System auf.

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 sein, wenn der Wert des FilterListSize-Parameters null ist. Wenn FilterListSize bei eingabe null und FilterListNULL ist, empfängt der Parameter NumberFiltersReturned die Anzahl der gefundenen Minifiltertreiber.

[in] FilterListSize

Anzahl der undurchsichtigen Filterzeiger, die der Puffer, auf den der FilterList-Parameter verweist, enthalten kann. Dieser Parameter ist optional und kann null sein. Wenn FilterListSize bei eingabe null und FilterListNULL ist, empfängt der Parameter NumberFiltersReturned die Anzahl der gefundenen Minifiltertreiber.

[out] NumberFiltersReturned

Zeiger auf eine vom Aufrufer zugeordnete Variable, die die Anzahl von undurchsichtigen Filterzeigern empfängt, die in dem Array zurückgegeben werden, auf das der FilterList-Parameter verweist. Wenn der FilterListSize-Parameterwert zu klein und FilterList bei eingaben ungleich NULL ist, gibt FltEnumerateFilters STATUS_BUFFER_TOO_SMALL zurück und legt NumberFiltersReturned so fest, dass er auf die Anzahl der gefundenen Minifiltertreiber verweist. Dieser Parameter ist erforderlich und darf nicht NULL sein.

Rückgabewert

FltEnumerateFilters gibt STATUS_SUCCESS oder einen geeigneten NTSTATUS-Wert wie den folgenden zurück:

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

Hinweise

Da Filter jederzeit registriert werden können, werden zwei Aufrufe von FltEnumerateFilters nicht garantiert das gleiche Ergebnis zurückgeben.

FltEnumerateFilters fügt jedem der undurchsichtigen Filterzeiger in dem Array, auf das der FilterList-Parameter verweist, einen Rundownverweis hinzu. 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 FltEnumerateFilters durch einen nachfolgenden Aufruf von FltObjectDereference für jeden zurückgegebenen Filterzeiger abgeglichen werden.

Um Filterinformationen für alle registrierten Minifiltertreiber aufzulisten, rufen Sie FltEnumerateFilterInformation auf.

Um Instanzen aller Minifiltertreiber auf allen Volumes aufzulisten, rufen Sie FltEnumerateInstances auf.

Um alle Volumes aufzulisten, die dem Filter-Manager bekannt sind, rufen Sie FltEnumerateVolumes auf.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header fltkernel.h (fltkernel.h einschließen)
Bibliothek FltMgr.lib
IRQL <= APC_LEVEL

Weitere Informationen

FltEnumerateFilterInformation

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation

FltObjectDereference