FltGetVolumeProperties-Funktion (fltkernel.h)

Die FltGetVolumeProperties-Routine gibt Volumeeigenschafteninformationen für das angegebene Volume zurück.

Syntax

NTSTATUS FLTAPI FltGetVolumeProperties(
  [in]  PFLT_VOLUME            Volume,
  [out] PFLT_VOLUME_PROPERTIES VolumeProperties,
        ULONG                  VolumePropertiesLength,
  [out] PULONG                 LengthReturned
);

Parameter

[in] Volume

Undurchsichtiger Zeiger für das Volume. Dieser Parameter ist erforderlich und darf nicht NULL sein.

[out] VolumeProperties

Zeiger auf einen vom Aufrufer zugewiesenen Puffer, der die angeforderten Volumeeigenschafteninformationen empfängt. Wenn Length bei der Eingabe 0 ist, wird dieser Parameter ignoriert. Andernfalls ist dieser Parameter erforderlich und darf nicht NULL sein.

VolumePropertiesLength

Größe des Puffers in Bytes, auf den der VolumeProperties-Parameter verweist. Dieser Parameter ist optional und kann null sein. Wenn es null ist, empfängt LengthReturned die Größe des Puffers in Bytes, der für die Volumeeigenschaften erforderlich ist. Wenn dieser Parameter nichtzero ist, muss er mindestens der Wert von sizeof(FLT_VOLUME_PROPERTIES)sein.

[out] LengthReturned

Zeiger auf eine vom Aufrufer zugewiesene Variable, die die Größe der in VolumeProperties zurückgegebenen Informationen in Bytes empfängt. Wenn FltGetVolumeProperties STATUS_BUFFER_TOO_SMALL zurückgibt, oder wenn Length bei der Eingabe 0 ist, empfängt dieser Parameter stattdessen die Größe des Puffers in Bytes, der zum Halten der Volumeeigenschaften benötigt wird. Dieser Parameter ist erforderlich und darf nicht NULL sein.

Rückgabewert

FltGetVolumeProperties gibt STATUS_SUCCESS oder einen entsprechenden NTSTATUS-Wert zurück, z. B. einen der folgenden:

Rückgabecode Beschreibung
STATUS_BUFFER_OVERFLOW
Der Puffer, auf den der VolumeProperties-Parameter verweist, ist groß genug, um den festen Teil der FLT_VOLUME_PROPERTIES-Struktur aufzunehmen, nicht jedoch die Member FileSystemDriverName, FileSystemDeviceName oder RealDeviceName . In diesem Fall wird nur der feste Teil der Volumeinformationen im Puffer zurückgegeben, auf den der VolumeProperties-Parameter verweist. Der LengthReturned-Parameter empfängt die tatsächliche Länge der zurückgegebenen Daten in Bytes. Dies ist ein Warncode.
STATUS_BUFFER_TOO_SMALL
Der Puffer, auf den der VolumeProperties-Parameter verweist, ist nicht groß genug, um die Volumeeigenschafteninformationen zu enthalten. Der Parameter LengthReturned empfängt die erforderliche Puffergröße. In diesem Fall werden keine Volumeinformationen zurückgegeben. Dies ist ein Fehlercode.

Hinweise

FltGetVolumeProperties gibt nur Informationen zurück, die während des Bereitstellungsprozesses ohne Risiko eines System-Deadlocks sicher abgefragt werden können. Daher ruft ein Minifiltertreiber diese Routine in der Regel über eine Rückruffunktion nach der Bereitstellung oder eine InstanzSetupCallback-Routine (PFLT_INSTANCE_SETUP_CALLBACK) auf, um zu bestimmen, ob an ein bestimmtes Volume angefügt werden soll.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header fltkernel.h (include Fltkernel.h)
Bibliothek FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

Weitere Informationen

FLT_VOLUME_PROPERTIES

PFLT_INSTANCE_SETUP_CALLBACK