Estados de associação de um driver de protocolo

Um driver de protocolo NDIS deve dar suporte aos seguintes estados operacionais para cada associação gerenciada pelo driver:

  • Não Associado

  • Abertura

  • Executando

  • Fechamento

  • Pausando

  • Em Pausa

  • Reinicialização

Os números a seguir mostram a relação entre esses estados.

Diagrama que mostra a relação entre estados de associação em um driver de protocolo NDIS.

O seguinte define os estados de associação de driver de protocolo:

O estado Não Associado é o estado inicial de uma associação. Nesse estado, o driver de protocolo aguarda que o NDIS chame a função ProtocolBindAdapterEx . Depois que o NDIS chama ProtocolBindAdapterEx, a associação entra no estado Abertura. Depois que uma operação de desassociação for concluída, uma associação retornará ao estado Não associado do estado Fechamento.

No estado Abertura , um driver de protocolo aloca recursos para a associação e tenta abrir o adaptador de miniporta. Depois que o NDIS chama a função ProtocolBindAdapterEx do driver, a associação entra no estado De abertura. Se o driver de protocolo não conseguir se associar ao adaptador de miniporta, a associação retornará ao estado Unbound. Se o driver for associado com êxito ao adaptador de miniporta, a associação entrará no estado Pausado.

No estado Em execução , um driver de protocolo executa o processamento normal de envio e recebimento para uma associação. Quando a associação está no estado De reinicialização e o driver está pronto para executar operações de envio e recebimento, a associação entra no estado Em execução.

No estado Fechamento , o driver de protocolo fecha a associação ao adaptador de miniporte e libera os recursos para a associação. Depois que o NDIS chama a função ProtocolUnbindAdapterEx do driver de protocolo, a associação entra no estado Fechamento. Depois que o driver de protocolo conclui as operações desassociadas, a associação entra no estado Não associado.

No estado Pausando , um driver de protocolo conclui todas as operações necessárias para interromper as operações de envio e recebimento de uma associação. Quando uma associação está no estado Em execução e o NDIS envia ao driver de protocolo uma notificação de pausa PnP, a associação entra no estado Pausando. O driver de protocolo deve aguardar a conclusão de toda a solicitação de envio pendente. Um driver de protocolo não pode falhar em uma operação de pausa. Após a conclusão da operação de pausa, a associação entra no estado Pausado.

No estado Pausado , o driver de protocolo não executa operações de envio ou recebimento para uma associação. Quando uma associação está no estado Pausando e uma operação de pausa é concluída, a associação entra no estado Pausado. Quando uma associação está no estado De abertura e uma operação aberta é concluída com êxito, a associação entra no estado Pausado. Se o NDIS enviar ao driver de protocolo uma notificação de reinicialização PnP para a associação, a associação entrará no estado De reinicialização. Se o NDIS chamar a função ProtocolUnbindAdapterEx do driver, a associação entrará no estado Fechamento.

No estado Reinicialização , um driver de protocolo conclui todas as operações necessárias para reiniciar as operações de envio e recebimento de uma associação. Quando uma associação está no estado Pausado e o NDIS envia ao driver de protocolo uma notificação de reinicialização PnP, a associação entra no estado Reiniciando. Se a reinicialização falhar, a associação retornará ao estado Pausado. Se a reinicialização for bem-sucedida, a associação entrará no estado Em execução.

Gerenciamento de pilha de driver

Drivers de protocolo NDIS