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 |