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.
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.