NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO-Struktur (ndis.h)

Die NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO-Struktur enthält zusätzliche Out-of-Band-Informationen für gekapselte Pakete. Weitere Informationen finden Sie unter Network Virtualization using Generic Routing Encapsulation (NVGRE) Task Offload (NVGRE-TO).

Syntax

typedef struct _NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO {
  union {
    struct {
      ULONG IsEncapsulatedPacket : 1;
      ULONG EncapsulatedPacketOffsetsValid : 1;
      ULONG InnerFrameOffset : 8;
      ULONG TransportIpHeaderRelativeOffset : 6;
      ULONG TcpHeaderRelativeOffset : 10;
      ULONG IsInnerIPv6 : 1;
      ULONG TcpOptionsPresent : 1;
      ULONG Reserved : 4;
    } EncapsulatedPacketOffsets;
    PVOID Value;
  };
} NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO, *PNDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO;

Member

EncapsulatedPacketOffsets

EncapsulatedPacketOffsets.IsEncapsulatedPacket

Wenn dieser Member TRUE ist, stellt diese NBL ein Paket dar, das einen inneren Ethernet-Frame mit einem Transport-IP-Header enthält. Für normale Pakete ist dies FALSE . Wenn IsEncapsulatedPacketauf TRUE festgelegt ist, NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO die vorhandenen Headeroffsetfelder. LsoV2Transmit. TcpHeaderOffset und NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO. Übertragen. TcpHeaderOffset hat keine richtigen Werte und darf nicht von der NIC oder dem Treiber verwendet werden. Stattdessen muss der Miniporttreiber die offsets verwenden, die in den anderen Membern dieser Struktur angegeben sind.

EncapsulatedPacketOffsets.EncapsulatedPacketOffsetsValid

Wenn dieser Member TRUE ist, verfügen die Elemente InnerFrameOffset, TransportIpHeaderRelativeOffset und TcpHeaderRelativeOffset über gültige Werte.

EncapsulatedPacketOffsets.InnerFrameOffset

Offset vom Anfang des Pakets bis zum ersten Byte des inneren Ethernet-Frames.

EncapsulatedPacketOffsets.TransportIpHeaderRelativeOffset

Offset auf das erste Byte des inneren IP-Headers relativ zum InnerFrameOffset.

EncapsulatedPacketOffsets.TcpHeaderRelativeOffset

Offset auf das erste Byte des inneren Headers (Transport) relativ zum TransportIpHeaderRelativeOffset. Dieser Wert wird immer auf den richtigen Offset festgelegt, auch wenn der innere Frame kein TCP-Paket ist.

EncapsulatedPacketOffsets.IsInnerIPv6

Legen Sie vom Protokolltreiber fest, um anzugeben, dass der innere IP-Header im gekapselten Paket IPv6-Adressen enthält.

EncapsulatedPacketOffsets.TcpOptionsPresent

Wird vom Protokolltreiber festgelegt, wenn der innere TCP-Header TCP-Optionen enthält. Dadurch kann ein Miniporttreiber den Fall optimieren, wenn es keine Optionen gibt, die TCP-Headerlänge für den Zugriff auf die Nutzlast anzunehmen.

EncapsulatedPacketOffsets.Reserved

Für zukünftige Verwendung reserviert.

Value

Für die zukünftige Verwendung reserviert.

Bemerkungen

Die Member von NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO sind nur dann sinnvoll, wenn TcpIpChecksumNetBufferListInfo oder TcpLargeSendNetBufferListInfo in der NDIS_NET_BUFFER_LIST_INFO-Struktur angegeben ist.

Wenn das IsEncapsulatedPacket-ElementTRUE und die OOB-Informationen (Out-of-Band) von TcpIpChecksumNetBufferListInfo gültig sind, gibt dies an, dass NVGRE-Unterstützung erforderlich ist und die NIC die Prüfsumme für den Tunnel-IP-Header (äußeren) IP-Header, den Transport-IP-Header (inneren) und den TCP- oder UDP-Header berechnen muss, wenn einer davon vorhanden ist. Ein NVGRE-Paket wird nur ausgeladen, wenn das Paket den von Miniport angekündigten Funktionen entspricht. Beispielsweise wird ein Paket, das einen UDP-Header enthält, nicht ausgeladen, wenn der Miniport in seinen Basisfunktionen keine Unterstützung für udp-Tx-Prüfsummenabladung angekündigt hat. Weitere Informationen finden Sie unter Auslagern von Prüfsummentasks.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.30 und höher.
Kopfzeile ndis.h

Weitere Informationen

NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD

NDIS_NET_BUFFER_LIST_INFO

Task offload (Network Virtualization using Generic Routing Encapsulation, NVGRE)

Auslagern von Prüfsummentasks