Partilhar via


Estados de ligação de um driver de protocolo

Um driver de protocolo NDIS deve suportar os seguintes estados operacionais para cada ligação gerenciada pelo driver:

  • Desvinculado

  • Abertura

  • Correr

  • Encerramento

  • Pausa

  • Em pausa

  • Reiniciando

As figuras seguintes mostram a relação entre estes Estados.

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

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

O estado Unbound é o estado inicial de uma ligação. Nesse estado, o driver de protocolo aguarda que o NDIS chame a função ProtocolBindAdapterEx . Depois de o NDIS chamar ProtocolBindAdapterEx, a associação entra no estado de abertura. Depois de uma operação de desvinculação ser concluída, uma ligação retornará ao estado Desvinculado a partir do estado de Encerramento.

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 ligação entra no estado de abertura. Se o driver de protocolo não conseguir se vincular ao adaptador de miniporta, a associação retornará ao estado Unbound. Se o driver efetuar com sucesso a ligação ao adaptador de miniporta, a ligação entrará no estado Pausado.

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

No estado de fechamento , o driver de protocolo fecha a ligação para o adaptador de miniporta e, em seguida, libera os recursos para a ligação. Depois que o NDIS chama a função ProtocolUnbindAdapterEx do driver de protocolo, a associação entra no estado de fechamento. Depois que o driver de protocolo conclui as operações de desvinculação, a associação entra no estado Não vinculado.

No estado Pausando, um driver de protocolo conclui todas as operações necessárias para interromper as transmissões e receções de uma ligaçã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 de pausa. O driver de protocolo deve aguardar que todas as suas solicitações de envio pendentes sejam concluídas. Um driver de protocolo não pode falhar uma operação de pausa. Após a conclusão da operação de pausa, a ligação entra no estado Pausado.

No estado Pausado , o driver de protocolo não executa operações de envio ou recebimento para uma ligação. Quando uma associação está no estado de pausa e uma operação de pausa é concluída, a associação entra no estado de pausa completa. Quando uma associação está no estado 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 reinício PnP para a ligação, a associação entrará no estado de reinício. Se o NDIS chamar a função ProtocolUnbindAdapterEx do driver, a associação entrará no estado de Encerramento.

No estado Reiniciando , um driver de protocolo conclui todas as operações necessárias para reiniciar operações de envio e recebimento para uma ligaçã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 da Pilha de Controladores

Drivers de Protocolo NDIS