Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le versioni NDIS 6.0 e successive forniscono dati TCP/IP offload out-of-band (OOB) nel membro NetBufferListInfo della struttura NET_BUFFER_LIST , che specifica un elenco collegato di strutture NET_BUFFER . Il membro NetBufferListInfo è una matrice di valori che contengono informazioni comuni a tutte le strutture NET_BUFFER nell'elenco.
Usare gli identificatori seguenti con la macro NET_BUFFER_LIST_INFO per impostare e ottenere i dati OOB di offload TCP/IP nella matrice NetBufferListInfo :
TcpIpChecksumNetBufferListInfo
Specifica le informazioni di checksum utilizzate per l'offload delle attività di checksum dal protocollo TCP/IP a un driver miniport. Quando si specifica TcpIpChecksumNetBufferListInfo, NET_BUFFER_LIST_INFO restituisce una struttura NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO (non un puntatore alla struttura). Questa struttura contiene un'unione che consente di accedere alle informazioni sul checksum come un singolo valore PVOID o come campi di bit.
IPsecOffloadV1NetBufferListInfo
Specifica le informazioni di scarico IPsec (Internet Protocol Security) utilizzate per il trasferimento delle attività IPsec dal protocollo TCP/IP a un driver miniport. Quando si specifica IPsecOffloadV1NetBufferListInfo, NET_BUFFER_LIST_INFO restituisce una struttura NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO .
TcpLargeSendNetBufferListInfo
Specifica le informazioni utilizzate per l'offload della segmentazione di un pacchetto TCP di grandi dimensioni dal protocollo TCP/IP a un driver miniport. Quando si specifica TcpLargeSendNetBufferListInfo, NET_BUFFER_LIST_INFO restituisce una struttura NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO (non un puntatore alla struttura). Questa struttura contiene un'unione che consente di accedere alle informazioni come un singolo valore PVOID o come campi di bit.
Ieee8021QNetBufferListInfo
Specifica le informazioni 802.1Q su un pacchetto. Quando si specifica Ieee8021QNetBufferListInfo, NET_BUFFER_LIST_INFO restituisce il membro Value di una struttura NDIS_NET_BUFFER_LIST_8021Q_INFO . Questa struttura può specificare le informazioni sulla priorità 802.1p e sull'identificatore VLAN. Le informazioni sulla priorità 802.1p vengono usate per stabilire la priorità dei pacchetti nelle reti shared-media 802.
Se un driver miniport segnala il supporto per l'incapsulamento NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q_IN_OOB, deve inserire i dati Ieee8021QNetBufferListInfo in pacchetti Ethernet di invio di grandi dimensioni versione 1 (LSOV1) e offload di invio di grandi dimensioni versione 2 (LSOV2).
TcpOffloadBytesTransferred
Specifica il numero di byte di dati trasferiti in un'operazione di offload, ricezione o disconnessione del camino TCP.
TcpReceiveNoPush
Specifica un valore booleano che rappresenta la modalità push di una richiesta di ricezione di offload del camino TCP. Se TRUE, la richiesta di ricezione è in modalità non push. In caso contrario, la richiesta di ricezione è in modalità push.
Per i tipi di offload LSOV1, LSOV2, checksum e IPsec, un driver miniport esegue l'offload delle attività in base al tipo di dati OOB e alle funzionalità di offload segnalate. Ad esempio, se un driver di protocollo richiede servizi LSOV1 per un pacchetto IPv4, ogni richiesta di invio fornita dal driver di protocollo include le informazioni del membro LsoV1Transmit nei dati OOB NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO . Si noti che il driver di protocollo deve verificare che il driver miniport supporti IPv4, con il tipo di incapsulamento specificato, prima di effettuare la richiesta di invio.
La struttura NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO contiene la dimensione massima del segmento (MSS). Il membro TcpHeaderOffset specifica la posizione dell'intestazione TCP in modo che il driver miniport non deve analizzare intestazioni IP, opzioni IP o intestazioni di estensione IP.
Un driver miniport NDIS 6.0 e versioni successive che supporta LSOV2 e LSOV1 deve controllare il membro Type di NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO per determinare se lo stack di driver usa LSOV2 o LSOV1 e deve eseguire l'offload appropriato.
Per LSOv1, prima che un driver miniport completi l'invio di un pacchetto TCP di grandi dimensioni che ha segmentato in pacchetti più piccoli usando LSO, il driver scrive il numero di byte di payload TCP inviati nei pacchetti segmentati nel membro TcpPayload di NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO.
Se un driver miniport specifica il flag NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q nelle relative funzionalità, il driver può eseguire servizi di offload delle attività per NET_BUFFER_LIST strutture che contengono l'intestazione VLAN nei dati del buffer. Nel caso dei dati ricevuti, questo flag indica che il driver miniport eseguirà il calcolo del checksum di ricezione e inserisce l'intestazione VLAN nel pacchetto Ethernet.
Se un driver miniport specifica il flag NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q_IN_OOB nelle relative funzionalità, il driver può eseguire l'offload su strutture NET_BUFFER_LIST che contengono l'intestazione VLAN nei dati OOB Ieee8021QnetBufferListInfo . Il miniport inserisce l'intestazione VLAN nei dati OOB Ieee8021QnetBufferListInfo nel caso di checksum offload di ricezione.