Compartilhar via


Função FltDeleteContext (fltkernel.h)

FltDeleteContext marca um contexto especificado para exclusão.

Sintaxe

VOID FLTAPI FltDeleteContext(
  [in] PFLT_CONTEXT Context
);

Parâmetros

[in] Context

Um ponteiro para o contexto a ser excluído. Esse parâmetro é necessário e não pode ser NULL.

Valor retornado

Nenhum.

Comentários

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

Como os contextos são contados por referência, geralmente não é necessário que um driver de minifiltro chame uma rotina, como FltDeleteContext, para excluir explicitamente um contexto.

FltDeleteContext marca um contexto para exclusão. O contexto geralmente é liberado assim que a referência atual sobre ele é lançada, a menos que haja uma referência pendente nele (por exemplo, porque o contexto ainda está sendo usado por outro thread).

Você deve considerar os seguintes itens ao usar FltDeleteContext:

  • Quando um driver de minifiltro chama FltDeleteContext, o driver de minifiltro já deve ter uma referência ao contexto. No entanto, quando o driver de minifiltro chama FltDeleteStreamHandleContext, FltDeleteStreamContext, FltDeleteInstanceContext e assim por diante, o driver de minifiltro não requer uma referência ao contexto. Depois que o driver de minifiltro chamar FltDeleteContext, essa referência ao contexto ainda será válida. O driver de minifiltro deve chamar a rotina FltReleaseContext para liberar a referência ao contexto.

  • FltDeleteContext remove o contexto das estruturas internas do gerenciador de filtros. Em seguida, outras chamadas para funções que obtêm contextos, como FltGetContexts e FltGetInstanceContext, não podem localizar esse contexto. No entanto, a memória de contexto não será liberada até que a contagem de referência para o contexto vá para 0.

Os contextos também podem ser excluídos chamando a rotina de contexto de exclusão apropriada da tabela a seguir.

Tipo de contexto Rotina de Delete-Context
FLT_FILE_CONTEXT FltDeleteFileContext (somente Windows Vista e posterior.)
FLT_INSTANCE_CONTEXT FltDeleteInstanceContext
FLT_SECTION_CONTEXT FltCloseSectionForDataScan (somente Windows 8 e posterior.)
FLT_STREAM_CONTEXT FltDeleteStreamContext
FLT_STREAMHANDLE_CONTEXT FltDeleteStreamHandleContext
FLT_TRANSACTION_CONTEXT FltDeleteTransactionContext (somente Windows Vista e posterior.)
FLT_VOLUME_CONTEXT FltDeleteVolumeContext

Para alocar um novo contexto, chame FltAllocateContext.

Para incrementar a contagem de referência em um contexto, chame FltReferenceContext.

Para diminuir a contagem de referência em um contexto, chame FltReleaseContext.

Um contexto de seção, FLT_SECTION_CONTEXT tipo, não deve ser excluído usando FltDeleteContext. Em vez disso, use FltReleaseContext para desalocar um contexto de seção.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho fltkernel.h (inclua Fltkernel.h)
Biblioteca FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

Confira também

FltAllocateContext

FltCloseSectionForDataScan

FltDeleteFileContext

FltDeleteInstanceContext

FltDeleteStreamContext

FltDeleteStreamHandleContext

FltDeleteTransactionContext

FltDeleteVolumeContext

FltReferenceContext

FltReleaseContext