Compartilhar via


Operações intermediárias de redefinição de driver

Um driver intermediário deve estar preparado para lidar com a situação em que seus envios pendentes em uma conexão com um driver subjacente podem ser descartados porque a NIC subjacente é redefinida.

Um driver subjacente normalmente redefine uma NIC porque o NDIS chama a função MiniportResetEx do driver de miniport quando o NDIS atinge o tempo limite de envios em fila ou solicitações destinadas à NIC. Se uma NIC subjacente for redefinida, o NDIS chamará a função ProtocolStatusEx(ou ProtocolCoStatusEx) de cada protocolo associado e driver intermediário com um status de NDIS_STATUS_RESET_START. Quando o miniport driver conclui a redefinição, o NDIS chama novamente ProtocolStatusEx (ou ProtocolCoStatusEx) com um status de NDIS_STATUS_RESET_END.

Quando uma NIC é redefinida, se um driver intermediário associado tiver dados de rede de transmissão pendentes para essa NIC, o NDIS retornará esses dados de rede ao driver intermediário com um status apropriado. O driver intermediário deve reenviar esses dados de rede novamente quando a redefinição for concluída.

Quando um driver intermediário recebe um status de NDIS_STATUS_RESET_START, ele deve:

  • Mantenha os dados de rede prontos para serem transmitidos até ProtocolStatusEx ou ProtocolCoStatusEx receber uma notificação de NDIS_STATUS_RESET_END.

  • Mantenha os dados de rede recebidos prontos para serem indicados até o próximo driver superior até que ProtocolStatusEx(ou ProtocolCoStatusEx) receba uma notificação NDIS_STATUS_RESET_END.

  • Limpe todo estado interno que ele mantém para operações que estejam em andamento e status da NIC.

Depois que ProtocolStatusEx(ou ProtocolCoStatusEx) recebe NDIS_STATUS_RESET_END, o driver intermediário pode retomar o envio de dados de rede, fazendo solicitações e fazendo indicações para drivers de nível superior.

Um driver intermediário não fornece uma função MiniportResetEx .