Freigeben über


FltGetDeviceObject-Funktion (fltkernel.h)

Die FltGetDeviceObject Routine gibt einen Zeiger auf das Volumegeräteobjekt (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 Zeiger des Volumegerätobjekts empfängt. Dieser Parameter ist erforderlich und kann nicht NULL-werden.

Rückgabewert

FltGetDeviceObject gibt STATUS_SUCCESS oder einen geeigneten 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.

Bemerkungen

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

Weitere Informationen zu Volumegeräteobjekten finden Sie unter Dateisystemstapel.

Der VDO des Filter-Managers ist nicht mit dem Datenträgergerätobjekt des zugrunde liegenden Speichertreibers oder dem VDO des Basisdateisystems identisch. Um einen Zeiger auf das Datenträgergerätobjekt abzurufen, rufen Sie FltGetDiskDeviceObject- auf dem volume auf, das im parameter Volume angegeben ist. Um einen Zeiger auf das VDO des Basisdateisystems abzurufen, rufen Sie IoGetDeviceAttachmentBaseRef für das RetDeviceObject, das von FltGetDeviceObjectzurückgegeben wird.

Rufen Sie FltGetVolumeFromDeviceObjectauf, um einen undurchsichtigen Zeiger für das entsprechende Volume für ein bestimmtes Geräteobjekt abzurufen.

FltGetDeviceObject erhöht die Verweisanzahl für den zurückgegebenen Geräteobjektzeiger. Wenn dieser Zeiger nicht mehr benötigt wird, muss der Aufrufer diese Verweisanzahl erhöhen, indem ObDereferenceObjectaufgerufen wird. Daher muss jeder erfolgreiche Aufruf von FltGetDeviceObject mit einem nachfolgenden Aufruf von ObDereferenceObjectabgeglichen werden.

Anforderungen

Anforderung Wert
Zielplattform- Universal
Header- fltkernel.h (include Fltkernel.h)
Library Fltmgr.lib
DLL- Fltmgr.sys
IRQL- <= DISPATCH_LEVEL

Siehe auch

FltGetDiskDeviceObject

FltGetVolumeFromDeviceObject

IoGetDeviceAttachmentBaseRef

ObDereferenceObject