Compartilhar via


Anexando um módulo de filtro

Para iniciar o processo de inserção de um módulo de filtro em uma pilha de driver, o NDIS chama a função FilterAttach de um driver de filtro. No início da execução na função FilterAttach , o módulo de filtro entra no estado Anexando . Para obter mais informações sobre como anexar um módulo de filtro a uma pilha de driver, consulte Iniciando uma pilha de driver.

Um driver de filtro usa o identificador , que o NDIS passa no parâmetro NdisFilterHandle de FilterAttach em todas as chamadas de função NdisXxx futuras que se referem a este módulo de filtro. Essas funções incluem status indicações, enviar solicitações, receber indicações e solicitações OID.

Enquanto um módulo de filtro está no estado Anexando , o driver:

  • Cria uma área de contexto para o módulo de filtro e aloca pools de buffers e outros recursos específicos do módulo de filtro. Para obter mais informações sobre pools de buffers, consulte Gerenciamento de buffer de driver de filtro.

  • Chama a função NdisFSetAttributes usando o valor NdisFilterHandle que o NDIS passou para FilterAttach. O parâmetro FilterModuleContext de NdisFSetAttributes especifica a área de contexto do driver de filtro para este módulo de filtro. O NDIS passa essa área de contexto para as funções FilterXxx do driver de filtro.

  • Opcionalmente, lê parâmetros de configuração para este módulo de filtro do registro. Para obter mais informações, consulte Acessando informações de configuração para um driver de filtro.

  • Se as operações anteriores forem concluídas com êxito, o módulo de filtro estará no estado Pausado .

  • Se as operações anteriores falharem, o driver de filtro deverá liberar todos os recursos alocados na função FilterAttach e retornar o módulo de filtro para o estado Desanexado .

  • Retorna NDIS_STATUS_SUCCESS ou um código de falha apropriado. Se o driver retornar um código de falha, o NDIS encerrará a pilha de driver.

Nota O registro pode conter um sinalizador , que especifica que um módulo de filtro é opcional. Se um módulo de filtro opcional não for anexado, o NDIS não encerrará o restante da pilha de driver.

Um driver de filtro não pode fazer solicitações de envio, indicar dados recebidos, fazer solicitações OID ou fazer status indicações do estado Anexação. Há suporte para operações de envio e recebimento nos estados Em execução e pausa. As solicitações de OID e as indicações de status têm suporte nos estados Pausado, Reiniciando, Executando e Pausando.

O NDIS chama a função FilterDetach para desanexar um módulo de filtro anexado ao NDIS com FilterAttach. Para obter mais informações, consulte Desanexando um módulo de filtro.