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

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

Синтаксис

NTSTATUS FLTAPI FltGetBottomInstance(
  [in]  PFLT_VOLUME   Volume,
  [out] PFLT_INSTANCE *Instance
);

Параметры

[in] Volume

Непрозрачный указатель на том.

[out] Instance

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

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

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

Код возврата Описание
STATUS_NO_MORE_ENTRIES
Соответствующий экземпляр не найден. Это код предупреждения.

Комментарии

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

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

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

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

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть fltkernel.h (включая Fltkernel.h)
Библиотека FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

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

FltAttachVolume

FltAttachVolumeAtAltitude

FltCompareInstanceAltitudes

FltGetLowerInstance

FltGetTopInstance

FltGetUpperInstance

FltObjectDereference