Compartilhar via


estrutura TCP_OFFLOAD_STATE_CACHED (ndischimney.h)

[O recurso de descarregamento de chaminé TCP foi preterido e não deve ser usado.]

A estrutura TCP_OFFLOAD_STATE_CACHED contém as variáveis armazenadas em cache de um objeto de estado de conexão TCP.

Sintaxe

typedef struct _TCP_OFFLOAD_STATE_CACHED {
  OFFLOAD_STATE_HEADER Header;
  USHORT               Flags;
  ULONG                InitialRcvWnd;
  ULONG                RcvIndicationSize;
  UCHAR                KaProbeCount;
  ULONG                KaTimeout;
  ULONG                KaInterval;
  ULONG                MaxRT;
  ULONG                FlowLabel : 20;
  UCHAR                TtlOrHopLimit;
  UCHAR                TosOrTrafficClass;
  UCHAR                UserPriority : 3;
} TCP_OFFLOAD_STATE_CACHED, *PTCP_OFFLOAD_STATE_CACHED;

Membros

Header

Uma estrutura OFFLOAD_STATE_HEADER. O NDIS define o Length membro de Header para o tamanho, em bytes, da estrutura TCP_OFFLOAD_STATE_CACHED. O membro RecognizedOptions do Header está reservado.

Flags

Uma máscara de bits que pode ser definida como zero ou qualquer um dos seguintes sinalizadores, combinada com OR bit a bit:

TCP_FLAG_KEEP_ALIVE_ENABLED

A pilha de host define esse sinalizador para habilitar a opção keepalive na conexão. A pilha de host limpa esse sinalizador para desabilitar a opção keepalive na conexão. Para obter mais informações sobre a opção keepalive, consulte RFC 1122.

TCP_FLAG_NAGLING_ENABLED

A pilha de host define esse sinalizador para habilitar o algoritmo Nagle na conexão. A pilha de host limpa esse sinalizador para desabilitar o algoritmo Nagle na conexão. Para obter mais informações sobre o algoritmo Nagle, consulte RFC 896.

TCP_FLAG_KEEP_ALIVE_RESTART

A pilha de host define esse sinalizador para fazer com que o destino de descarregamento redefina seu temporizador keepalive como zero.

TCP_FLAG_MAX_RT_RESTART

A pilha de host define esse sinalizador para fazer com que o destino de descarregamento redefina a variável TotalRT no estado delegado do TCP para a conexão como zero.

TCP_FLAG_UPDATE_RCV_WND

A pilha de host define esse sinalizador para indicar que o tamanho da janela de recebimento padrão (InitialRcvWnd na estrutura TCP_OFFLOAD_STATE_CACHED) foi alterado. Se o valor de InitialRcvWnd for diferente do tamanho da janela de recebimento atual do destino de descarregamento (RcvWnd na estrutura TCP_OFFLOAD_STATE_DELEGATED), o destino de descarregamento deverá anunciar um novo tamanho de janela de recebimento para o par.

InitialRcvWnd

A janela de recebimento padrão (da opção de soquete SO_RCVBUF).

RcvIndicationSize

Quando nãoNULL, o número ideal de bytes de dados que o destino de descarregamento deve fornecer em uma única chamada para o função de NdisTcpOffloadReceiveHandler. Esse número, que normalmente está entre dezenas e centenas de bytes, é uma sugestão, não um requisito. O destino de descarregamento pode indicar mais ou menos de bytes de dados RcvIndicationSize. No entanto, para um desempenho ideal, o destino de descarregamento deve indicar
RcvIndicationSize bytes de dados. Para obter mais informações, consulte NdisTcpOffloadReceiveHandler.

Quando NULL, RcvIndicationSize não é especificado. Nesse caso, o destino de descarregamento deve ignorar RcvIndicationSize e indicar o máximo de dados possível em chamadas para a função de NdisTcpOffloadReceiveHandler de.

KaProbeCount

O número de investigações keepalive que o destino de descarregamento deve enviar para determinar se uma conexão TCP está intacta (consulte RFC 1122).

KaTimeout

Esse membro especifica, em tiques de relógio, o intervalo de tempo limite para inatividade antes de enviar uma investigação keepalive (consulte RFC 1122).

KaInterval

Esse membro especifica, em tiques de relógio, o tempo limite após o qual retransmitir um quadro keepalive se nenhuma resposta for recebida a uma investigação keepalive (consulte RFC 1122).

MaxRT

Esse membro especifica, em tiques de relógio, o tempo máximo que o destino de descarregamento deve gastar retransmitindo um segmento. Se o valor de MaxRT não for zero, maxrt substituirá TcpMaximumRetransmissions no NDIS_TASK_TCP_CONNECTION_OFFLOAD estrutura. O valor padrão é maxrt é zero, o que significa que TcpMaximumRetransmissions define o número máximo de vezes que o destino de descarregamento deve retransmitir um segmento em uma conexão TCP. Se o valor de MaxRT for FFFFFFFF (ou -1), não haverá limite no número máximo de retransmissões. Quando maxrt não é zero, o destino de descarregamento deve redefinir a variável TotalRT no estado delegado do TCP para a conexão. TotalRT indica o tempo total, em tiques de relógio, que o destino de descarregamento gastou retransmitindo o segmento TCP atual.

FlowLabel

Esse membro marca pacotes rotulados pelo host para tratamento especial intervindo roteadores, por exemplo, QoS não padrão ou serviço "em tempo real" (consulte RFC 2460). Essa variável é definida por meio de uma opção de soquete e pode variar durante o tempo de vida da conexão TCP. Essa variável só será significativa se a conexão TCP estiver acima do IPv6.

TtlOrHopLimit

Se a conexão TCP for sobre IPv4, esse membro especifica o tempo de vida útil (consulte RFC 791). Essa variável é definida por meio de uma opção de soquete e pode variar durante o tempo de vida da conexão TCP.

Se a conexão TCP for por IPv6, esse membro especifica o número de roteadores que o pacote pode passar (consulte RFC 2460). Essa variável é definida por meio de uma opção de soquete e pode variar durante o tempo de vida da conexão TCP.

TosOrTrafficClass

Se a conexão TCP for sobre IPv4, esse membro especifica o tipo de serviço para rotear um pacote (consulte RFC 2474). Essa variável é definida por meio de uma opção de soquete e pode variar durante o tempo de vida da conexão TCP.

Se a conexão TCP estiver acima do IPv6, esse membro priorizará valores para pacotes de acordo com os tipos de tráfego, indicando como o remetente está disposto a ter os pacotes descartados (consulte RFC 2460). Essa variável é definida por meio de uma opção de soquete e pode variar durante o tempo de vida da conexão TCP.

UserPriority

Um valor de prioridade de 3 bits. Se o destino de descarregamento der suporte a informações de pacote 802.1p, ele deverá inserir esse valor de prioridade no cabeçalho de marca de todos os pacotes que ele transmite na conexão TCP descarregada. Se o destino de descarregamento não der suporte a informações de pacote 802.1p, ele deverá ignorar UserPriority . Para obter mais informações sobre como dar suporte a informações de pacote 802.1p, consulte processamento 802.1Q e 802.1p em uma conexão TCP descarregada.

Observações

As variáveis armazenadas em cache são de propriedade e mantidas pela pilha de host. Um destino de descarregamento não deve alterar o valor de uma variável armazenada em cache, a menos que seja solicitado a fazê-lo pela pilha de host. Se o valor de uma variável armazenada em cache for alterado, a pilha de host solicitará uma atualização da variável, o que fará com que o NDIS chame a função MiniportUpdateOffload do destino de descarregamento. Quando a pilha de host termina o descarregamento de um ou mais objetos de estado, fazendo com que o NDIS chame o destino de descarregamento função miniportTerminateOffload, o destino de descarregamento não retorna o valor das variáveis constantes descarregadas para a pilha de host.

Observe que, se o sinalizador de TCP_FLAG_MAX_RT_RESTART de uma conexão TCP descarregada estiver definido, o destino de descarregamento deverá:

  • Redefina a variável KeepaliveProbeCount delegada dessa conexão quando a pilha de host atualizar a variável KaProbeCount armazenada em cache dessa conexão.
  • Redefina a variável KeepaliveTimeoutDelta delegada dessa conexão quando a pilha de host atualizar as variáveis KaTimeout e/ou KaInterval armazenadas em cache dessa conexão.
Quando passada para um destino de descarregamento, uma estrutura de TCP_OFFLOAD_STATE_CACHED é associada a um NDIS_MINIPORT_OFFLOAD_BLOCK_LIST estrutura, que contém um cabeçalho formatado como uma estrutura NDIS_OBJECT_HEADER. O membro revisão da estrutura NDIS_OBJECT_HEADER, nesse caso, especifica o número de revisão da estrutura TCP_OFFLOAD_STATE_CACHED.

Requisitos

Requisito Valor
cabeçalho ndischimney.h (inclua Ndischimney.h)

Consulte também

miniportTerminateOffload

miniportUpdateOffload

NDIS_OBJECT_HEADER

OFFLOAD_STATE_HEADER

TCP_OFFLOAD_STATE_CONST

TCP_OFFLOAD_STATE_DELEGATED