NDIS_TASK_TCP_LARGE_SEND 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_LARGE_SEND structure specifies the miniport driver's NIC's capabilities for segmenting large TCP packets into smaller packets. When passed to a miniport driver in a set of OID_TCP_TASK_OFFLOAD, the structure specifies the packet-segmentation capabilities that the TCP/IP transport is enabling for the NIC.

Syntax

typedef struct _NDIS_TASK_TCP_LARGE_SEND {
  ULONG   Version;
  ULONG   MaxOffLoadSize;
  ULONG   MinSegmentCount;
  BOOLEAN TcpOptions;
  BOOLEAN IpOptions;
} NDIS_TASK_TCP_LARGE_SEND, *PNDIS_TASK_TCP_LARGE_SEND;

Members

  • Version
    Miniport drivers should set this to zero.

  • MaxOffLoadSize
    A miniport driver sets this to the maximum bytes of user data that the transport can pass to the miniport driver in a single packet. The transport will not pass a packet to the miniport driver that contains more than MaxOffLoadSize user data bytes. If such a packet must be transmitted, the transport itself segments the packet into smaller packets.

  • MinSegmentCount
    A miniport driver sets this value to the minimum number of segments that a large TCP packet must be divisible by before the transport can offload it to a NIC for segmentation. The transport will not offload a large packet to the miniport driver for segmentation unless the miniport driver can create at least MinSegmentCount segments from the packet. If a large TCP packet does not meet the minimum-segment requirement, the TCP/IP transport itself segments the packet into smaller packets. The purpose of the MinSegmentCount value is to set a threshold below which it is not worthwhile, for performance reasons, to offload the segmentation of a large packet. You must determine the optimal MinSegmentCount value for your NIC.

  • TcpOptions
    Set by a miniport driver to indicate that the miniport driver can segment a large TCP packet whose TCP header contains TCP options. Set by the TCP/IP transport to enable this capability.

  • IpOptions
    Set by a miniport driver to indicate that its NIC can segment a large TCP packet whose IP header contains IP options. 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 TcpLargeSendNdisTask, the TaskBuffer of the NDIS_TASK_OFFLOAD structure contains an NDIS_TASK_TCP_LARGE_SEND 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_LARGE_SEND structure specifies a NIC's capabilities for segmenting a large TCP packet into smaller TCP packets. When passed to a miniport driver through the TCP/IP transport's set of OID_TCP_TASK_OFFLOAD, the NDIS_TASK_TCP_LARGE_SEND structure specifies the TCP-packet-segmentation capabilities that the transport is enabling.

Requirements

Header

Ndis.h (include Ndis.h)

See also

OID_TCP_TASK_OFFLOAD

NDIS_TASK_OFFLOAD

NDIS_TASK_OFFLOAD_HEADER

 

 

Send comments about this topic to Microsoft