TCP_OFFLOAD_STATE_DELEGATED struttura (ndischimney.h)
[La funzionalità di offload del camino TCP è deprecata e non deve essere usata.]
La struttura TCP_OFFLOAD_STATE_DELEGATED contiene le variabili delegate di un oggetto stato connessione TCP.
Sintassi
typedef struct _TCP_OFFLOAD_STATE_DELEGATED {
OFFLOAD_STATE_HEADER Header;
TCP_OFFLOAD_CONNECTION_STATE State;
USHORT Flags;
ULONG RcvNxt;
ULONG RcvWnd;
ULONG SndUna;
ULONG SndNxt;
ULONG SndMax;
ULONG SndWnd;
ULONG MaxSndWnd;
ULONG SendWL1;
ULONG CWnd;
ULONG SsThresh;
USHORT SRtt;
USHORT RttVar;
ULONG TsRecent;
ULONG TsRecentAge;
ULONG TsTime;
ULONG TotalRT;
UCHAR DupAckCount;
UCHAR SndWndProbeCount;
struct {
UCHAR ProbeCount;
ULONG TimeoutDelta;
} KeepAlive;
struct {
UCHAR Count;
ULONG TimeoutDelta;
} Retransmit;
union {
struct {
PNET_BUFFER_LIST SendDataHead;
PNET_BUFFER_LIST SendDataTail;
};
ULONG SendBacklogSize;
};
union {
PNET_BUFFER_LIST BufferedData;
ULONG ReceiveBacklogSize;
};
ULONG DWnd;
} TCP_OFFLOAD_STATE_DELEGATED, *PTCP_OFFLOAD_STATE_DELEGATED;
Members
Header
Struttura OFFLOAD_STATE_HEADER . NDIS imposta il membro Length di Intestazione sulle dimensioni, in byte, della struttura TCP_OFFLOAD_STATE_DELEGATED. Il membro RecognizedOptions di Header è riservato.
State
Lo stato corrente della connessione TCP (vedere RFC 793) come uno dei valori di TCP_OFFLOAD_CONNECTION_STATE seguenti:
TcpConnectionClosed
Nessun stato di connessione.
TcpConnectionListen
In attesa di una richiesta di connessione da qualsiasi tcp e porta remota.
TcpConnectionSynSent
Attesa di una richiesta di connessione corrispondente dopo aver inviato una richiesta di connessione.
TcpConnectionSynRcvd
In attesa di una conferma della richiesta di connessione dopo aver ricevuto e inviato una richiesta di connessione.
TcpConnectionEstablished
Una connessione aperta: i dati ricevuti possono essere recapitati all'utente. Stato normale per la fase di trasferimento di dati della connessione.
TcpConnectionFinWait1
In attesa di una richiesta di terminazione della connessione dal TCP remoto o un riconoscimento della richiesta di terminazione della connessione inviata in precedenza.
TcpConnectionFinWait2
In attesa di una richiesta di terminazione della connessione dal TCP remoto.
TcpConnectionCloseWait
In attesa di una richiesta di terminazione della connessione dall'utente locale.
TcpConnectionClosing
In attesa di un riconoscimento della richiesta di terminazione della connessione dal TCP remoto.
TcpConnectionLastAck
In attesa di un riconoscimento della richiesta di terminazione della connessione inviata in precedenza al TCP remoto, che include un riconoscimento della richiesta di terminazione della connessione.
TcpConnectionTimeWait
In attesa del tempo sufficiente per garantire che il TCP remoto abbia ricevuto il riconoscimento della richiesta di terminazione della connessione.
Si noti che lo stack host può scaricare una connessione TCP quando la connessione è in qualsiasi stato tranne TcpConnectionClosed, TcpConnectionListen,TcpConnectionSynRcvd,
Stato TcpConnectionSynSent o TcpConnectionTimeWait . Lo stack host può eseguire query, aggiornare, invalidare o terminare una connessione TCP indipendentemente dallo stato della connessione.
Flags
Riservato per l'utilizzo nel sistema.
RcvNxt
Numero di sequenza per il segmento di ricezione successivo (vedere RCV. AVANTI in RFC 793.
RcvWnd
Dimensioni della finestra di ricezione, in byte (vedere RCV. WND in RFC 793.
SndUna
Numero di sequenza per il primo byte di dati non riconosciuti (vedere SND). UNA in RFC 793. Per altre informazioni, vedere Inviare dati contenenti dati da ritrasmettere.
SndNxt
Numero di sequenza per il byte successivo da inviare sulla connessione (vedere SND. NXT in RFC 793. Per altre informazioni, vedere Inviare dati contenenti dati da ritrasmettere.
SndMax
Numero massimo di sequenza inviato sulla connessione. Per altre informazioni, vedere Inviare dati contenenti dati da ritrasmettere.
SndWnd
Dimensioni della finestra di invio, in byte ( vedere SND. WND in RFC 793.
MaxSndWnd
Dimensioni massime della finestra di invio, in byte (vedere RFC 813).
SendWL1
Numero di sequenza di segmento usato per l'ultimo aggiornamento della finestra (vedere SND. WL1 in RFC 793).
CWnd
Dimensioni della finestra di congestione, in byte (vedere cwnd in RFC 2581).
SsThresh
Soglia di avvio lenta, in byte (vedere ssthresh in RFC 2581).
SRtt
L'ora di round trip liscia, nei tick dell'orologio (vedere SRTT in RFCs 793 e 2988). Gestito in base a ogni connessione perché prende in considerazione il percorso, l'host e talvolta il comportamento dell'applicazione.
RttVar
La variazione dell'ora di round trip, nei punti di spunta dell'orologio (vedere RTTVAR in RFC 2988).
TsRecent
Valore timestamp da inviare nel successivo ACK (vedere TS). Recente in RFC 1323)
TsRecentAge
Lunghezza di tempo, in punti di orologio, dal momento che il timestamp più recente è stato ricevuto (vedere RFC 1323).
TsTime
Valore corrente del timestamp modificato.
TotalRT
Il tempo totale, nei tick dell'orologio, che è stato trascorso ritrasmettere il segmento TCP corrente.
DupAckCount
Numero di SDK accettati per lo stesso numero di sequenza (vedere RFC 1323).
SndWndProbeCount
Round del probe della finestra di invio corrente. Per una descrizione del probe della finestra di invio, vedere Timer persistente.
KeepAlive
Questo membro è un'unione costituita dai membri seguenti:
KeepAlive.ProbeCount
Numero di probe keepalive inviati che non hanno ricevuto una risposta (vedere RFC 1122).
KeepAlive.TimeoutDelta
Il tempo rimanente, nei segni di orologio, fino al timeout di keepalive successivo (vedere RFC 1122). Si noti che un valore pari a -1 immediatamente dopo il caricamento della connessione TCP indica che il timer keepalive non è in esecuzione quando la connessione è stata disattivata. Se il timer keepalive della destinazione di offload non è in esecuzione, la destinazione di offload deve restituire -1 in questo membro quando risponde a una chiamata alla funzione MiniportQueryOffload o alla funzione MiniportTerminateOffload.
Retransmit
Questo membro è un'unione costituita dai membri seguenti:
Retransmit.Count
Numero di ritrasmettezioni inviate (vedere RFC 2581).
Retransmit.TimeoutDelta
L'ora, nei segni di orologio, rimane fino al successivo timeout di ritrasmissione (vedere RFC 2581). Si noti che un valore di -1 immediatamente dopo il caricamento della connessione TCP indica che il timer di ritrasmissione non è stato eseguito quando la connessione è stata disattivata. Il timer di ritrasmissione non è in esecuzione perché non sono presenti dati di invio in sospeso sulla connessione quando la connessione è stata disattivata. Se il timer di ritrasmissione della destinazione di offload non è in esecuzione, la destinazione di offload deve restituire -1 in questo membro quando risponde a una chiamata alla funzione MiniportQueryOffload o alla funzione MiniportTerminateOffload.
SendDataHead
Puntatore a una struttura NET_BUFFER_LIST . Questa struttura NET_BUFFER_LIST si trova nell'elenco collegato a cui fa riferimento il membro NetBufferListChain del NDIS_MINIPORT_OFFLOAD_BLOCK_LIST struttura che precede immediatamente la struttura TCP_OFFLOAD_STATE_DELEGATED. Se il puntatore NetBufferListChain è NULL, SendDataHead non è significativo.
Il puntatore SendDataHead punta alla prima struttura NET_BUFFER_LIST la cui struttura NET_BUFFER ha memorizzato il buffer dei dati di invio associati.
Questa variabile viene usata solo in un'operazione di offload avvia o termina l'offload. Per altre informazioni su come viene usata questa variabile, vedere Gestione dei dati di invio in sospeso durante e dopo un'operazione di offload e gestione dei dati di invio in sospeso durante un'operazione di offload termina.
SendDataTail
Puntatore a una struttura NET_BUFFER_LIST . Questa struttura NET_BUFFER_LIST si trova nell'elenco collegato a cui fa riferimento il membro NetBufferListChain della struttura NDIS_MINIPORT_OFFLOAD_BLOCK_LIST che precede immediatamente la struttura TCP_OFFLOAD_STATE_DELEGATED. Se il puntatore NetBufferListChain è NULL, SendDataTail non è significativo.
Il puntatore SendDataTail punta all'ultima struttura NET_BUFFER_LIST la cui struttura NET_BUFFER ha memorizzato il buffer dei dati di invio associati.
Questa variabile viene usata solo in un'operazione di offload avvia o termina l'offload. Per altre informazioni su come viene usata questa variabile, vedere Gestione dei dati di invio in sospeso durante e dopo un'operazione di offload e gestione dei dati di invio in sospeso durante un'operazione di offload termina
SendBacklogSize
La destinazione di offload specifica questo valore per indicare il numero di byte di dati che lo stack host deve avere in sospeso nella destinazione di offload per prestazioni ottimali. Questo è il numero di byte di invio passati alla destinazione di offload, ma che non sono ancora stati completati dalla destinazione di offload. Le variabili e l'algoritmo specifici usati dalla destinazione di offload per calcolare le dimensioni del backlog di invio sono specifiche dell'implementazione. Le dimensioni del backlog di invio possono essere una funzione del tempo di andata e ritorno (RTT) per la connessione, la larghezza di banda dell'interfaccia e altri parametri. Una destinazione di offload potrebbe, ad esempio, usare il minimo del prodotto di larghezza di banda/ritardo e la finestra ricevuta annunciata. Si noti tuttavia che le dimensioni del backlog di invio non variano in base al numero di byte di dati attualmente pubblicati per la trasmissione sulla connessione.
Lo stack host può eseguire una query sullo stato delegato TCP per la connessione per ottenere le dimensioni del backlog di invio. Inoltre, la destinazione di offload può indicare una modifica nella dimensione del backlog di invio chiamando Funzione NdisTcpOffloadEventHandler .
Se la destinazione di offload non supporta la funzionalità send-backlog-size, deve scrivere un valore di 0xFFFFFFFF a SendBacklogSize quando viene eseguito una query sullo stato delegato TCP per la connessione. La variabile SendBacklogSize non viene usata nell'operazione di offload termina.
BufferedData
Puntatore alla ricezione dei dati memorizzati nel buffer. Lo stack host può passare tali dati alla destinazione di offload durante l'offload di una connessione TCP. Per altre informazioni, vedere Gestione dei dati di ricezione memorizzati nel buffer durante e dopo un'operazione di offload. La destinazione di offload può passare tali dati allo stack host durante il caricamento di una connessione TCP. Per altre informazioni, vedere Gestione dei dati di ricezione memorizzati nel buffer durante un'operazione di offload terminate.
ReceiveBacklogSize
La destinazione di offload specifica questo valore per indicare il numero di byte di dati di ricezione memorizzati nel buffer nella destinazione di offload per la connessione TCP offloaded. Lo stack host può eseguire una query sullo stato delegato TCP per ottenere questo valore per la connessione. Lo stack host usa questo valore per inserire una o più richieste di ricezione sulla connessione sufficientemente grandi da contenere tutti i dati memorizzati nel buffer.
Se la destinazione di offload non supporta la funzionalità di dimensioni backlog di ricezione, deve scrivere un valore di 0xFFFFFFFF in ReceiveBacklogSize .
DWnd
Commenti
Lo stack host fornisce i valori iniziali per le variabili delegate TCP quando esegue l'offload di queste variabili nella destinazione di offload. Dopo l'offload, le variabili delegate TCP sono di proprietà e gestite dalla destinazione di offload. Solo la destinazione di offload può modificare il valore di una variabile delegata TCP offloaded. La destinazione di offload non notifica allo stack host le modifiche apportate ai valori delle variabili delegate TCP caricate. Tuttavia, lo stack host può eseguire una query sul valore delle variabili delegate TCP caricate, causando la chiamata della funzione MiniportQueryOffload della destinazione di offload. Quando lo stack host termina l'offload dell'oggetto stato della connessione TCP causando la chiamata di NDIS alla destinazione di offload La funzione MiniportTerminateOffload , la destinazione di offload passa nuovamente il valore delle variabili delegate TCP nell'oggetto stato di connessione TCP terminato allo stack host.
Quando viene passato a una destinazione di offload, una struttura TCP_OFFLOAD_STATE_DELEGATED è associata a un oggetto NDIS_MINIPORT_OFFLOAD_BLOCK_LIST struttura, che contiene un'intestazione formattata come struttura NDIS_OBJECT_HEADER . Il membro Revision della struttura NDIS_OBJECT_HEADER, in questo caso, specifica il numero di revisione della struttura TCP_OFFLOAD_STATE_DELEGATED.
Requisiti
Requisito | Valore |
---|---|
Intestazione | ndischimney.h (include Ndischimney.h) |