Freigeben über


FltEnumerateFilterInformation-Funktion (fltkernel.h)

Die FltEnumerateFilterInformation-Routine stellt Informationen zu allen registrierten Filtertreibern (einschließlich Minifilter- und Legacyfiltertreibern) im System bereit.

Syntax

NTSTATUS FLTAPI FltEnumerateFilterInformation(
  [in]  ULONG                    Index,
  [in]  FILTER_INFORMATION_CLASS InformationClass,
  [out] PVOID                    Buffer,
  [in]  ULONG                    BufferSize,
  [out] PULONG                   BytesReturned
);

Parameter

[in] Index

Nullbasierter Index des Filtertreibers, für den die Informationen angefordert werden. Dieser Parameter identifiziert den Filter in der globalen Liste der registrierten Filtertreiber. Wenn die Liste n Filtertreiber enthält, liegen die gültigen Indexwerte zwischen 0 und n-1. Wenn der Indexwert diesen Bereich überschreitet, gibt FltEnumerateFilterInformation STATUS_NO_MORE_ENTRIES zurück.

[in] InformationClass

Typ der angeforderten Informationen. Dieser Parameter kann einen der folgenden Werte aufweisen.

Wert Bedeutung
FilterFullInformation Der Puffer, auf den der Buffer-Parameter verweist, empfängt eine FILTER_FULL_INFORMATION-Struktur für den Minifiltertreiber (Legacyfiltertreiber werden ignoriert).
FilterAggregateBasicInformation Der Puffer, auf den der Buffer-Parameter verweist, empfängt eine FILTER_AGGREGATE_BASIC_INFORMATION-Struktur für den Minifilter- oder Legacyfiltertreiber. Dieser InformationClass-Wert ist ab Microsoft Windows Server 2003 SP1 und Windows XP SP2 mit Filter-Manager-Rollup verfügbar. Weitere Informationen zum Filter-Manager-Rolluppaket für Windows XP SP2 finden Sie in der Microsoft Knowledge Base im Artikel 914882 "Das Filter-Manager-Rolluppaket für Windows XP SP2".
FilterAggregateStandardInformation Der Puffer, auf den der Buffer-Parameter verweist, empfängt eine FILTER_AGGREGATE_STANDARD_INFORMATION-Struktur für den Minifilter- oder Legacyfiltertreiber. Dieser InformationClass-Wert ist ab Windows Vista verfügbar.

[out] Buffer

Zeiger auf einen vom Aufrufer zugewiesenen Puffer, der die angeforderten Informationen empfängt. Der Typ der im Puffer zurückgegebenen Informationen wird durch den InformationClass-Parameter definiert.

[in] BufferSize

Größe des Puffers in Byte, auf den der Buffer-Parameter zeigt. Der Aufrufer sollte diesen Parameter entsprechend dem angegebenen InformationClass-Wert festlegen.

[out] BytesReturned

Zeiger auf eine vom Aufrufer zugeordnete Variable, die die Anzahl der Bytes empfängt, die im Puffer zurückgegeben werden, auf den Buffer verweist. Wenn der Eingabewert von BufferSize zu klein ist, gibt FltEnumerateFilterInformation STATUS_BUFFER_TOO_SMALL zurück und legt diese Variable auf die Anzahl von Bytes fest, die zum Speichern der angeforderten Informationen erforderlich sind. Dieser Parameter ist erforderlich und darf nicht NULL sein.

Rückgabewert

FltEnumerateFilterInformation gibt STATUS_SUCCESS oder einen geeigneten NTSTATUS-Wert zurück, z. B. einen der folgenden:

Rückgabecode Beschreibung
STATUS_BUFFER_TOO_SMALL
Der Puffer, auf den der Buffer-Parameter verweist, ist nicht groß genug, um die angeforderten Informationen zu speichern. Dies ist ein Fehlercode.
STATUS_FLT_DELETING_OBJECT
Es wurde ein passender Minifiltertreiber gefunden, der jedoch abgerissen wird. Dies ist ein Fehlercode.
STATUS_INVALID_PARAMETER
Für den InformationClass-Parameter wurde ein ungültiger Wert angegeben. Wenn filterAggregateStandardInformation beispielsweise unter Betriebssystemen vor Windows Vista angegeben ist, gibt die Routine STATUS_INVALID_PARAMETER zurück. Dies ist ein Fehlercode.
STATUS_NO_MORE_ENTRIES
In der globalen Liste der registrierten Filtertreiber sind keine Einträge mehr vorhanden. (Der Wert des Index-Parameters ist größer oder gleich der Anzahl der Filtertreiber.) Dies ist ein Warncode.

Hinweise

Ab Microsoft Windows Server 2003 SP1 und Windows XP SP2 mit Filter-Manager-Rollup stellt FltEnumerateFilterInformation Informationen über Dateisystemfiltertreiber (auch als "Legacyfilter" bezeichnet) sowie Minifiltertreiber bereit. In früheren Versionen von Windows stellt FltEnumerateFilterInformation nur Informationen zu Minifiltertreibern bereit.

Der folgende Pseudocode listet Filterinformationen für alle registrierten Filtertreiber auf.

#define InfoClass FilterAggregateStandardInformation   // Assumes Windows Vista or later operating system.

int i = 0;
while ( FltEnumerateFilterInformation(i, InfoClass, ...) != STATUS_NO_MORE_ENTRIES )
{
 Process acquired filter driver information returned by the Buffer parameter of FltEnumerateFilterInformation, if applicable.
 i++;
}

FltEnumerateFilterInformation gibt Informationen zu registrierten Filtertreibern über den Buffer-Parameter zurück, in der Reihenfolge, dass der Abstand vom zugrunde liegenden Dateisystem verringert wird. Angenommen, es gibt n Filtertreiber, die über einem zugrunde liegenden Dateisystem angefügt sind. Informationen zum Am weitesten vom Dateisystem entfernten Filtertreiber werden zuerst zurückgegeben (mit dem Index-Parameterwert 0). Informationen zum am weitesten entfernten angefügten Filtertreiber werden sekundengenau zurückgegeben (mit einem Index-Parameterwert von 1) usw. Schließlich werden Zuletzt Informationen zum Filtertreiber zurückgegeben, der dem Dateisystem am nächsten ist (mit dem Index-Parameterwertn-1).

Hinweis Da Filtertreiber jederzeit registriert werden können, ist es möglich, dass zwei Aufrufe von FltEnumerateFilterInformation mit demselben Index nicht das gleiche Ergebnis zurückgeben.
 
Rufen Sie FltEnumerateFilters auf, um alle registrierten Minifiltertreiber aufzulisten.

Rufen Sie IoEnumerateRegisteredFiltersList auf, um alle registrierten Legacyfiltertreiber aufzulisten.

Um alle Instanzen eines bestimmten Minifiltertreibers aufzulisten, rufen Sie FltEnumerateInstanceInformationByFilter auf.

Um alle Minifiltertreiberinstanzen auf einem bestimmten Volume aufzulisten, rufen Sie FltEnumerateInstanceInformationByVolume auf.

Um Volumeinformationen für alle Volumes aufzulisten, die dem Filter-Manager bekannt sind, rufen Sie FltEnumerateVolumeInformation auf.

Anforderungen

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

Weitere Informationen

FILTER_AGGREGATE_BASIC_INFORMATION

FILTER_AGGREGATE_STANDARD_INFORMATION

FILTER_FULL_INFORMATION

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateVolumeInformation

FltGetFilterInformation

IoEnumerateRegisteredFiltersList