Dar suporte a contextos de minifiltro

O gerenciador de filtros fornece suporte que permite que os drivers de minifiltro associem contextos a objetos para preservar o estado em operações de E/S. Os objetos que podem ter contextos incluem arquivos, volumes, instâncias, fluxos, identificadores de fluxo e transações. Consulte os contextos de minifiltro para obter detalhes da implementação do minifiltro.

Sistemas de arquivos de terceiros devem usar a estrutura FSRTL_ADVANCED_FCB_HEADER (em vez da estrutura FSRTL_COMMON_FCB_HEADER ) para funcionar corretamente com contextos de fluxo e identificador de fluxo.

Os contextos podem ser alocados do pool de páginas ou nãopagados, 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 criar solicitações

  • Processamento de operação de postos para solicitações próximas

  • Processamento de solicitações 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 ao contexto de suporte para minifiltros: