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


Функция FltGetLowerInstance (fltkernel.h)

Программа FltGetLowerInstance возвращает указатель непрозрачного экземпляра для следующего экземпляра драйвера minifilter ниже, если есть один, который подключен ниже заданного экземпляра драйвера минифильтра на томе.

Синтаксис

NTSTATUS FLTAPI FltGetLowerInstance(
  [in]  PFLT_INSTANCE CurrentInstance,
  [out] PFLT_INSTANCE *LowerInstance
);

Параметры

[in] CurrentInstance

Указатель непрозрачного экземпляра для экземпляра драйвера минифильтра, для которого запрашивается более низкий экземпляр драйвера минифильтра.

[out] LowerInstance

Указатель на переменную, выделенную вызывающим объектом, которая получает указатель на непрозрачный указатель экземпляра драйвера минифильтра для следующего экземпляра драйвера мини-фильтра. Этот параметр является обязательным и не может быть null.

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

FltGetLowerInstance возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS, например следующее:

Возвращаемый код Описание
STATUS_NO_MORE_ENTRIES
Не найдено ни более низкого экземпляра драйвера минифильтра. Это код предупреждения.

Замечания

Один экземпляр, как говорят, ниже другой, если он присоединен на более низкой высоте на том же томе. Термин "высота" относится к позиции, которую занимает экземпляр (или должен занимать) в стеке экземпляра драйвера минифильтратора для тома. Чем выше высота, тем дальше экземпляр находится от базовой файловой системы в стеке. Только один экземпляр можно подключить на заданной высоте на заданном томе.

Высота задается строкой высоты , которая является подсчитываемой строкой Юникода, состоящей из одной или нескольких десятичных цифр от 0 до 9, и может включать одну десятичную точку. Например, "100.123456" и "03333" являются допустимыми строками высоты.

Строка "03333" представляет большую высоту, чем "100,123456". (Начальные и конечные нули игнорируются.) Другими словами, экземпляр, высота которого составляет "03333", находится дальше от базовой файловой системы, чем экземпляр, высота которого составляет "100,123456". Однако это сравнение имеет смысл только при присоединении обоих экземпляров к одному тому.

FltGetLowerInstance добавляет ссылку rundown на указатель непрозрачного экземпляра, возвращаемый в параметре LowerInstance. Если этот указатель больше не нужен, вызывающий объект должен освободить его, вызвав FltObjectDereference. Таким образом, каждый успешный вызов FltGetLowerInstance должен соответствовать последующему вызову FltObjectDereference.

Требования

Требование Ценность
целевая платформа Всеобщий
заголовка fltkernel.h (include Fltkernel.h)
библиотеки FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

См. также

FltAttachVolume

FltAttachVolumeAtAltitude

FltCompareInstanceAltitudes

FltGetBottomInstance

FltGetTopInstance

FltGetUpperInstance

FltObjectDereference