Partilhar via


OID_TCP_TASK_OFFLOAD

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

Consultando recursos de descarregamento

Quando a pilha de host consulta OID_TCP_TASK_OFFLOAD, ela fornece no InformationBuffer uma estrutura NDIS_TASK_OFFLOAD_HEADER. Esta estrutura especifica o seguinte:

  • A versão de descarregamento suportada pela pilha de host.
  • O formato de encapsulamento para enviar e receber pacotes processados pela pilha de host.
  • O tamanho do cabeçalho de encapsulamento em tais pacotes.

Com essas informações, um driver de miniporta 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 conhecer 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 capacidade de descarga suportada pela NIC do driver de miniporta ou pelo destino de descarga. Se a NIC do driver de miniporta ou o destino de descarga suportar várias versões de um recurso de descarregamento específico, ele deverá retornar uma estrutura de NDIS_TASK_OFFLOAD para cada versão.

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

Observação

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

Habilitando recursos de descarga

Depois de consultar os recursos de descarregamento de uma NIC ou de um destino de descarregamento, a pilha de hosts 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 de NDIS_TASK_OFFLOAD_HEADER seguida imediatamente por uma estrutura de NDIS_TASK_OFFLOAD para cada recurso de descarregamento que a pilha de host está habilitando.

O de Tarefas em cada estrutura NDIS_TASK_OFFLOAD indica a capacidade de descarregamento que a pilha de host está habilitando. A pilha de host também permite aspetos específicos de um recurso de descarregamento específico, definindo membros da estrutura no TaskBuffer de cada estrutura NDIS_TASK_OFFLOAD.

Alterando os recursos de descarga

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

Um destino de descarregamento pode usar as indicações de pausa ou retomada de descarregamento 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 membroStatusCode NDIS_STATUS_INDICATION-> definido como NDIS_STATUS_OFFLOAD_PAUSE.
  • Um destino de descarregamento faz uma indicação de retomada chamando a função NdisMIndicateStatusEx com o membroNDIS_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.

Desativando os recursos de descarga

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

Requerimentos

Versão: Windows Vista e posterior de cabeçalho : Ntddndis.h (incluir Ndis.h)