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

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

Синтаксис

VOID FLTAPI FltGetContexts(
  PCFLT_RELATED_OBJECTS FltObjects,
  FLT_CONTEXT_TYPE      DesiredContexts,
  PFLT_RELATED_CONTEXTS Contexts
);

Параметры

FltObjects

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

DesiredContexts

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

Константа Значение
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 (начиная с Windows 8) 020040
FLT_ALL_CONTEXTS Побитовое ИЛИ всех значений контекста

Contexts

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

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

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

Нет.

Remarks

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

Драйвер минифильтра вызывает FltGetContexts для получения указателей на контексты драйвера минифильтра для объектов в FLT_RELATED_OBJECTS структуре.

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

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

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

Требования

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

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

FLT_RELATED_CONTEXTS

FLT_RELATED_OBJECTS

FltGetContextsEx

FltRegisterFilter

FltReleaseContext

FltReleaseContexts

PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK

PFLT_INSTANCE_SETUP_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK

PFLT_POST_OPERATION_CALLBACK

PFLT_PRE_OPERATION_CALLBACK