IoGetLowerDeviceObject 函数 (ntifs.h)

IoGetLowerDeviceObject 例程返回指向驱动程序堆栈上下一个较低级别的设备对象的指针。

语法

PDEVICE_OBJECT IoGetLowerDeviceObject(
  [in] PDEVICE_OBJECT DeviceObject
);

参数

[in] DeviceObject

指向堆栈中要为其返回下一个较低级别设备对象的设备对象的指针。

返回值

IoGetLowerDeviceObject 返回指向驱动程序堆栈上下一个较低级别的设备对象的指针。

注解

给定指向文件系统或设备驱动程序堆栈中的设备对象的指针, IoGetLowerDeviceObject 返回指向堆栈上下一个较低级别的设备对象的指针。

IoGetLowerDeviceObject 在以下情况下返回 NULL:

  • 不加载下一个较低级别的驱动程序。

  • 当前正在卸载、删除或删除下一个较低级别的驱动程序。

  • DeviceObject 指向的设备对象是驱动程序堆栈中最低的设备对象。

文件系统筛选器驱动程序通常使用 IoGetLowerDeviceObject 来确定它是否已附加到链接到给定文件系统设备对象上方的筛选器驱动程序堆栈。 首先,筛选器调用 IoGetAttachedDeviceReference 以获取指向堆栈中最顶层设备对象的指针。 然后,它重复调用 IoGetLowerDeviceObject 来遍历驱动程序堆栈,检查每个设备对象以查看该对象是否属于筛选器驱动程序。

IoGetLowerDeviceObject 递增下一个较低级别的设备对象的引用计数(如果有)。 因此,对不返回 NULL 的 IoGetLowerDeviceObject 的每个调用都必须与后续调用 ObDereferenceObject 匹配。

要求

要求
最低受支持的客户端 Windows 2000 SP4 更新汇总;Windowsxp
目标平台 通用
标头 ntifs.h (包括 Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

另请参阅

IoGetAttachedDevice

IoGetAttachedDeviceReference

ObDereferenceObject