Åtkomst till TCP/IP Offload NET_BUFFER_LIST Information
NDIS-versionerna 6.0 och senare tillhandahåller TCP/IP-avlastning utanför band (OOB) data i NetBufferListInfo-medlemmen i NET_BUFFER_LIST-strukturen, som specificerar en länkad lista av NET_BUFFER-strukturer. NetBufferListInfo medlem är en matris med värden som innehåller information som är gemensam för alla NET_BUFFER strukturer i listan.
Använd följande identifierare tillsammans med makrot NET_BUFFER_LIST_INFO för att ställa in och hämta OOB-data för TCP/IP-avlastning i NetBufferListInfo array:
TcpIpChecksumNetBufferListInfo
Anger kontrollsummainformation som används vid avlastning av kontrollsummor från TCP/IP-protokollet till en miniportdrivrutin. När du anger TcpIpChecksumNetBufferListInforeturnerar NET_BUFFER_LIST_INFO en NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO struktur (inte en pekare till strukturen). Den här strukturen innehåller en union som gör att kontrollsummainformationen kan nås som ett enda PVOID-värde eller som bitfält.
IPsecOffloadV1NetBufferListInfo
Anger information om internetprotokollsäkerhet (IPsec) som används vid avlastning av IPsec-uppgifter från TCP/IP-protokollet till en miniportdrivrutin. När du anger IPsecOffloadV1NetBufferListInforeturnerar NET_BUFFER_LIST_INFO en NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO struktur.
TcpLargeSendNetBufferListInfo
Anger information som används för att avlasta segmenteringen av ett stort TCP-paket från TCP/IP-protokollet till en miniportdrivrutin. När du anger TcpLargeSendNetBufferListInforeturnerar NET_BUFFER_LIST_INFO en NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO struktur (inte en pekare till strukturen). Den här strukturen innehåller en union som gör att informationen kan nås som ett enda PVOID-värde eller som bitfält.
Ieee8021QNetBufferListInfo
Anger 802.1Q-information om ett paket. När du anger Ieee8021QNetBufferListInfo, returnerar NET_BUFFER_LIST_INFO Value medlemmen i en NDIS_NET_BUFFER_LIST_8021Q_INFO struktur. Den här strukturen kan ange 802.1p-prioritet och virtuell LAN-identifierarinformation (VLAN). 802.1p-prioritetsinformation används för att upprätta paketprioritet i delade media 802-nätverk.
Om en miniportdrivrutin rapporterar stöd för NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q_IN_OOB inkapsling, måste den infoga Ieee8021QNetBufferListInfo data i stora send offload version 1 (LSOV1) och stora send offload version 2 (LSOV2) Ethernet-paket.
TcpOffloadBytesTransferred
Anger antalet databyte som överfördes i en TCP-offload-åtgärd vid sändning, mottagning eller frånkoppling.
TcpReceiveNoPush
Anger ett booleskt värde som representerar push-läget för en TCP chimney-avlastningsbegäran. Om det är TRUE, är mottagningsbegäran i icke-push-läge. Annars är mottagningsbegäran i push-läge.
För avlastningstyperna LSOV1, LSOV2, checksum och IPsec utför en miniportdrivrutin avlastning baserat på typen av OOB-data och avlastningsfunktioner som den rapporterade. Om en protokolldrivrutin till exempel kräver LSOV1-tjänster för ett IPv4-paket, innehåller varje begäran om att skicka, som protokolldrivrutinen tillhandahåller, informationen från LsoV1Transmit medlem i NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO OOB-data. Observera att protokolldrivrutinen måste kontrollera att miniportdrivrutinen stöder IPv4, med den angivna inkapslingstypen, innan du skickar begäran.
Den NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO strukturen innehåller den maximala segmentstorleken (MSS). TcpHeaderOffset- medlem anger platsen för TCP-huvudet så att miniportdrivrutinen inte behöver parsa IP-huvuden, IP-alternativ eller IP-tilläggshuvuden.
En NDIS 6.0 och senare miniportdrivrutin som stöder LSOV2 och LSOV1 måste kontrollera Type-medlemmen i NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO för att avgöra om drivrutinsstacken använder LSOV2 eller LSOV1 och utföra lämplig offload-funktion.
För LSOv1, innan en miniportdrivrutin slutför sändningen av ett stort TCP-paket som det har segmenterat i mindre paket med hjälp av LSO, skriver drivrutinen antalet TCP-nyttolastbyte som den skickade i de segmenterade paketen i TcpPayload medlem i NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO.
Om en miniportdrivrutin anger flaggan NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q i sina funktioner kan drivrutinen utföra tjänster för uppgiftsavlastning för NET_BUFFER_LIST strukturer som innehåller VLAN-huvudet i buffertdata. När det gäller mottagna data anger den här flaggan att miniportdrivrutinen utför beräkningen av kontrollsumman och placerar VLAN-huvudet i Ethernet-paketet.
Om en miniportdrivrutin anger flaggan NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q_IN_OOB i dess funktioner kan drivrutinen utföra avlastning på NET_BUFFER_LIST strukturer som innehåller VLAN-huvudet i Ieee8021QnetBufferListInfo OOB-data. I fallet med avlastning av mottagen kontrollsumma infogar miniporten VLAN-huvudet i Ieee8021QnetBufferListInfo OOB-data.