FltGetDeviceObject-Funktion (fltkernel.h)

Die FltGetDeviceObject-Routine gibt einen Zeiger auf das Volume Device Object (VDO) des Filter-Managers für ein bestimmtes Volume zurück.

Syntax

NTSTATUS FLTAPI FltGetDeviceObject(
  [in]  PFLT_VOLUME    Volume,
  [out] PDEVICE_OBJECT *DeviceObject
);

Parameter

[in] Volume

Undurchsichtiger Zeiger für das Volume.

[out] DeviceObject

Zeiger auf eine vom Aufrufer zugewiesene Variable, die den Volumegeräteobjektzeiger empfängt. Dieser Parameter ist erforderlich und darf nicht NULL sein.

Rückgabewert

FltGetDeviceObject gibt STATUS_SUCCESS oder einen entsprechenden NTSTATUS-Wert wie den folgenden zurück:

Rückgabecode Beschreibung
STATUS_FLT_NO_DEVICE_OBJECT Das angeforderte Geräteobjekt ist für das angegebene Volume nicht vorhanden. Dies ist ein Fehlercode.

Hinweise

FltGetDeviceObject gibt einen Zeiger auf das Volume Device Object (VDO) des Filter-Managers für das angegebene Volume zurück.

Weitere Informationen zu Volumegeräteobjekten finden Sie unter Dateisystemstapel.

Die VDO des Filter-Managers ist nicht mit dem zugrunde liegenden Datenträgergeräteobjekt des Speichertreibers oder dem VDO des Basisdateisystems identisch. Um einen Zeiger auf das Datenträgergeräteobjekt abzurufen, rufen Sie FltGetDiskDeviceObject auf dem Volume-Volume-Parameter auf. Um einen Zeiger auf die VDO des Basisdateisystems abzurufen, rufen Sie IoGetDeviceAttachmentBaseRef für das von FltGetDeviceObjectzurückgegebene RetDeviceObject auf.

Um einen undurchsichtigen Zeiger für das entsprechende Volume für ein bestimmtes Geräteobjekt abzurufen, rufen Sie FltGetVolumeFromDeviceObject auf.

FltGetDeviceObject erhöht die Verweisanzahl auf dem zurückgegebenen Geräteobjektzeiger. Wenn dieser Zeiger nicht mehr benötigt wird, muss der Aufrufer diese Verweisanzahl durch Aufrufen von ObDereferenceObject verringern. Daher muss jeder erfolgreiche Aufruf von FltGetDeviceObject durch einen nachfolgenden Aufruf von ObDereferenceObject abgeglichen werden.

Anforderungen

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

Weitere Informationen

FltGetDiskDeviceObject

FltGetVolumeFromDeviceObject

IoGetDeviceAttachmentBaseRef

ObDereferenceObject