Introdução aos descarregamentos de hardware do NetAdapterCx
Para aumentar seu desempenho, a pilha TCP/IP do Windows pode descarregar algumas tarefas para uma NIC (cartão de interface de rede) que tenha os recursos de descarregamento de tarefas apropriados.
O NetAdapterCx se concentra na facilidade de configuração de descarregamento e no gerenciamento de recursos de descarregamento. 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 sobre alterações nos recursos.
Essas diretrizes fornecem uma visão geral dos principais conceitos para descarregamentos de hardware no NetAdapterCx.
- Os recursos de descarregamento de hardware são anunciados pelo hardware do adaptador de rede durante a inicialização e devem ser anunciados antes de chamar NetAdapterStart.
- O driver não precisa marcar palavras-chave padrão do Registro. O NetAdapterCx verifica as palavras-chave do Registro e as respeita ao habilitar os recursos de descarregamento ativos.
- Os recursos de descarregamento ativos do adaptador de rede são aqueles que o adaptador de rede está programado para executar no momento. Esses são um subconjunto dos recursos de hardware anunciados anteriormente pelo driver cliente.
- A pilha TCP/IP ou um driver de protocolo sobreposto podem solicitar uma alteração nos recursos ativos do adaptador de rede. Os drivers cliente registram retornos de chamada com NetAdapterCx para serem notificados sobre as alterações nos recursos de descarregamento ativos.
- Se uma extensão de pacote for necessária para um descarregamento, ela será registrada automaticamente quando o adaptador de rede anunciar o suporte para o descarregamento de hardware.
Os drivers de cliente anunciam um conjunto granular de recursos para NetAdapterCx para os tipos de pacote de rede que seu hardware pode descarregar. Por exemplo, isso pode ser se há suporte para Opções IPv4, Extensões IPv6, Opções TCP ou qualquer combinação dessas, etc. Determinado hardware só poderá executar o descarregamento se o deslocamento do cabeçalho do pacote for conhecido e o driver de cliente desse hardware também puder 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 cliente definirá Layer4HeaderOffset como 255. Todos os pacotes que não são cobertos pelos recursos do driver cliente serão descarregados no software pelo NetAdapterCx.
Se o hardware não for capaz de lidar com uma combinação específica, o driver do cliente não deverá declarar suporte para essa funcionalidade nem executar um fallback de software em si quando encontrar esse pacote. Em vez disso, ele deve permitir que o NetAdapterCx execute automaticamente qualquer fallback de software necessário.
Observação
Se você quiser que o NetAdapterCx execute fallback de software para descarregamentos que não são compatíveis com o hardware, o driver cliente deverá incluir as palavras-chave padronizadas para esse descarregamento no arquivo INF. Por exemplo, se um driver cliente não puder executar o descarregamento RSC em hardware e precisar do NetAdapterCx para executar esse descarregamento no software, as palavras-chave *RscIpv4 e *RscIpv6 deverão ser incluídas no INF.
Os seguintes descarregamentos têm suporte do NetAdapterCx e da pilha TCP/IP do Windows:
Nome do descarregamento | Descrição |
---|---|
Checksum | Descarregando o cálculo e a validação de somas de verificação de IP e TCP para a NIC. |
GSO (descarregamento de envio genérico) | Descarregamento da segmentação de pacotes TCP/UDP grandes para IPv4 e IPv6. |
Receive Segment Coalescing (RSC) | Descarregamento da união 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 solicitar uma alteração nos recursos ativos do adaptador de rede, visite a página de referência de descarregamento correspondente.