Compartilhar via


Filtrar estados e operações do módulo

Um driver de filtro deve dar suporte aos seguintes estados operacionais para cada módulo de filtro (instância de um driver de filtro) que o driver gerencia:

Desanexado
O estado Desanexado é o estado inicial de um módulo de filtro. Quando um módulo de filtro está nesse estado, o NDIS pode chamar a função FilterAttach do driver de filtro para anexar o módulo de filtro à pilha de driver.

anexação
No estado Anexação , um driver de filtro se prepara para anexar o módulo de filtro à pilha de driver.

Pausado
No estado Pausado , o driver de filtro não executa operações de envio ou recebimento.

Reiniciar
No estado De reinicialização , um driver de filtro conclui todas as operações necessárias para reiniciar as operações de envio e recebimento de um módulo de filtro.

Executando
No estado Em execução , um driver de filtro executa o processamento normal de envio e recebimento para um módulo de filtro.

Pausando
No estado Pausar , um driver de filtro conclui todas as operações necessárias para interromper as operações de envio e recebimento de um módulo de filtro.

Na tabela a seguir, os títulos são os estados do módulo de filtro. Os principais eventos são listados na primeira coluna. O restante das entradas na tabela especifica o próximo estado que o módulo de filtro insere depois que um evento ocorre dentro de um estado. As entradas em branco representam combinações de evento/estado inválidas.

Evento/Estado Desanexado anexação Em Pausa Reinicialização Executando Pausando

Anexação de filtro

anexação

Anexar está concluído

Em Pausa

Desanexar filtro

Desanexado

Reinicialização do filtro

Reinicialização

A reinicialização foi concluída

Executando

Pausa de filtro

Pausando

A pausa foi concluída

Em Pausa

Falha na anexação

Desanexado

Falha na reinicialização

Em Pausa

Enviar e Receber

Executando

Pausando

Solicitações de OID

Em Pausa

Reinicialização

Executando

Pausando

Os eventos do driver de filtro primário são definidos da seguinte maneira:

Anexação de filtro
O NDIS chamou a função FilterAttach do driver para anexar um módulo de filtro a uma pilha de driver. Para obter mais informações sobre como anexar um módulo de filtro, consulte Anexando um módulo de filtro.

Anexar está concluído
Quando um módulo de filtro está no estado Anexação e o driver de filtro conclui a inicialização de todos os recursos que o módulo de filtro requer, o módulo de filtro entra no estado Pausado .

Desanexar filtro
O NDIS chamou a função FilterDetach do driver para desanexar um módulo de filtro de uma pilha de driver. Para obter mais informações, consulte Desanexando um módulo de filtro.

Reinicialização do filtro
O NDIS chamou a função FilterRestart do driver para reiniciar um módulo de filtro pausado. Para obter mais informações, consulte Iniciando um módulo de filtro.

A reinicialização foi concluída
Quando o módulo de filtro está no estado De reinicialização e o driver está pronto para executar operações de envio e recebimento, o módulo de filtro entra no estado Em execução.

Pausa de filtro
O NDIS chamou a função FilterPause do driver para pausar um módulo de filtro. Para obter mais informações, consulte Pausando um módulo de filtro.

A pausa foi concluída
Depois que o driver concluir todas as operações necessárias para interromper as operações de envio e recebimento, a operação de pausa será concluída e o módulo de filtro estará no estado Pausado .

Falha na anexação
Se o NDIS chamar a função FilterAttach de um driver e a operação de anexação falhar (por exemplo, porque os recursos necessários não estão disponíveis), o módulo de filtro retornará ao estado Desanexado .

Falha na reinicialização
Se o NDIS chamar a função FilterRestart de um driver e a tentativa de reinicialização falhar, o módulo de filtro retornará ao estado Pausado .

Operações de envio e recebimento
Um driver pode lidar com operações de envio e recebimento nos estados Em execução e pausa. Para obter mais informações sobre operações de envio e recebimento, consulte Filtrar operações de envio e recebimento do módulo.

Solicitações de OID
Um driver pode lidar com solicitações OID nos estados Executando, Reiniciando, Pausado e Pausando . Para obter mais informações sobre solicitações OID, consulte Filtrar solicitações de OID do módulo.