FltGetDiskDeviceObject-Funktion (fltkernel.h)
Die FltGetDiskDeviceObject-Routine gibt einen Zeiger auf das Datenträgergeräteobjekt zurück, das einem bestimmten Volume zugeordnet ist.
Syntax
NTSTATUS FLTAPI FltGetDiskDeviceObject(
[in] PFLT_VOLUME Volume,
[out] PDEVICE_OBJECT *DiskDeviceObject
);
Parameter
[in] Volume
Undurchsichtiger Zeiger für das Volume. Dieser Parameter ist erforderlich und darf nicht NULL sein.
[out] DiskDeviceObject
Zeiger auf eine vom Aufrufer zugewiesene Variable, die den Geräteobjektzeiger empfängt. Bei jedem Fehler wird dieser Parameter nicht geändert.
Rückgabewert
FltGetDiskDeviceObject 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
FltGetDiskDeviceObject ruft einen Zeiger auf das Speichergeräteobjekt für den physischen Datenträger ab, auf dem sich das Volume befindet. Das Speichergerät muss kein tatsächlicher Datenträger sein.
FltGetDiskDeviceObject erhöht die Verweisanzahl für den in DiskDeviceObject zurückgegebenen Geräteobjektzeiger. Wenn dieser Zeiger nicht mehr benötigt wird, muss der Aufrufer diese Verweisanzahl durch Aufrufen von ObDereferenceObject verringern. Andernfalls wird verhindert, dass das System das Geräteobjekt aufgrund des ausstehenden Verweises freigibt oder löscht. Daher muss jeder erfolgreiche Aufruf von FltGetDiskDeviceObject durch einen nachfolgenden Aufruf von ObDereferenceObject abgeglichen werden.
Ein Minifilter darf FltGetDiskDeviceObject nur in einem E/A-bezogenen Rückruf aufrufen. Andernfalls sind die Felder des zurückgegebenen Geräteobjekts möglicherweise ungültig. Dies ist bei Rückrufroutinen wie InstanceTeardownStartCallback und InstanceTeardownCompleteCallback der Fall.
Um einen Zeiger auf das Volume Device Object (VDO) des Filter-Managers für ein bestimmtes Volume abzurufen, rufen Sie FltGetDeviceObject auf.
Rufen Sie FltGetVolumeFromDeviceObject auf, um einen undurchsichtigen Volumezeiger für das Volume abzurufen, das durch ein Volumegeräteobjekt dargestellt wird.
Weitere Informationen zu Volumegeräteobjekten finden Sie unter Dateisystemstapel.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | fltkernel.h (include Fltkernel.h) |
Bibliothek | Fltmgr.lib |
DLL | Fltmgr.sys |
IRQL | <= DISPATCH_LEVEL |