FltEnumerateInstances-Funktion (fltkernel.h)

Die FltEnumerateInstances-Routine listet Minifiltertreiberinstanzen für einen bestimmten Minifiltertreiber oder ein bestimmtes Volume auf.

Syntax

NTSTATUS FLTAPI FltEnumerateInstances(
  [in, optional] PFLT_VOLUME   Volume,
  [in, optional] PFLT_FILTER   Filter,
  [out]          PFLT_INSTANCE *InstanceList,
  [in]           ULONG         InstanceListSize,
  [out]          PULONG        NumberInstancesReturned
);

Parameter

[in, optional] Volume

Undurchsichtiger Zeiger für das Volume, für das der Aufrufer Minifiltertreiberinstanzen aufzählen möchte. Wenn NULL, werden Instanzen für alle Volumes aufgelistet. Muss nicht NULL sein, wenn FilterNULL ist.

[in, optional] Filter

Undurchsichtiger Filterzeiger für den Minifiltertreiber, dessen Instanzen aufgelistet werden sollen. Wenn NULL, werden Instanzen für alle Minifiltertreiber aufgelistet. Muss ungleich NULL sein, wenn VolumeNULL ist.

[out] InstanceList

Zeiger auf einen vom Aufrufer zugeordneten Puffer, der ein Array von undurchsichtigen instance-Zeigern empfängt.

[in] InstanceListSize

Anzahl der nicht transparenten instance Zeiger, die der Puffer, auf den InstanceList verweist, enthalten kann.

[out] NumberInstancesReturned

Zeiger auf eine vom Aufrufer zugewiesene Variable, die die Anzahl der undurchsichtigen instance-Zeiger empfängt, die im Array zurückgegeben werden, auf das InstanceList verweist. Wenn InstanceListSize zu klein ist, gibt FltEnumerateInstances STATUS_BUFFER_TOO_SMALL zurück und legt NumberInstancesReturned fest, um auf die Anzahl der gefundenen übereinstimmenden Instanzen zu verweisen.

Rückgabewert

FltEnumerateInstances 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 InstanceList-Parameter verweist, ist nicht groß genug, um die angeforderten Informationen zu speichern. Dies ist ein Fehlercode.
STATUS_INVALID_PARAMETER
Volume und Filter können nicht beide NULL sein. Dies ist ein Fehlercode.

Hinweise

Da sich die Minifiltertreiberinstanzen in der liste instance jederzeit ändern können, werden zwei Aufrufe von FltEnumerateInstances mit denselben Volume- und Filterwerten nicht garantiert das gleiche Ergebnis zurückgeben.

FltEnumerateInstances fügt jedem der undurchsichtigen instance Zeiger, die in dem Array zurückgegeben werden, auf das der InstanceList-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 FltEnumerateInstances durch einen nachfolgenden Aufruf von FltObjectDereference für jeden zurückgegebenen instance-Zeiger abgeglichen werden.

Rufen Sie FltEnumerateFilters auf, um alle registrierten Minifiltertreiber aufzulisten.

Um alle Volumes aufzulisten, die dem Filter-Manager bekannt sind, rufen Sie FltEnumerateVolumes auf.

Um Filterinformationen für alle registrierten Minifiltertreiber aufzulisten, rufen Sie FltEnumerateFilterInformation auf.

Um Filterinformationen für einen bestimmten Minifiltertreiber abzurufen, rufen Sie FltGetFilterInformation auf.

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

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

Anforderungen

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

Weitere Informationen

FltEnumerateFilterInformation

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateVolumes

FltGetFilterInformation

FltObjectDereference