Функция 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 (include 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