Estados do adaptador de um driver de miniporto
Para cada adaptador de miniporte gerenciado, um driver de miniporto NDIS deve dar suporte ao seguinte conjunto de estados operacionais:
Interrompido
Shutdown
Inicializando
Em Pausa
Reinicialização
Executando
Pausando
A figura a seguir mostra as inter-relações entre esses estados.
Nota A operação de redefinição não afeta os estados operacionais do adaptador de miniport. Além disso, o estado do adaptador pode ser alterado enquanto uma operação de redefinição está em andamento. Por exemplo, o NDIS pode chamar o manipulador de pausa de um driver quando houver uma operação de redefinição em andamento. Nesse caso, o driver pode concluir a redefinição ou a operação de pausa em qualquer ordem, seguindo os requisitos normais para cada operação. Para uma operação de redefinição, o driver pode falhar ao transmitir pacotes de solicitação ou pode mantê-los na fila e concluí-los mais tarde. No entanto, você deve observar que um driver excessivamente não pode concluir uma operação de pausa enquanto seus pacotes de transmissão estão pendentes.
O seguinte define os estados do adaptador:
Interrompido é o estado inicial de todos os adaptadores de miniport. Quando um adaptador de miniporto está no estado Parado e o NDIS chama a função MiniportInitializeEx do driver para inicializar o adaptador de miniporte, o adaptador de miniporto entra no estado Inicializando. Se MiniportInitializeEx falhar, o adaptador de miniporto retornará ao estado Parado. Quando o adaptador de miniporto está no estado Pausado e o NDIS chama a função MiniportHaltEx , o adaptador de miniporto retorna ao estado Parado.
Um adaptador de miniporte no estado Desligamento não pode ser usado até que o sistema seja desligado e reiniciado. Quando o adaptador de miniporto está no estado Pausado, Reiniciando, Executando ou Pausando e o NDIS chama a função MiniportShutdownEx do driver de miniporto , o adaptador de miniporte entra no estado Desligamento.
No estado Inicialização , um driver de miniporto conclui todas as operações necessárias para inicializar um adaptador de miniporte. Quando um adaptador de miniporto está no estado Parado e o NDIS chama a função MiniportInitializeEx do driver de miniport, o adaptador de miniporta entra no estado Inicializando. Se MiniportInitializeEx for bem-sucedido, o adaptador de miniporte entrará no estado Pausado. Se MiniportInitializeEx falhar, o adaptador de miniporto retornará ao estado Parado.
Quando um adaptador de miniporto está no estado Pausado , um driver de miniporte não indica dados de rede recebidos nem aceita solicitações de envio. Quando um adaptador de miniporto está no estado Pausar e a operação de pausa é concluída, o adaptador de miniporta entra no estado Pausado. Quando um adaptador de miniporto está no estado Inicializando e MiniportInitializeEx é bem-sucedido, o adaptador de miniporta entra no estado Pausado. Quando o NDIS chama a função MiniportRestart do driver de miniport, o adaptador de miniporto faz a transição do estado Pausado para o estado De reinicialização. Quando o NDIS chama a função MiniportHaltEx do driver de miniport, o adaptador de miniporto faz a transição do estado Pausado para o estado Parado.
No estado De reinicialização , um driver de miniporto conclui todas as operações necessárias para reiniciar as operações de envio e recebimento de um adaptador de miniporte. Quando um adaptador de miniporto está no estado Pausado e o NDIS chama a função MiniportRestart do driver, o adaptador de miniporta entra no estado De reinicialização. Se a reinicialização falhar, o adaptador de miniporto retornará ao estado Pausado. Se a reinicialização for bem-sucedida, o adaptador de miniporto entrará no estado Em execução.
No estado Em execução , um driver de miniporto executa o processamento normal de envio e recebimento para um adaptador de miniporte. Quando o adaptador de miniporto está no estado De reinicialização e o driver está pronto para executar operações de envio e recebimento, o adaptador de miniporte entra no estado Em execução.
No estado Pausar , um driver de miniporto conclui todas as operações necessárias para interromper as operações de envio e recebimento de um adaptador de miniporte. O driver deve aguardar que o NDIS retorne todas as indicações de recebimento pendentes. Quando um adaptador de miniporto está no estado Em execução e o NDIS chama a função MiniportPause do driver, o adaptador de miniporta entra no estado Pausando. Um driver de miniporte não pode falhar em uma operação de pausa. Quando a operação de pausa é concluída, o adaptador de miniporta entra no estado Pausado.