Freigeben über


FltEnumerateInstanceInformationByDeviceObject-Funktion (fltkernel.h)

Die FltEnumerateInstanceInformationByDeviceObject-Routine stellt Informationen zu Minifiltertreiberinstanzen und Legacyfiltertreibern bereit, die an das Volume im Zusammenhang mit einem angegebenen Geräteobjekt angefügt sind.

Syntax

NTSTATUS FLTAPI FltEnumerateInstanceInformationByDeviceObject(
  [in]  PDEVICE_OBJECT             DeviceObject,
  [in]  ULONG                      Index,
  [in]  INSTANCE_INFORMATION_CLASS InformationClass,
  [out] PVOID                      Buffer,
  [in]  ULONG                      BufferSize,
  [out] PULONG                     BytesReturned
);

Parameter

[in] DeviceObject

Das Geräteobjekt für das zugehörige Dateiobjekt oder 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.

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

FltEnumerateInstanceInformationByDeviceObject 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.
STATUS_FLT_DELETING_OBJECT
Es wurde ein passender Minifilter instance gefunden, der jedoch abgerissen wird. 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.
STATUS_NO_MORE_ENTRIES
Es gibt keine weiteren Einträge in der instance-/Filterliste des Volumes.
STATUS_FLT_VOLUME_NOT_FOUND
Für DeviceObject wurde kein verwandtes Volume gefunden.
STATUS_FLT_INTERNAL_ERROR
DeviceObject ist kein gültiges Volumegerätobjekt.

Oder

Das Volume im Zusammenhang mit DeviceObject wurde registriert, verfügt aber nicht über angefügte Filterinstanzen.

Hinweise

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

Diese Routine gibt sowohl Legacyfiltertreiberinformationen als auch Minifiltertreiberinformationen instance Informationen zurück, wenn der Wert des InformationClass-ParametersInstanceAggregateStandardInformation ist.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 8.
Zielplattform Universell
Header fltkernel.h (fltkernel.h einschließen)
Bibliothek FltMgr.lib
IRQL <= APC_LEVEL

Weitere Informationen

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateInstanceInformationByVolumeName