Freigeben über


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
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.

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

Siehe auch

FltEnumerateFilterInformation

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation

FltObjectDereference-