Функция FltGetTopInstance (fltkernel.h)
Подпрограмма FltGetTopInst ance возвращает непрозрачный указатель экземпляра для экземпляра мини-фильтра драйвера, присоединенного в верхней части стека экземпляра экземпляра для заданного тома.
Синтаксис
NTSTATUS FLTAPI FltGetTopInstance(
[in] PFLT_VOLUME Volume,
[out] PFLT_INSTANCE *Instance
);
Параметры
[in] Volume
Непрозрачный указатель на том.
[out] Instance
Указатель на выделенную вызывающим переменную, которая получает указатель непрозрачного экземпляра для нижнего экземпляра для этого тома. Этот параметр является обязательным и не может быть null.
Возвращаемое значение
FltGetTopInstance возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS, например следующее:
Возвращаемый код | Описание |
---|---|
|
Не найден соответствующий экземпляр. Это код предупреждения. |
Замечания
Как сообщается, экземпляр находится в верхней стека экземпляров драйвера мини-фильтра, если высота его выше, чем у всех остальных экземпляров, подключенных к тому же тому. Термин "высота" относится к позиции, которую экземпляр занимает в стеке экземпляра драйвера мини-фильтра для тома. Чем выше высота, тем дальше экземпляр находится от базовой файловой системы в стеке. Только один экземпляр можно подключить на заданной высоте на заданном томе.
Высота задается строкой высоты , которая является подсчитываемой строкой Юникода, состоящей из одной или нескольких десятичных цифр от 0 до 9, и может включать одну десятичную точку. Например, "100.123456" и "03333" являются допустимыми строками высоты.
Строка "03333" представляет большую высоту, чем "100,123456". (Начальные и конечные нули игнорируются.) Другими словами, экземпляр, высота которого составляет "03333", находится дальше от базовой файловой системы, чем экземпляр, высота которого составляет "100,123456". Однако это сравнение имеет смысл только при присоединении обоих экземпляров к одному тому.
FltGetTopInstance добавляет ссылку rundown на указатель непрозрачного экземпляра, возвращенный в параметре экземпляра. Если этот указатель больше не нужен, вызывающий объект должен освободить его, вызвав FltObjectDereference. Таким образом, каждый успешный вызов FltGetTopInstance должен соответствовать последующему вызову FltObjectDereference.
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
заголовка | fltkernel.h (include Fltkernel.h) |
библиотеки | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |