Freigeben über


FltEnumerateInstanceInformationByVolume-Funktion (fltkernel.h)

Die FltEnumerateInstanceInformationByVolume-Routine stellt Informationen zu Minifiltertreiberinstanzen und Legacyfiltertreibern (nur Windows Vista) bereit, die an ein bestimmtes Volume angefügt sind.

Syntax

NTSTATUS FLTAPI FltEnumerateInstanceInformationByVolume(
  [in]  PFLT_VOLUME                Volume,
  [in]  ULONG                      Index,
  [in]  INSTANCE_INFORMATION_CLASS InformationClass,
  [out] PVOID                      Buffer,
  [in]  ULONG                      BufferSize,
  [out] PULONG                     BytesReturned
);

Parameter

[in] Volume

Undurchsichtiger Zeiger für das Volume.

[in] Index

Nullbasierter Index des Minifiltertreibers instance oder Legacyfiltertreibers, für den die Informationen angefordert werden.

[in] InformationClass

Typ der Informationen, die für den Minifiltertreiber instance oder Legacyfiltertreiber zurückgegeben werden sollen. Dieser Parameter kann einen der folgenden Werte aufweisen.

Wert Bedeutung
InstanceBasicInformation Der Puffer, auf den der Buffer-Parameter verweist, empfängt eine INSTANCE_BASIC_INFORMATION-Struktur für einen Minifilter instance. Ältere Filtertreiber werden ignoriert.
InstanceFullInformation Der Puffer, auf den der Buffer-Parameter verweist, empfängt eine INSTANCE_FULL_INFORMATION-Struktur für einen Minifilter instance. Ältere Filtertreiber werden ignoriert.
InstancePartialInformation Der Puffer, auf den der Buffer-Parameter verweist, empfängt eine INSTANCE_PARTIAL_INFORMATION-Struktur für einen Minifilter instance. Ältere Filtertreiber werden ignoriert.
InstanceAggregateStandardInformation Der Puffer, auf den der Buffer-Parameter verweist, empfängt eine INSTANCE_AGGREGATE_STANDARD_INFORMATION-Struktur für einen Minifiltertreiber instance oder Legacyfiltertreiber. Diese Struktur 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 FltEnumerateInstanceInformationByVolume 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 darf nicht NULL sein.

Rückgabewert

FltEnumerateInstanceInformationByVolume 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 Minifilter instance gefunden, der jedoch abgerissen wird. Dies ist ein Fehlercode. Beachten Sie, dass dieser Rückgabewert nicht für Ältere Filtertreiber gilt, da ältere Filtertreiber nicht entladen werden können.
STATUS_INVALID_PARAMETER
Für den InformationClass-Parameter wurde ein ungültiger Wert angegeben. Wenn instanceAggregateStandardInformation beispielsweise auf einem Betriebssystem vor Windows Vista angegeben ist, gibt die Routine STATUS_INVALID_PARAMETER zurück. Dies ist ein Fehlercode.
STATUS_NO_MORE_ENTRIES
Es gibt keine weiteren Einträge in der instance-/Filterliste des Volumes. Dies ist ein Warncode.

Hinweise

Die Verwendung des Index-Parameters ist einfach eine Möglichkeit für FltEnumerateInstanceInformationByVolume, zwischen Minifiltertreiberinstanzen und Legacyfiltertreibern in der instance-/Filterliste für das volume angegebene Volume auszuwählen. Da sich die Minifiltertreiberinstanzen in der instance-/Filterliste jederzeit ändern können, werden zwei Aufrufe von FltEnumerateInstanceInformationByVolume mit denselben Index- und Volume-Werten nicht garantiert das gleiche Ergebnis zurückgeben.

Ab Windows Vista kann diese Routine sowohl Legacyfiltertreiberinformationen als auch Minifiltertreiberinformationen instance Informationen zurückgeben, wenn der Wert des InformationClass-ParametersInstanceAggregateStandardInformation lautet. Bei früheren Betriebssystemen kann diese Routine keine Legacyfilterinformationen zurückgeben, da die INSTANCE_AGGREGATE_STANDARD_INFORMATION-Struktur nicht verfügbar ist.

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

Weitere Informationen

FltEnumerateFilterInformation

FltEnumerateInstanceInformationByFilter

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation

INSTANCE_AGGREGATE_STANDARD_INFORMATION

INSTANCE_BASIC_INFORMATION

INSTANCE_FULL_INFORMATION

INSTANCE_PARTIAL_INFORMATION