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

Подпрограмма FltGetStreamContext извлекает контекст, заданный для файлового потока заданным экземпляром драйвера минифильтра.

Синтаксис

NTSTATUS FLTAPI FltGetStreamContext(
  [in]  PFLT_INSTANCE Instance,
  [in]  PFILE_OBJECT  FileObject,
  [out] PFLT_CONTEXT  *Context
);

Параметры

[in] Instance

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

[in] FileObject

Указатель на объект файла для потока.

[out] Context

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

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

Функция FltGetStreamContext возвращает STATUS_SUCCESS при успешном возвращении запрошенного контекста. В противном случае возвращается соответствующее значение NTSTATUS, например одно из следующих значений:

Код возврата Описание
STATUS_NOT_FOUND В данный момент соответствующий контекст в этом файле не найден, поэтому FltMgr устанавливает для параметра Context значение NULL_CONTEXT. Это код ошибки.
STATUS_NOT_SUPPORTED Файловая система не поддерживает контексты каждого потока для этого потока файлов. Это код ошибки.

Комментарии

Дополнительные сведения о контекстах см. в разделе О контекстах минифильтра.

FltGetStreamContext извлекает контекст, заданный для файлового потока заданным экземпляром драйвера минифильтра.

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

Чтобы задать контекст для потока файлов, вызовите FltSetStreamContext.

Чтобы выделить новый контекст, вызовите FltAllocateContext.

Чтобы удалить контекст потока, вызовите Метод FltDeleteStreamContext или FltDeleteContext.

Требования

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

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

FltAllocateContext

FltDeleteContext

FltDeleteStreamContext

FltReleaseContext

FltSetStreamContext