Suporte a contextos de minifiltro
O gerenciador de filtros fornece suporte que permite que drivers de minifiltro associem contextos a objetos para preservar o estado entre operações de E/S. Os objetos que podem ter contextos incluem arquivos, volumes, instâncias, fluxos, identificadores de fluxo e transações. Consulte Sobre contextos de minifiltro para obter detalhes de implementação de minifiltro.
Os sistemas de arquivos de terceiros devem usar a estrutura de FSRTL_ADVANCED_FCB_HEADER (em vez da estrutura FSRTL_COMMON_FCB_HEADER ) para funcionar corretamente com contextos de identificador de fluxo e fluxo.
Os contextos podem ser alocados do pool paginado ou nãopagado, exceto para contextos de volume, que devem ser alocados do pool nãopagado.
Os contextos são liberados automaticamente quando todas as referências pendentes são lançadas. Se o driver de minifiltro definir uma rotina de retorno de chamada de limpeza de contexto, o gerenciador de filtros chamará a rotina antes que o contexto seja liberado.
O gerenciador de filtros cuida da exclusão de contextos quando o objeto associado é excluído, quando uma instância é desanexada e quando o driver de minifiltro é descarregado.
Não há suporte para contextos para arquivos de paginação ou durante as seguintes operações:
Processamento de pré-operação para solicitações de criação
Processamento de postoperation para solicitações de fechamento
Processamento de solicitações de IRP_MJ_NETWORK_QUERY_OPEN
Consulte o exemplo ctx para obter um exemplo de um driver de minifiltro que usa contextos.
Rotinas de suporte do Gerenciador de Filtros para gerenciamento de contexto
O gerenciador de filtros fornece muitas rotinas de suporte de contexto de suporte para minifiltros:
Criando e registrando contextos:
Definindo contextos:
Contextos de consulta:
Obtendo e referenciando contextos:
Liberando e excluindo contextos: