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

Подпрограмма FltGetContextsEx извлекает контексты драйвера минифильтра для объектов, связанных с текущей операцией.

Синтаксис

NTSTATUS FLTAPI FltGetContextsEx(
  [in]  PCFLT_RELATED_OBJECTS    FltObjects,
  [in]  FLT_CONTEXT_TYPE         DesiredContexts,
  [in]  SIZE_T                   ContextsSize,
  [out] PFLT_RELATED_CONTEXTS_EX Contexts
);

Параметры

[in] FltObjects

Указатель на структуру FLT_RELATED_OBJECTS , содержащую непрозрачные указатели для объектов, связанных с текущей операцией. Дополнительные сведения см. в разделе "Примечания".

[in] DesiredContexts

Определяет типы контекстов для извлечения. Этот параметр может быть битовой ИЛИ следующих значений.

Константа Значение
FLT_VOLUME_CONTEXT 0x0001
FLT_INSTANCE_CONTEXT 0x0002
FLT_FILE_CONTEXT 0x0004
FLT_STREAM_CONTEXT 0x0008
FLT_STREAMHANDLE_CONTEXT 0x0010
FLT_TRANSACTION_CONTEXT 0x0020
FLT_SECTION_CONTEXT 020040
FLT_ALL_CONTEXTS Побитовое ИЛИ всех значений контекста

[in] ContextsSize

Размер (в байтах) структуры FLT_RELATED_CONTEXTS_EX , на которую указывает Контексты. Задайте для параметра sizeof(FLT_RELATED_CONTEXTS_EX).

[out] Contexts

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

  • Контексты, которые вызывающий объект не запрашивал.
  • Контексты, которые запрашивал вызывающий объект, но FltMgr не удалось найти.

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

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

Код Значение
STATUS_INVALID_PARAMETER Введено недопустимое значение контекста.

Комментарии

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

Драйвер минифильтра вызывает FltGetContextsEx для получения указателей на его контексты для объектов в FLT_RELATED_OBJECTS структуре. На STATUS_SUCCESS перед использованием минифильтр должен проверка, что контекст не равен нулю.

Следующие типы подпрограмм обратного вызова драйвера минифильтра получают указатель на структуру FLT_RELATED_OBJECTS в качестве входного параметра FltObjects :

FltGetContextsEx увеличивает количество ссылок для каждого контекста, возвращаемого в структуре FLT_RELATED_CONTEXTS_EX , на которую указывает параметр Contexts . Таким образом, для каждого успешного вызова FltGetContextsEx вызывающий объект должен:

  • Вызовите FltReleaseContextsEx для всей структуры, на которую указывает параметр Contexts .
  • Вызовите Метод FltReleaseContext для каждого контекста, возвращаемого в структуре, и задайте для каждого поля контекста, возвращаемого в структуре, равным нулю.

Требования

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

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

FLT_RELATED_CONTEXTS_EX

FLT_RELATED_OBJECTS

FltRegisterFilter

FltReleaseContext

FltReleaseContextsEx

PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK

PFLT_INSTANCE_SETUP_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK

PFLT_POST_OPERATION_CALLBACK

PFLT_PRE_OPERATION_CALLBACK