Поделиться через


Функция 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 не удалось найти.

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

Никакой.

Замечания

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

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

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

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

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

Требования

Требование Ценность
целевая платформа Всеобщий
заголовка fltkernel.h (include 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