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 |