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.