(ndis.h) NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO 结构

NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO 结构包含封装数据包的其他带外信息。 有关详细信息,请参阅 使用通用路由封装 (NVGRE 的网络虚拟化) 任务卸载 (NVGRE-TO) 。

语法

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;

成员

EncapsulatedPacketOffsets

EncapsulatedPacketOffsets.IsEncapsulatedPacket

如果此成员为 TRUE,则此 NBL 表示包含具有传输 IP 标头的内部以太网帧的数据包。 对于普通数据包,它为 FALSE 。 当 IsEncapsulatedPacketTRUE 时,现有标头偏移字段 NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFOLsoV2TransmitTcpHeaderOffsetNDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO传输TcpHeaderOffset 没有正确的值,NIC 或驱动程序不得使用。 相反,微型端口驱动程序必须使用此结构的其他成员中指定的偏移量。

EncapsulatedPacketOffsets.EncapsulatedPacketOffsetsValid

如果此成员为 TRUE,则 InnerFrameOffsetTransportIpHeaderRelativeOffsetTcpHeaderRelativeOffset 成员具有有效值。

EncapsulatedPacketOffsets.InnerFrameOffset

从数据包开头到内部以太网帧的第一个字节的偏移量。

EncapsulatedPacketOffsets.TransportIpHeaderRelativeOffset

相对于 InnerFrameOffset 的内部 IP 标头的第一个字节的偏移量。

EncapsulatedPacketOffsets.TcpHeaderRelativeOffset

相对于 TransportIpHeaderRelativeOffset 的内部 (传输) 标头的第一个字节的偏移量。 此值始终设置为正确的偏移量,即使内部帧不是 TCP 数据包也是如此。

EncapsulatedPacketOffsets.IsInnerIPv6

由协议驱动程序设置以指示封装数据包中的内部 IP 标头包含 IPv6 地址。

EncapsulatedPacketOffsets.TcpOptionsPresent

当内部 TCP 标头包含 TCP 选项时,由协议驱动程序设置。 这允许微型端口驱动程序在没有选项假定 TCP 标头长度来访问有效负载时优化这种情况。

EncapsulatedPacketOffsets.Reserved

留待将来使用。

Value

保留供将来使用。

注解

仅当 在 NDIS_NET_BUFFER_LIST_INFO 结构中指定 TcpIpChecksumNetBufferListInfoTcpLargeSendNetBufferListInfo,NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO 的成员才有意义。

如果 IsEncapsulatedPacket 成员为 TRUE ,并且 TcpIpChecksumNetBufferListInfo 带外 (OOB) 信息有效,则表明需要 NVGRE 支持,并且 NIC 必须计算隧道 (外部) IP 标头、传输 (内部) IP 标头以及 TCP 或 UDP 标头(如果存在其中一个)的校验和。 仅当数据包符合微型端口播发功能时,才会卸载 NVGRE 数据包。 例如,如果微型端口在其基本功能中未播发 UDP Tx 校验和卸载支持,则包含 UDP 标头的数据包将不会卸载。 有关详细信息,请参阅 卸载校验和任务

要求

要求
最低受支持的客户端 在 NDIS 6.30 及更高版本中受支持。
标头 ndis.h

另请参阅

NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD

NDIS_NET_BUFFER_LIST_INFO

使用通用路由封装 (NVGRE) 任务卸载实现网络虚拟化

卸载校验和任务