Compartilhar via


Função FltGetContextsEx (fltkernel.h)

A rotina FltGetContextsEx recupera os contextos de um driver de minifiltro para os objetos relacionados à operação atual.

Sintaxe

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

Parâmetros

[in] FltObjects

Ponteiro para uma estrutura FLT_RELATED_OBJECTS que contém ponteiros opacos para os objetos relacionados à operação atual. Confira Comentários para obter mais informações.

[in] DesiredContexts

Identifica os tipos de contextos a serem recuperados. Esse parâmetro pode ser um OR bit a bit dos valores a seguir.

Constante Valor
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 OR bit a bit de todos os valores de contexto

[in] ContextsSize

O tamanho, em bytes, da estrutura FLT_RELATED_CONTEXTS_EX apontada por Contextos. Defina como sizeof(FLT_RELATED_CONTEXTS_EX).

[out] Contexts

Ponteiro para uma estrutura de FLT_RELATED_CONTEXTS alocada pelo chamador que recebe os contextos solicitados. Esse parâmetro é necessário e não pode ser definido como NULL. FltMgr define um membro da estrutura como zero para:

  • Contextos que o chamador não solicitou.
  • Contextos que o chamador solicitou, mas FltMgr não pôde localizar.

Retornar valor

FltGetContextsEx retorna STATUS_SUCCESS após a conclusão bem-sucedida. Caso contrário, ele retornará um código status, como um dos seguintes.

Código Significado
STATUS_INVALID_PARAMETER Um valor de contexto inválido foi input.

Comentários

Para obter mais informações sobre contextos, consulte Sobre contextos de minifiltro.

Um driver de minifiltro chama FltGetContextsEx para recuperar ponteiros para seus contextos para os objetos em uma estrutura FLT_RELATED_OBJECTS . Em STATUS_SUCCESS, o minifiltro precisará marcar que um contexto não é zero antes de usá-lo.

Os seguintes tipos de rotina de retorno de chamada de driver de minifiltro recebem um ponteiro para uma estrutura FLT_RELATED_OBJECTS como o parâmetro de entrada FltObjects :

FltGetContextsEx incrementa a contagem de referência em cada um dos contextos retornados na estrutura FLT_RELATED_CONTEXTS_EX para a qual o parâmetro Contexts aponta. Portanto, para cada chamada bem-sucedida para FltGetContextsEx, o chamador deve:

  • Chame FltReleaseContextsEx para toda a estrutura para a qual o parâmetro Contexts aponta.
  • Chame FltReleaseContext para cada um dos contextos retornados na estrutura e defina cada campo de contexto retornado na estrutura como zero.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8
Plataforma de Destino Universal
Cabeçalho fltkernel.h (inclua Fltkernel.h)
Biblioteca FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

Confira também

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