Share via


Summary of NDIS 6.0 Task Offload Porting Issues for Miniport Drivers

The following list summarizes the issues that you must consider when you port offload-capable miniport drivers to NDIS 6.0:

  • All of the general NDIS 6.0 porting issues apply to porting task offload drivers. For general issues about porting miniport drivers to NDIS 6.0, see Porting Miniport Drivers to NDIS 6.0.

  • Miniport drivers must provide the offload capabilities of a miniport adapter in the NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES structure. Miniport drivers call the NdisMSetMiniportAttributes function from the MiniportInitializeEx function and pass the information in NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES.

  • Miniport drivers must support the following NDIS 6.0 offload object identifiers (OIDs):

    OID_OFFLOAD_ENCAPSULATION
    As a set request, use the OID_OFFLOAD_ENCAPSULATION OID to set the task offload encapsulation settings of a miniport adapter.

    OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES
    As a set request, use the OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES OID to enable or disable the connection offload services of a miniport adapter.

    OID_TCP_OFFLOAD_PARAMETERS
    As a set request, use the OID_TCP_OFFLOAD_PARAMETERS OID to set the current offload capabilities of a miniport adapter. Protocol drivers or user-mode applications can set this OID to change the current task offload capabilities. A system administrator can use this OID through the Windows Management Instrumentation (WMI) interface.

  • All of the task offload capabilities that a miniport adapter supports are enabled by default. Miniport drivers must support Ethernet encapsulation for all task offload types that they support. These drivers can also support virtual LAN (VLAN) encapsulation and logical link control (LLC) SNAP encapsulation. The available services are first activated when an overlying protocol driver sets the OID_OFFLOAD_ENCAPSULATION OID. Connection offload services are separate from task offload; their operations are enabled by a set request of OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES.

  • Miniport drivers must report changes in the task offload capabilities, if any, in the NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG status indication. For example, consider a load balance failover (LBFO) driver that is installed over two network interface cards (NICs). If an offload-capable NIC fails and send requests must go to a non-offload-capable NIC, the task offload capabilities in the driver stack must be updated.

  • Miniport drivers must handle large send offload version 1 (LSOV1) and large send offload version 2 (LSOV2) out-of-band (OOB) information. The information is stored in the NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO structure that is part of the OOB information that is included in a NET_BUFFER_LIST structure.