FltEnumerateFilterInformation-Funktion (fltkernel.h)
Die FltEnumerateFilterInformation Routine stellt Informationen zu allen registrierten Filtertreibern (einschließlich Minifilter- und Legacyfiltertreibern) im System bereit.
NTSTATUS FLTAPI FltEnumerateFilterInformation(
[in] ULONG Index,
[in] FILTER_INFORMATION_CLASS InformationClass,
[out] PVOID Buffer,
[in] ULONG BufferSize,
[out] PULONG BytesReturned
);
[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.
FltEnumerateFilterInformation gibt STATUS_SUCCESS oder einen geeigneten NTSTATUS-Wert zurück, z. B. einen der folgenden:
Rückgabecode | Beschreibung |
---|---|
|
Der Puffer, auf den der Buffer Parameter verweist, ist nicht groß genug, um die angeforderten Informationen zu speichern. Dies ist ein Fehlercode. |
|
Es wurde ein passender Minifiltertreiber gefunden, aber er wird heruntergerissen. Dies ist ein Fehlercode. |
|
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. |
|
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. |
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).
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.
Anforderung | Wert |
---|---|
Zielplattform- | Universal |
Header- | fltkernel.h (include FltKernel.h) |
Library | FltMgr.lib |
IRQL- | <= APC_LEVEL |
FILTER_AGGREGATE_BASIC_INFORMATION
FILTER_AGGREGATE_STANDARD_INFORMATION
FltEnumerateInstanceInformationByFilter