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