IoGetLowerDeviceObject-Funktion (ntifs.h)
Die IoGetLowerDeviceObject Routine gibt einen Zeiger auf das nächste Geräteobjekt auf der unteren Ebene im Treiberstapel zurück.
Syntax
PDEVICE_OBJECT IoGetLowerDeviceObject(
[in] PDEVICE_OBJECT DeviceObject
);
Parameter
[in] DeviceObject
Ein Zeiger auf das Geräteobjekt im Stapel, für den das objekt der nächsten unteren Ebene zurückgegeben werden soll.
Rückgabewert
IoGetLowerDeviceObject gibt einen Zeiger auf das Gerätobjekt der nächsten unteren Ebene im Treiberstapel zurück.
Bemerkungen
Wenn ein Zeiger auf ein Geräteobjekt in einem Dateisystem- oder Gerätetreiberstapel vorhanden ist, gibt IoGetLowerDeviceObject- einen Zeiger auf das Gerätobjekt der nächsten unteren Ebene im Stapel zurück.
IoGetLowerDeviceObject gibt NULL zurück, wenn:
Der Treiber der nächsten unteren Ebene wird nicht geladen.
Der Treiber der nächsten unteren Ebene wird derzeit entladen, entfernt oder gelöscht.
Das Geräteobjekt, auf das von DeviceObject verwiesen wird, ist das niedrigste Geräteobjekt im Treiberstapel.
Ein Dateisystemfiltertreiber verwendet in der Regel IoGetLowerDeviceObject-, um festzustellen, ob er bereits an den Filtertreiberstapel angefügt ist, der über einem bestimmten Dateisystemgerätobjekt verkettet ist. Zuerst ruft der Filter IoGetAttachedDeviceReference auf, um einen Zeiger auf das oberste Geräteobjekt im Stapel abzurufen. Anschließend wird IoGetLowerDeviceObject wiederholt aufgerufen, um den Treiberstapel zu durchlaufen, und überprüft jedes Geräteobjekt, um festzustellen, ob das Objekt zum Filtertreiber gehört.
IoGetLowerDeviceObject erhöht die Verweisanzahl für das Gerätobjekt der nächsten unteren Ebene, falls vorhanden. Daher muss jeder Aufruf von IoGetLowerDeviceObject, der nicht NULL zurückgibt, mit einem nachfolgenden Aufruf ObDereferenceObjectabgeglichen werden.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 2000 SP4 Update Rollup; Windows XP |
Zielplattform- | Universal |
Header- | ntifs.h (einschließlich Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | <= DISPATCH_LEVEL |