Функция 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 (включая Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

См. также раздел

IoGetAttachedDevice

IoGetAttachedDeviceReference

ObDereferenceObject