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


Функция 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 добавляет ссылку rundown на указатель непрозрачного экземпляра, возвращенный в параметре UpperInstance. Если этот указатель больше не нужен, вызывающий объект должен освободить его, вызвав FltObjectDereference. Таким образом, каждый успешный вызов FltGetUpperInstance должен соответствовать последующему вызову FltObjectDereference.

Требования

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

См. также

FltAttachVolume

FltAttachVolumeAtAltitude

FltCompareInstanceAltitudes

FltGetBottomInstance

FltGetLowerInstance

FltGetTopInstance

FltObjectDereference