IoGetLowerDeviceObject-Funktion (ntifs.h)

Die IoGetLowerDeviceObject-Routine gibt einen Zeiger auf das nächste Geräteobjekt auf niedrigerer 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 nächste Geräteobjekt auf niedrigerer Ebene zurückgegeben werden soll.

Rückgabewert

IoGetLowerDeviceObject gibt einen Zeiger auf das nächste Geräteobjekt auf niedrigerer Ebene im Treiberstapel zurück.

Bemerkungen

Da ein Zeiger auf ein Geräteobjekt in einem Dateisystem oder Gerätetreiberstapel vorhanden ist, gibt IoGetLowerDeviceObject einen Zeiger auf das nächste Geräteobjekt auf niedrigerer Ebene im Stapel zurück.

IoGetLowerDeviceObject gibt NULL zurück, wenn:

  • Der treiber der nächsten unteren Ebene wird nicht geladen.
  • Der nächste untere Treiber wird derzeit geladen, entfernt oder gelöscht.
  • Das von DeviceObject hervorgehobene Geräteobjekt 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. Zunächst 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, um zu überprüfen, ob das Objekt zum Filtertreiber gehört.

IoGetLowerDeviceObject erhöht die Referenzanzahl des nächsten Geräteobjekts auf niedrigerer Ebene. Daher muss jeder erfolgreiche Aufruf von IoGetLowerDeviceObject durch einen nachfolgenden Aufruf obDereferenceObject übereinstimmen.

Anforderungen

   
Unterstützte Mindestversion (Client) Diese Routine ist auf Updaterollup für Windows 2000 Service Pack 4 (SP4) und höher unter Windows XP und höher verfügbar.
Zielplattform Universell
Header ntifs.h (einschließlich Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

Weitere Informationen

IoGetAttachedDevice

IoGetAttachedDeviceReference

ObDereferenceObject