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

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

Синтаксис

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

Параметры

[in] Instance

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

[in] FileObject

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

[out] Context

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

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

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

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

Комментарии

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

FltGetSectionContext извлекает контекст раздела, созданный для потока файлов указанным экземпляром драйвера минифильтра. Контекст раздела создается путем вызова Метода FltCreateSectionForDataScan.

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

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

Минифильтры не должны явно удалять контекст раздела, передаваемый в FltCreateSectionForDataScan. Контекст раздела освобождается и удаляется из потока путем вызова FltCloseSectionForDataScan в этом случае.

Требования

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

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

FltAllocateContext

FltCloseSectionForDataScan

FltCreateSectionForDataScan

FltReleaseContext