Pausando um adaptador

O NDIS chama a função MiniportPause de um driver de miniport para iniciar uma operação de pausa. O adaptador permanece no estado Pausando até que a operação de pausa seja concluída.

No estado Pausar, o driver de miniporto deve concluir as operações de recebimento pendentes. O driver também deve concluir quaisquer operações de envio pendentes e rejeitar quaisquer novas solicitações de envio.

Para concluir as operações de recebimento, o driver aguarda todas as chamadas para a função NdisMIndicateReceiveNetBufferLists retornar e o NDIS deve retornar todas as estruturas de NET_BUFFER_LIST pendentes para a função MiniportReturnNetBufferLists do driver de miniport.

Para concluir operações de envio pendentes, o driver de miniporte deve chamar a função NdisMSendNetBufferListsComplete para todas as estruturas de NET_BUFFER_LIST pendentes. O driver deve rejeitar todas as novas solicitações de envio feitas para sua função MiniportSendNetBufferLists imediatamente.

Depois que um driver de miniporto concluir todas as operações pendentes de envio e recebimento, o driver deverá concluir a solicitação de pausa de forma síncrona ou assíncrona. Se a operação de pausa for concluída de forma assíncrona, o driver chamará NdisMPauseComplete para concluir a solicitação de pausa. Depois de concluir a solicitação de pausa, o driver de miniporto está no estado Pausado.

O NDIS não inicia outras operações de Plug and Play, como operações de interrupção, inicialização, alteração de energia ou reinicialização, enquanto o driver de miniporto está no estado Pausando. O NDIS pode iniciar essas operações de Plug and Play depois que um driver de miniporto estiver no estado Pausado.