Поделиться через


Функция IoGetLowerDeviceObject (ntifs.h)

Подпрограмма IoGetLowerDeviceObject возвращает указатель на объект устройства следующего уровня в стеке драйверов.

Синтаксис

PDEVICE_OBJECT IoGetLowerDeviceObject(
  [in] PDEVICE_OBJECT DeviceObject
);

Параметры

[in] DeviceObject

Указатель на объект устройства в стеке, для которого возвращается объект устройства следующего уровня.

Возвращаемое значение

IoGetLowerDeviceObject возвращает указатель на объект устройства следующего уровня в стеке драйверов.

Замечания

Если указатель на объект устройства в файловой системе или стеке драйверов устройств, IoGetLowerDeviceObject возвращает указатель на объект устройства следующего уровня в стеке.

IoGetLowerDeviceObject возвращает значение NULL, если:

  • Драйвер следующего уровня не загружается.

  • В настоящее время драйвер следующего уровня выгружается, удаляется или удаляется.

  • Объект устройства, на который указывает DeviceObject, является самым низким объектом устройства в стеке драйверов.

Драйвер фильтра файловой системы обычно использует IoGetLowerDeviceObject для определения того, подключен ли он уже к стеку драйверов фильтра, который связан над заданным объектом устройства файловой системы. Сначала фильтр вызывает IoGetAttachedDeviceReference, чтобы получить указатель на самый верхний объект устройства в стеке. Затем он вызывает IoGetLowerDeviceObject многократно для обхода стека драйверов, проверяя каждый объект устройства, чтобы узнать, принадлежит ли объект драйверу фильтра.

IoGetLowerDeviceObject увеличивает число ссылок на объект устройства следующего уровня ниже, если есть один. Таким образом, каждый вызов IoGetLowerDeviceObject, который не возвращает ЗНАЧЕНИЕ NULL, должен соответствовать последующему вызову ObDereferenceObject.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Накопительный пакет обновления Windows 2000 с пакетом обновления 4 (SP4); Windows XP
целевая платформа Всеобщий
заголовка ntifs.h (include Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

См. также

IoGetAttachedDevice

IoGetAttachedDeviceReference

ObDereferenceObject