Функция 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 |