This documentation is archived and is not being maintained.

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

Show: