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

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

Синтаксис

NTSTATUS FLTAPI FltGetUpperInstance(
  [in]  PFLT_INSTANCE CurrentInstance,
  [out] PFLT_INSTANCE *UpperInstance
);

Параметры

[in] CurrentInstance

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

[out] UpperInstance

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

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

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

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

Комментарии

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

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

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

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

Требования

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

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

FltAttachVolume

FltAttachVolumeAtAltitude

FltCompareInstanceAltitudes

FltGetBottomInstance

FltGetLowerInstance

FltGetTopInstance

FltObjectDereference