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 de retorno
Nenhum.
Observações
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 é 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, FltDeleteInstanceContexte assim por diante, o driver de minifiltro não requer uma referência ao contexto. Depois que o driver de minifiltro chama FltDeleteContext, essa referência ao contexto ainda é 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.
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 |
---|---|
da Plataforma de Destino | Universal |
cabeçalho | fltkernel.h (inclua Fltkernel.h) |
biblioteca | FltMgr.lib |
de DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |