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 membro Length de Header como o tamanho, em bytes, da estrutura TCP_OFFLOAD_STATE_CACHED. O membro RecognizedOptions de Header é reservado.

Flags

Uma máscara de bits que pode ser definida como zero ou qualquer um dos seguintes sinalizadores, combinado 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 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ão NULL, o número ideal de bytes de dados que o destino de descarregamento deve fornecer em uma única chamada para o Função 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 NdisTcpOffloadReceiveHandler .

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 para 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 for diferente de zero, MaxRT substituirá TcpMaximumRetransmissions no NDIS_TASK_TCP_CONNECTION_OFFLOAD estrutura. O valor padrão para é 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 para o número máximo de retransmissões. Quando MaxRT for diferente de zero, o destino de descarregamento deverá redefinir a variável TotalRT no estado delegado 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 for por IPv6.

TtlOrHopLimit

Se a conexão TCP for sobre IPv4, esse membro especificará a 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 especificará 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 especificará 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 de IPv6, esse membro priorizará valores para pacotes de acordo com os tipos de tráfego, indicando a disposição do remetente em descartar os pacotes (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 de 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 pacotes 802.1p, consulte Processamento de 802.1Q e 802.1p em uma conexão TCP descarregada.

Comentários

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 encerra 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 de variáveis constantes descarregadas para a pilha de host.

Observe que, se o sinalizador 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 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 Revision 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)

Confira também

MiniportTerminateOffload

MiniportUpdateOffload

NDIS_OBJECT_HEADER

OFFLOAD_STATE_HEADER

TCP_OFFLOAD_STATE_CONST

TCP_OFFLOAD_STATE_DELEGATED