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 |