Caminhos de envio e recebimento aprimorados
Os caminhos de envio e recebimento do NDIS 6.0 foram aprimorados da seguinte maneira para melhorar o desempenho:
Todas as funções de envio e recebimento do driver NDIS 6.0 e posterior podem transferir uma lista vinculada de estruturas de NET_BUFFER_LIST e suas estruturas NET_BUFFER associadas a uma única chamada de função. Esse suporte para operações de envio e recebimento de vários pacotes verdadeiros reduz substancialmente o número de chamadas de função que os drivers devem fazer.
Ao chamar uma função de envio ou recebimento, um driver em execução em DISPATCH_LEVEL pode indicar seu IRQL para NDIS. Quando o NDIS faz chamadas posteriormente para outros drivers na pilha, não é necessário que esses drivers testem o IRQL ou defina-o como DISPATCH_LEVEL. Isso reduz a sobrecarga associada ao teste e à configuração do IRQL em seções de código críticas.
Quando os drivers passam pacotes para cima e para baixo na pilha do driver, eles podem solicitar NDIS para ajustar os deslocamentos de dados NET_BUFFER para acomodar informações de cabeçalho. Ao enviar um pacote, um driver pode expandir o espaço de dados usado para acomodar as informações de cabeçalho do driver. Ao indicar um pacote de recebimento, um driver pode diminuir o espaço de dados usado depois que o driver terminar de acessar suas informações de cabeçalho. Essa capacidade de ajustar dinamicamente o espaço de dados usado em uma estrutura NET_BUFFER, sem alocar e liberar memória ou copiar dados, reduz a sobrecarga necessária para processar dados de rede.
Para obter mais informações sobre como enviar e receber tratamento de dados no NDIS 6.0, consulte Arquitetura de NET_BUFFER.