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 .