Reiniciando uma associação
Para reiniciar uma associação pausada, o NDIS envia ao driver de protocolo uma notificação de evento de reinicialização de Plug and Play de rede (PnP). Depois que o driver de protocolo recebe a notificação de reinicialização, a associação afetada entra no estado De reinicialização.
Para enviar uma notificação de reinicialização, o NDIS chama a função ProtocolNetPnPEvent de um driver de protocolo. A estrutura NET_PNP_EVENT_NOTIFICATION que o NDIS passa para ProtocolNetPnPEvent especifica NetEventRestart no membro NetEvent e o membro Buffer contém um ponteiro para a estrutura NDIS_PROTOCOL_RESTART_PARAMETERS . O NDIS fornece um ponteiro para uma estrutura NDIS_RESTART_ATTRIBUTES no membro RestartAttributes da estrutura NDIS_PROTOCOL_RESTART_PARAMETERS.
Nota Enquanto a associação estava em pausa, o NDIS poderia ter reconfigurado a pilha de driver. A nova configuração de pilha pode dar suporte a um conjunto diferente de recursos para o adaptador subjacente. Esses novos recursos podem afetar a forma como o driver de protocolo se comunica em uma associação.
O driver de protocolo deve usar as informações na estrutura NDIS_PROTOCOL_RESTART_PARAMETERS para evitar solicitações OID desnecessárias.
No estado Reiniciando, o driver de protocolo pode:
Use solicitações OID para consultar a pilha de driver. Por exemplo, o driver pode descobrir sobre o suporte para o dimensionamento lateral de recebimento usando OID_GEN_RECEIVE_SCALE_CAPABILITIES.
Realocar pools de NET_BUFFER e NET_BUFFER_LIST , se necessário.
Enumerar a lista dos módulos de filtro subjacentes.
Use solicitações de OID para revelar novos recursos do adaptador.
Depois que o driver estiver pronto para retomar as operações de envio e recebimento para a associação, a associação entrará no estado Em execução.