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 gültige Index- Werte zwischen 0 und n-1. Wenn der Index Wert 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 parameter Buffer verweist, empfängt eine FILTER_FULL_INFORMATION Struktur für den Minifiltertreiber (Legacyfiltertreiber werden ignoriert).
FilterAggregateBasicInformation Der Puffer, auf den der parameter Buffer 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 Rolluppaket des Filter-Managers für Windows XP SP2 finden Sie im Artikel 914882 "Das Filter-Manager-Rolluppaket für Windows XP SP2"" in der Microsoft Knowledge Base.
FilterAggregateStandardInformation Der Puffer, auf den der parameter Buffer 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

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

[in] BufferSize

Größe des Puffers, auf den der Buffer Parameter verweist, in Byte. Der Aufrufer sollte diesen Parameter gemäß dem angegebenen InformationClass-wert festlegen.

[out] BytesReturned

Zeiger auf eine vom Aufrufer zugewiesene Variable, die die Anzahl der im Puffer zurückgegebenen Bytes empfängt, auf die 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 der Bytes fest, die zum Speichern der angeforderten Informationen erforderlich sind. Dieser Parameter ist erforderlich und kann nicht NULL-werden.

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, aber er wird heruntergerissen. Dies ist ein Fehlercode.
STATUS_INVALID_PARAMETER
Für den parameter InformationClass wurde ein ungültiger Wert angegeben. Wenn z. B. FilterAggregateStandardInformation auf Betriebssystemen vor Windows Vista angegeben wird, gibt die Routine STATUS_INVALID_PARAMETER zurück. Dies ist ein Fehlercode.
STATUS_NO_MORE_ENTRIES
Es gibt keine weiteren Einträge in der globalen Liste der registrierten Filtertreiber. (Der Wert des Index Parameters ist größer oder gleich der Anzahl der Filtertreiber.) Dies ist ein Warncode.

Bemerkungen

Ab Microsoft Windows Server 2003 SP1 und Windows XP SP2 mit Filter-Manager-Rollup bietet FltEnumerateFilterInformation Informationen zu Dateisystemfiltertreibern (auch als "Legacyfilter" bezeichnet) sowie Minifiltertreibern. 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 Informationen zu registrierten Filtertreibern über den parameter Buffer zurück, um den Abstand vom zugrunde liegenden Dateisystem zu verringern. Angenommen, es gibt n Filtertreiber, die über einem zugrunde liegenden Dateisystem angefügt sind. Informationen über den vom Dateisystem am weitesten entfernten Filtertreiber werden zuerst zurückgegeben (mit einem Index Parameterwert 0). Informationen zum nächsten angefügten Filtertreiber werden zweiten (mit einem Index Parameterwert 1) zurückgegeben usw. Schließlich werden Informationen zum Filtertreiber, der dem Dateisystem am nächsten kommt, zuletzt zurückgegeben (mit einem Index Parameterwert von n-1).

Hinweis Da Filtertreiber jederzeit registriert werden können, ist es möglich, dass zwei Aufrufe von FltEnumerateFilterInformation mit demselben Index- möglicherweise nicht dasselbe Ergebnis zurückgeben.
 
Rufen Sie zum Aufzählen aller registrierten Minifiltertreiber FltEnumerateFiltersauf.

Rufen Sie zum Aufzählen aller registrierten Legacyfiltertreiber IoEnumerateRegisteredFiltersListauf.

Rufen Sie FltEnumerateInstanceInformationByFilterauf, um alle Instanzen eines bestimmten Minifiltertreibers aufzählen zu können.

Rufen Sie FltEnumerateInstanceInformationByVolumeauf, um alle Minifiltertreiberinstanzen auf einem bestimmten Volume aufzurufen.

Rufen Sie FltEnumerateVolumeInformationauf, um Volumeinformationen für alle Volumes auflisten, 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

FILTER_AGGREGATE_BASIC_INFORMATION

FILTER_AGGREGATE_STANDARD_INFORMATION

FILTER_FULL_INFORMATION

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateVolumeInformation

FltGetFilterInformation

IoEnumerateRegisteredFiltersList