NDIS_TCP_IP_CHECKSUM_OFFLOAD结构 (ntddndis.h)

NDIS_TCP_IP_CHECKSUM_OFFLOAD结构在 NDIS_OFFLOAD 结构中提供校验和任务卸载信息。

语法

typedef struct _NDIS_TCP_IP_CHECKSUM_OFFLOAD {
  struct {
    ULONG Encapsulation;
    ULONG IpOptionsSupported : 2;
    ULONG TcpOptionsSupported : 2;
    ULONG TcpChecksum : 2;
    ULONG UdpChecksum : 2;
    ULONG IpChecksum : 2;
  } IPv4Transmit;
  struct {
    ULONG Encapsulation;
    ULONG IpOptionsSupported : 2;
    ULONG TcpOptionsSupported : 2;
    ULONG TcpChecksum : 2;
    ULONG UdpChecksum : 2;
    ULONG IpChecksum : 2;
  } IPv4Receive;
  struct {
    ULONG Encapsulation;
    ULONG IpExtensionHeadersSupported : 2;
    ULONG TcpOptionsSupported : 2;
    ULONG TcpChecksum : 2;
    ULONG UdpChecksum : 2;
  } IPv6Transmit;
  struct {
    ULONG Encapsulation;
    ULONG IpExtensionHeadersSupported : 2;
    ULONG TcpOptionsSupported : 2;
    ULONG TcpChecksum : 2;
    ULONG UdpChecksum : 2;
  } IPv6Receive;
} NDIS_TCP_IP_CHECKSUM_OFFLOAD, *PNDIS_TCP_IP_CHECKSUM_OFFLOAD;

成员

IPv4Transmit

NDIS_TCP_IP_CHECKSUM_OFFLOAD中的一个结构,指定 IPv4 传输信息并包含以下成员:

IPv4Transmit.Encapsulation

IPv4 传输的封装设置。 有关此成员的详细信息,请参阅以下“备注”部分。

IPv4Transmit.IpOptionsSupported

微型端口驱动程序设置的 ULONG 值,指示微型端口适配器可以计算包含 IP 选项的 IPv4 发送数据包的 IP 校验和,或指示此功能已启用或禁用。

IPv4Transmit.TcpOptionsSupported

微型端口驱动程序设置的 ULONG 值,指示微型端口适配器可以计算包含 TCP 选项的 IPv4 发送数据包的 TCP 校验和,或指示此功能已启用或禁用。

IPv4Transmit.TcpChecksum

微型端口驱动程序设置为指示微型端口适配器可以计算 IPv4 发送数据包的 TCP 校验和的 ULONG 值。 TCP/IP 传输设置此值以启用此功能或指示此功能已启用或禁用。

IPv4Transmit.UdpChecksum

微型端口驱动程序设置为指示微型端口适配器可以计算 IPv4 发送数据包的 UDP 校验和,或指示此功能已启用或禁用的 ULONG 值。

IPv4Transmit.IpChecksum

微型端口驱动程序设置为指示微型端口适配器可以计算 IPv4 发送数据包的 IP 校验和,或指示此功能处于启用或禁用状态的 ULONG 值。

IPv4Receive

NDIS_TCP_IP_CHECKSUM_OFFLOAD中的一个结构,指定 IPv4 接收信息和包含以下成员:

IPv4Receive.Encapsulation

IPv4 接收的封装设置。 有关此成员的详细信息,请参阅以下“备注”部分。

IPv4Receive.IpOptionsSupported

微型端口驱动程序设置为指示微型端口适配器可以验证包含 IP 选项的 IPv4 接收数据包的 IP 校验和,或者指示已启用或禁用此功能的 ULONG 值。

IPv4Receive.TcpOptionsSupported

微型端口驱动程序设置的 ULONG 值,指示微型端口适配器可以计算包含 TCP 选项的 IPv4 接收数据包的 TCP 校验和,或指示此功能已启用或禁用。

IPv4Receive.TcpChecksum

微型端口驱动程序设置的 ULONG 值,指示微型端口适配器可以验证 IPv4 接收数据包的 TCP 校验和,或指示此功能已启用或禁用。

IPv4Receive.UdpChecksum

微型端口驱动程序设置为指示微型端口适配器可以验证 IPv4 接收数据包的 UDP 校验和或指示此功能已启用或禁用的 ULONG 值。

IPv4Receive.IpChecksum

微型端口驱动程序设置的 ULONG 值,指示微型端口适配器可以验证 IPv4 接收数据包的 IP 校验和,或指示此功能已启用或禁用。

IPv6Transmit

NDIS_TCP_IP_CHECKSUM_OFFLOAD中的一个结构,指定 IPv6 传输信息并包含以下成员:

IPv6Transmit.Encapsulation

IPv6 传输的封装设置。 有关此成员的详细信息,请参阅以下“备注”部分。

IPv6Transmit.IpExtensionHeadersSupported

微型端口驱动程序设置的 ULONG 值,指示微型端口适配器可以计算包含扩展标头的 IPv6 数据包的校验和。

IPv6Transmit.TcpOptionsSupported

微型端口驱动程序设置的 ULONG 值,指示微型端口适配器可以计算包含 TCP 选项的 IPv6 发送数据包的 TCP 校验和,或指示此功能已启用或禁用。

IPv6Transmit.TcpChecksum

微型端口驱动程序设置为指示微型端口适配器可以计算 IPv6 发送数据包的 TCP 校验和,或指示此功能处于启用或禁用状态的 ULONG 值。

IPv6Transmit.UdpChecksum

微型端口驱动程序设置为指示微型端口适配器可以计算 IPv6 发送数据包的 UDP 校验和,或指示此功能已启用或禁用的 ULONG 值。

IPv6Receive

NDIS_TCP_IP_CHECKSUM_OFFLOAD中的结构,指定 IPv6 接收信息并包含以下成员:

IPv6Receive.Encapsulation

IPv6 接收的封装设置。 有关此成员的详细信息,请参阅以下“备注”部分。

IPv6Receive.IpExtensionHeadersSupported

微型端口驱动程序设置的 ULONG 值,指示微型端口适配器可以验证包含扩展标头的 IPv6 数据包的校验和。

IPv6Receive.TcpOptionsSupported

微型端口驱动程序设置为指示微型端口适配器可以计算其 TCP 标头包含 TCP 选项的 IPv6 接收数据包的校验和,或指示此功能已启用或禁用。

IPv6Receive.TcpChecksum

微型端口驱动程序设置的 ULONG 值,指示微型端口适配器可以验证 IPv6 接收数据包的 TCP 校验和,或指示此功能已启用或禁用。

IPv6Receive.UdpChecksum

微型端口驱动程序设置为指示微型端口适配器可以验证 IPv6 接收数据包的 UDP 校验和,或指示此功能已启用或禁用的 ULONG 值。

言论

NDIS_TCP_IP_CHECKSUM_OFFLOAD结构用于 校验和NDIS_OFFLOAD 结构的成员中。 NDIS_TCP_IP_CHECKSUM_OFFLOAD结构指定微型端口适配器提供的用于计算发送数据包的 IP、TCP 或 UDP 校验和(或所有这些)的当前或受支持的服务,以及验证接收数据包的校验和。

NDIS_OFFLOAD用于 NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES 结构、NDIS_BIND_PARAMETERS 结构、 NDIS_FILTER_ATTACH_PARAMETERS 结构, OID_TCP_OFFLOAD_CURRENT_CONFIG OID 和 NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG 状态指示。

对于 OID_TCP_OFFLOAD_CURRENT_CONFIG,NDIS_OFFLOAD结构指定微型端口适配器支持的任务卸载功能。 如果当前卸载功能发生更改,微型端口驱动程序在 中报告新功能 NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG 状态指示。

封装 NDIS_TCP_IP_CHECKSUM_OFFLOAD的成员定义微型端口适配器的校验和卸载封装设置。

响应 OID_TCP_OFFLOAD_CURRENT_CONFIG 查询请求,NDIS 提供了封装标志的按位 OR,这些标志指示每个 封装 成员中支持的封装设置。 微型端口驱动程序必须提供以太网封装(NDIS_ENCAPSULATION_IEEE_802_3)。 其他类型的封装是可选的。

对于 NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG 状态指示,微型端口驱动程序提供了封装标志的按位 OR,这些标志指示每个 封装 成员中的当前功能。

封装 成员定义了以下标志:

  • NDIS_ENCAPSULATION_NOT_SUPPORTED
    指定不支持封装卸载。
  • NDIS_ENCAPSULATION_NULL
    指定 NULL 封装。
  • NDIS_ENCAPSULATION_IEEE_802_3
    指定 IEEE 802.3 封装。
  • NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q
    指定 IEEE 802.3p 和 IEEE 802.3q 封装。
  • NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q_IN_OOB
    指定在每个NET_BUFFER_LIST结构的 NetBufferListInfo 成员中指定 IEEE 802.3p 和 IEEE 802.3q 封装设置。
  • NDIS_ENCAPSULATION_IEEE_LLC_SNAP_ROUTED
    指定路由协议的逻辑链接控制(LLC)封装,如 RFC 1483 中所述。 此标志还用于指示以太网 LLC/SNAP 封装。

IpOptionsSupportedTcpOptionsSupportedIpExtensionHeadersSupported中值的含义,TcpChecksumUdpChecksumipChecksumNDIS_TCP_IP_CHECKSUM_OFFLOAD 成员取决于哪些 OID 或状态指示包括任务卸载结构。 这些成员可以具有以下值之一:

要求

要求 价值
最低支持的客户端 NDIS 6.0 及更高版本中受支持。
标头 ntddndis.h (include Ndis.h)

另请参阅

NDIS_BIND_PARAMETERS

NDIS_FILTER_ATTACH_PARAMETERS

NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES

NDIS_OFFLOAD

NDIS_OID_REQUEST

NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG

NET_BUFFER_LIST

OID_TCP_OFFLOAD_CURRENT_CONFIG