Share via


OID_TCP_TASK_OFFLOAD

A pilha de host consulta o OID_TCP_TASK_OFFLOAD OID para obter os recursos de descarregamento TCP de uma NIC de driver de miniporto ou de um destino de descarregamento. Depois de determinar os recursos de descarregamento compatíveis com uma NIC ou um destino de descarregamento, a pilha de host define esse OID para habilitar um ou mais dos recursos relatados. A pilha de host também pode desabilitar todos os recursos de descarregamento de TCP de uma NIC ou de um destino de descarregamento definindo OID_TCP_TASK_OFFLOAD. Apenas um protocolo por vez pode habilitar os recursos de descarregamento TCP de uma NIC específica.

Consultar recursos de descarregamento

Quando as consultas de pilha de host OID_TCP_TASK_OFFLOAD, ela fornece no InformationBuffer uma estrutura NDIS_TASK_OFFLOAD_HEADER . Essa estrutura especifica o seguinte:

  • A versão de descarregamento compatível com a pilha de host.
  • O formato de encapsulamento para enviar e receber pacotes processados pela pilha de host.
  • O tamanho do cabeçalho de encapsulamento nesses pacotes.

Com essas informações, um driver de miniporto ou sua NIC pode localizar o início do primeiro cabeçalho IP em um pacote de transmissão, que é um pré-requisito para executar uma tarefa de descarregamento. Um destino de descarregamento precisa saber o formato de encapsulamento para processar pacotes de recebimento. Em resposta a uma consulta de OID_TCP_TASK_OFFLOAD, um driver de miniporta ou destino de descarregamento retorna, no InformationBuffer, a estrutura NDIS_TASK_OFFLOAD_HEADER seguida imediatamente por uma ou mais estruturas NDIS_TASK_OFFLOAD . Cada estrutura NDIS_TASK_OFFLOAD descreve uma funcionalidade de descarregamento compatível com a NIC do driver de miniporto ou pelo destino de descarregamento. Se a NIC do driver de miniporto ou o destino de descarregamento der suporte a várias versões de um recurso de descarregamento específico, ele deverá retornar uma estrutura NDIS_TASK_OFFLOAD para cada versão.

Cada estrutura NDIS_TASK_OFFLOAD tem um membro Task que especifica a funcionalidade de descarregamento específica à qual a estrutura se aplica. Cada estrutura NDIS_TASK_OFFLOAD também tem um TaskBuffer que contém informações pertinentes à funcionalidade de descarregamento especificada. As informações no TaskBuffer são formatadas como uma das seguintes estruturas:

Observação

Se um driver intermediário modificar o conteúdo dos pacotes que ele encaminha para um driver de miniporto subjacente de modo que as funções de descarregamento TCP não possam ser executadas nos pacotes, o driver intermediário deverá responder a consultas OID_TCP_TASK_OFFLOAD com um status de NDIS_STATUS_NOT_SUPPORTED em vez de passar a solicitação OID para o driver de miniporto subjacente ou destino de descarregamento.

Habilitando recursos de descarregamento

Depois de consultar os recursos de descarregamento de uma NIC ou de um destino de descarregamento, a pilha de host habilita um ou mais desses recursos definindo OID_TCP_TASK_OFFLOAD. Ao definir OID_TCP_TASK_OFFLOAD, a pilha de host fornece, no InformationBuffer, uma estrutura NDIS_TASK_OFFLOAD_HEADER seguida imediatamente por uma estrutura NDIS_TASK_OFFLOAD para cada funcionalidade de descarregamento que a pilha de host está habilitando.

A tarefa em cada estrutura NDIS_TASK_OFFLOAD indica a capacidade de descarregamento que a pilha de host está habilitando. A pilha de host também habilita aspectos específicos de uma funcionalidade de descarregamento específica definindo membros da estrutura no TaskBuffer de cada estrutura NDIS_TASK_OFFLOAD.

Alterando as funcionalidades de descarregamento

Para alterar os recursos de descarregamento habilitados para uma NIC ou um destino de descarregamento, a pilha de host define OID_TCP_TASK_OFFLOAD. O driver de miniporta ou destino de descarregamento deve habilitar apenas os recursos de descarregamento especificados pelo conjunto mais recente de OID_TCP_TASK_OFFLOAD. O driver de miniporta ou o destino de descarregamento deve desabilitar todos os outros recursos de descarregamento. Observe que, antes de desabilitar uma funcionalidade específica de descarregamento de chaminé TCP, a pilha de host encerra o descarregamento de todas as conexões TCP descarregadas que usam essa funcionalidade.

Um destino de descarregamento pode usar as indicações de descarregamento de pausa ou retomada para alterar seus recursos de descarregamento TCP relatados:

  • Um destino de descarregamento faz uma indicação de pausa chamando a função NdisMIndicateStatusEx com o membro NDIS_STATUS_INDICATION-StatusCode> definido como NDIS_STATUS_OFFLOAD_PAUSE.
  • Um destino de descarregamento faz uma indicação de retomada chamando a função NdisMIndicateStatusEx com o membro NDIS_STATUS_INDICATION-StatusCode> definido como NDIS_STATUS_OFFLOAD_RESUME.

Depois que um destino de descarregamento solicita que a pilha de host retome o descarregamento de objetos de estado, as consultas de pilha de host OID_TCP_TASK_OFFLOAD novamente para obter os recursos revisados de descarregamento TCP do destino de descarregamento. Para obter mais informações, consulte NDIS_STATUS_OFFLOAD_RESUME.

Desabilitando recursos de descarregamento

Para desabilitar todos os recursos de descarregamento compatíveis com uma NIC ou um destino de descarregamento, a pilha de host define OID_TCP_TASK_OFFLOAD. No InformationBuffer, a pilha de host fornece uma estrutura NDIS_TASK_OFFLOAD_HEADER com o membro OffsetFirstTask dessa estrutura definido como zero.

Requisitos

Versão: Windows Vista e posterior Cabeçalho: Ntddndis.h (inclua Ndis.h)