(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 。 当 IsEncapsulatedPacket 为 TRUE 时,现有标头偏移字段 NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO。LsoV2Transmit。TcpHeaderOffset 和 NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO。传输。TcpHeaderOffset 没有正确的值,NIC 或驱动程序不得使用。 相反,微型端口驱动程序必须使用此结构的其他成员中指定的偏移量。
EncapsulatedPacketOffsets.EncapsulatedPacketOffsetsValid
如果此成员为 TRUE,则 InnerFrameOffset、 TransportIpHeaderRelativeOffset 和 TcpHeaderRelativeOffset 成员具有有效值。
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 结构中指定 TcpIpChecksumNetBufferListInfo 或 TcpLargeSendNetBufferListInfo 时 ,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 |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈