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

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

Синтаксис

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

Параметры

[in] Volume

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

[out] Instance

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

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

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

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

Комментарии

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

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

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

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

Требования

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

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

FltAttachVolume

FltAttachVolumeAtAltitude

FltCompareInstanceAltitudes

FltGetBottomInstance

FltGetLowerInstance

FltGetUpperInstance

FltObjectDereference