Compartilhar via


Asynchronous Network I/O

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

Because of a latência inerente no algumas operações rede, muitas das funções UPPER-Edge fornecidas por um driver NIC e as funções lower-edge de um driver protocolo são projetadas para suporte operação assíncrona. Em vez de desperdício ciclos CPU aguardando em uma executar um loop para uma tarefa para concluir ou um evento hardware para sinalizar, identificador drivers rede a maioria das operações de forma assíncrona.

Usar uma função de conclusão suporta assíncrono rede E/S. De exemplo, quando um chamadas driver NDIS protocolo para enviar um pacote, ela resulta em um chamar para do o driver NIC MiniportSend função. O driver NIC pode tentar completo essa solicitação imediatamente e retornar um apropriado valor status como um resultado. Para operação síncrona, as respostas possíveis são NDIS_STATUS_SUCCESS para indicar bem-sucedido conclusão do envio, NDIS_STATUS_RESOURCES e NDIS_STATUS_FAILURE para indicar falha.

Uma operação de envio pode levar algum tempo para completo enquanto o driver NIC ou filas de pacote NDIS e aguarda o NIC para indicar o resultado da operação de envio. O driver NIC MiniportSend função pode identificador uma operação de envio de forma assíncrona, retornando um valor status de NDIS_STATUS_PENDING. Quando o driver NIC concluir a operação de envio, ele chama o NdisMSendComplete função de conclusão, passar um ponteiro para o descritor pacote que foi enviada. Este informações são passadas para o driver protocolo, sinalização de conclusão.

Se uma operação driver requer estendido tempo para completo, o driver geralmente operação assíncrona oferece suporte a com uma função de conclusão semelhante. Esses nomes função têm o seguinte formato: NdisMXXXConcluir. Juntamente com a enviar e receber funções, funções de conclusão são disponível para configuração e consultar uma configuração rede, redefinindo hardware, indicando status, que indica dados recebidos e transferindo dados recebidos.

See Also

Reference

MiniportSend
NdisMEthIndicateReceiveComplete
NdisMIndicateStatusComplete
NdisMQueryInformationComplete
NdisMResetComplete
NdisMSendComplete
NdisMSetInformationComplete
NdisMTransferDataComplete
NdisMTrIndicateReceiveComplete
NdisMWanIndicateReceiveComplete
NdisMWanSendComplete

Concepts

Network Driver Programming Considerations