Partilhar via


Introdução aos descarregamentos de hardware do NetAdapterCx

Para aumentar seu desempenho, a pilha TCP/IP do Windows pode descarregar algumas tarefas para uma placa de interface de rede (NIC) que tenha os recursos de descarregamento de tarefas apropriados.

NetAdapterCx concentra-se na facilidade de configuração de descarga e gerenciamento de recursos de descarga. Os drivers de cliente só precisam especificar uma configuração simples para seus recursos de descarregamento de hardware e registrar retornos de chamada para serem notificados de alterações nos recursos.

Este guia fornece uma visão geral dos principais conceitos para descarregamentos de hardware no NetAdapterCx.

  • As capacidades de descarregamento de hardware são anunciadas pelo hardware do adaptador de rede durante o processo de inicialização e devem ser anunciadas antes de chamar NetAdapterStart.
  • O driver não precisa verificar palavras-chave de registro padrão. NetAdapterCx verifica as palavras-chave do registo e respeita-as ao ativar as funcionalidades de offload ativas.
  • Os recursos de descarregamento ativos do adaptador de rede são aqueles que o adaptador de rede está programado para executar atualmente. Estes são um subconjunto dos recursos de hardware anunciados pelo driver do cliente anteriormente.
  • A pilha TCP/IP ou um driver de protocolo subjacente pode solicitar uma alteração nas capacidades ativas do adaptador de rede. Os drivers de cliente registram retornos de chamada com NetAdapterCx para serem notificados de alterações nos recursos de descarregamento ativos.
  • Se uma extensão de pacote for necessária para um descarregamento, ela será automaticamente registrada quando o adaptador de rede anunciar suporte para o descarregamento de hardware.

Os drivers de cliente anunciam um conjunto granular de capacidades ao NetAdapterCx em relação aos tipos de pacotes de rede que o seu hardware pode descarregar. Por exemplo, isso pode ser se as Opções IPv4, Extensões IPv6, Opções TCP ou quaisquer combinações destas são suportadas, etc. Determinado hardware só pode executar o descarregamento se o deslocamento do cabeçalho do pacote for conhecido, e o driver do cliente desse hardware também pode especificar seu limite no deslocamento do cabeçalho do pacote. Por exemplo, se o descritor de hardware tiver apenas 8 bits para armazenar o deslocamento de cabeçalho da camada 4, o driver do cliente definirá o Layer4HeaderOffset como 255. Todos os pacotes que não são cobertos pelos recursos do driver do cliente serão descarregados em software pelo NetAdapterCx.

Se o hardware não for capaz de lidar com uma combinação específica, o driver do cliente não deve declarar suporte para esse recurso nem executar um fallback de software quando encontrar tal pacote. Em vez disso, ele deve permitir que o NetAdapterCx execute qualquer fallback de software necessário automaticamente.

Observação

Se você quiser que o NetAdapterCx execute fallback de software para descarregamentos que não são suportados pelo hardware, o driver do cliente deve incluir as palavras-chave padronizadas para esse descarregamento no arquivo INF. Por exemplo, se um driver de cliente não pode executar o descarregamento RSC de todo no hardware e precisa que o NetAdapterCx execute esse descarregamento no software, as palavras-chave *RscIpv4 e *RscIpv6 devem ser incluídas no INF.

Os seguintes descarregamentos são suportados pelo NetAdapterCx e a pilha TCP/IP do Windows:

Nome do descarregamento Descrição
Soma de Verificação Transferir o cálculo e validação dos checksums IP e TCP para a placa de interface de rede.
Descarregamento de envio genérico (GSO) Descarregamento de segmentação de grandes pacotes TCP/UDP para IPv4 e IPv6.
Coalescência de Segmentos de Receção (RSC) Descarregamento de coalescência de uma sequência de segmentos TCP recebidos para IPv4 e IPv6.

Para obter mais informações sobre como configurar descarregamentos e atualizar descarregamentos quando a pilha TCP/IP ou um driver de protocolo sobreposto solicita uma alteração nos recursos ativos do adaptador de rede, visite a página de referência de descarregamento correspondente.