NDIS_TASK_TCP_IP_CHECKSUM structure

Note   NDIS 5. x has been deprecated and is superseded by NDIS 6. x. For new NDIS driver development, see Network Drivers Starting with Windows Vista. For information about porting NDIS 5. x drivers to NDIS 6. x, see Porting NDIS 5.x Drivers to NDIS 6.0.

When supplied by a miniport driver in response to a query of OID_TCP_TASK_OFFLOAD, the NDIS_TASK_TCP_IP_CHECKSUM structure specifies the miniport driver's NIC's capabilities for calculating IP, TCP, and/or UDP checksums for send packets and validating such checksums for receive packets. When passed to a miniport driver in a set of OID_TCP_TASK_OFFLOAD, the structure specifies the checksum capabilities that the TCP/IP transport is enabling for the NIC.

Syntax

typedef struct _NDIS_TASK_TCP_IP_CHECKSUM {
  struct {
    ULONG IpOptionsSupported  :1;
    ULONG TcpOptionsSupported  :1;
    ULONG TcpChecksum  :1;
    ULONG UdpChecksum  :1;
    ULONG IpChecksum  :1;
  } V4Transmit;
  struct {
    ULONG IpOptionsSupported  :1;
    ULONG TcpOptionsSupported  :1;
    ULONG TcpChecksum  :1;
    ULONG UdpChecksum  :1;
    ULONG IpChecksum  :1;
  } V4Receive;
  struct {
    ULONG IpOptionsSupported  :1;
    ULONG TcpOptionsSupported  :1;
    ULONG TcpChecksum  :1;
    ULONG UdpChecksum  :1;
  } V6Transmit;
  struct {
    ULONG IpOptionsSupported  :1;
    ULONG TcpOptionsSupported  :1;
    ULONG TcpChecksum  :1;
    ULONG UdpChecksum  :1;
  } V6Receive;
} NDIS_TASK_TCP_IP_CHECKSUM, *PNDIS_TASK_TCP_IP_CHECKSUM;

Members

  • V4Transmit

    • IpOptionsSupported
      Set by a miniport driver to indicate that its NIC can calculate an IP checksum for an IPv4 send packet that contains IP options.

      This field implies IpExtensionHeaders support.

    • TcpOptionsSupported
      Set by a miniport driver to indicate that its NIC can calculate a TCP checksum for an IPv4 send packet that contains TCP options.

    • TcpChecksum
      Set by a miniport driver to indicate that its NIC can calculate a TCP checksum for an IPv4 send packet. Set by the TCP/IP transport to enable this capability.

    • UdpChecksum
      Set by a miniport driver to indicate that its NIC can validate an IPv4 receive packet's UDP checksum. Set by the TCP/IP transport to enable this capability.

    • IpChecksum
      Set by a miniport driver to indicate that its NIC can calculate an IP checksum for an IPv4 send packet. Set by the TCP/IP transport to enable this capability.

  • V4Receive

    • IpOptionsSupported
      Set by a miniport driver to indicate that its NIC can validate an IP checksum for an IPv4 receive packet that contains IP options.

      This field implies IpExtensionHeaders support.

    • TcpOptionsSupported
      Set by a miniport driver to indicate that its NIC can calculate a TCP checksum for an IPv4 receive packet that contains TCP options.

    • TcpChecksum
      Set by a miniport driver to indicate that its NIC can validate the TCP checksum for an IPv4 receive packet. Set by the TCP/IP transport to enable this capability.

    • UdpChecksum
      Set by a miniport driver to indicate that its NIC can validate an IPv4 receive packet's UDP checksum. Set by the TCP/IP transport to enable this capability.

    • IpChecksum
      Set by a miniport driver to indicate that its NIC can validate an IP checksum for an IPv4 receive packet. Set by the TCP/IP transport to enable this capability.

  • V6Transmit

    • IpOptionsSupported
      Set by a miniport driver to indicate that its NIC can calculate an IP checksum for an IPv6 send packet that contains IPv6 extension headers.

      This field implies IpExtensionHeaders support.

    • TcpOptionsSupported
      Set by a miniport driver to indicate that its NIC can calculate a TCP checksum for an IPv6 send packet that contains TCP options.

    • TcpChecksum
      Set by a miniport driver to indicate that its NIC can calculate a TCP checksum for an IPv6 send packet. Set by the TCP/IP transport to enable this capability.

    • UdpChecksum
      Set by a miniport driver to indicate that its NIC can calculate a UDP checksum for an IPv6 send packet. Set by the TCP/IP transport to enable this capability.

  • V6Receive

    • IpOptionsSupported
      Set by a miniport driver to indicate that its NIC can validate IP checksum(s) for an IPv6 receive packet whose IP header(s) contains IPv6 extension headers.

      This field implies IpExtensionHeaders support.

    • TcpOptionsSupported
      Set by a miniport driver to indicate that its NIC can calculate a checksum for an IPv6 receive packet whose TCP header contains TCP options.

    • TcpChecksum
      Set by a miniport driver to indicate that its NIC can validate an IPv6 receive packet's TCP checksum. Set by the TCP/IP transport to enable this capability.

    • UdpChecksum
      Set by a miniport driver to indicate that its NIC can validate a UDP checksum for an IPv6 receive packet. Set by the TCP/IP transport to enable this capability.

Remarks

In response to a query of OID_TCP_TASK_OFFLOAD, a miniport driver returns in the InformationBuffer an NDIS_TASK_OFFLOAD_HEADER structure followed immediately by one or more chained NDIS_TASK_OFFLOAD structures. Each NDIS_TASK_OFFLOAD structure specifies a task-offload capability supported by the miniport driver's NIC.

When the Task member of the NDIS_TASK_OFFLOAD structure specifies TcpIpChecksumNdisTask, the TaskBuffer of the NDIS_TASK_OFFLOAD structure contains an NDIS_TASK_TCP_IP_CHECKSUM structure.

When returned by a miniport driver in response to the TCP/IP transport's query of OID_TCP_TASK_OFFLOAD, the NDIS_TASK_TCP_IP_CHECKSUM structure specifies the miniport driver's capabilities for performing checksum tasks on both send and receive packets. When passed to a miniport driver by the TCP/IP transport's set of OID_TCP_TASK_OFFLOAD, the NDIS_TASK_TCP_IP_CHECKSUM structure specifies the checksum capabilities that the transport is enabling.

The NDIS_TASK_TCP_IP_CHECKSUM structure allows a miniport driver to indicate UDP checksum capabilities. The initial release of Windows 2000 does not support UDP checksum offloads; however, future service packs and update releases of Windows 2000 may support UDP checksum offloads.

The NDIS_TASK_TCP_IP_CHECKSUM structure also allows a miniport driver to indicate checksum capabilities for IPv6 packets. The TCP/IP transport in the initial release of Windows 2000, however, can process only IPv4 packets and therefore does not enable any IPv6 checksum capabilities reported by a miniport driver. Future versions of the TCP/IP transport may support the processing of IPv6 packets.

Requirements

Header

Ndis.h (include Ndis.h)

See also

NDIS_TASK_OFFLOAD

NDIS_TASK_OFFLOAD_HEADER

 

 

Send comments about this topic to Microsoft