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.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | ndischimney.h (inclua Ndischimney.h) |