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

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

IPv4Transmit.IpChecksum

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

IPv4Receive

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

IPv4Receive.Encapsulation

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

IPv4Receive.IpOptionsSupported

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

IPv4Receive.TcpOptionsSupported

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

IPv4Receive.TcpChecksum

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

IPv4Receive.UdpChecksum

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

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

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

IPv6Transmit.UdpChecksum

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

IPv6Receive

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

IPv6Receive.Encapsulation

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

IPv6Receive.IpExtensionHeadersSupported

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

IPv6Receive.TcpOptionsSupported

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

IPv6Receive.TcpChecksum

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

IPv6Receive.UdpChecksum

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

注解

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 封装。

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

要求

要求
最低受支持的客户端 在 NDIS 6.0 及更高版本中受支持。
标头 ntddndis.h (包括 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