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 associação para 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 enfileirados ou solicitações associadas à 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 driver de miniporto 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 concluirá esses dados de rede de volta para o driver intermediário com uma status apropriada. O driver intermediário deve reenviar esses dados de rede novamente quando a redefinição for concluída.

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

  • Mantenha os dados de rede prontos para serem transmitidos até que ProtocolStatusEx ou ProtocolCoStatusEx receba 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 de NDIS_STATUS_RESET_END.

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

Depois que ProtocolStatusEx(ou ProtocolCoStatusEx) receber NDIS_STATUS_RESET_END, o driver intermediário poderá 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 .