Determining the RSC Capabilities of a Network Adapter
A receive segment coalescing (RSC)-capable miniport driver reports its RSC capability by means of the NDIS_OFFLOAD structure that it passes to NdisMSetMiniportAttributes.
Reporting RSC Capability
In the NDIS_OFFLOAD structure, the Header member must be set as follows:
- The Revision member must be set to NDIS_OFFLOAD_REVISION_3.
- The Size member must be set to NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_3.
To report its support for RSC, a miniport driver can set the following members in the NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD structure, which is stored in the Rsc member of the NDIS_OFFLOAD structure:
Set the IPv4.Enabled member to TRUE to indicate support for RSC for IPv4.
Set the IPv6.Enabled member to TRUE to indicate support for RSC for IPv6.
The miniport driver must support RSC for at least IEEE 802.3 encapsulation. In addition, it can support RSC for any other encapsulations. If it does not support RSC for some encapsulation, and it receives packets of that encapsulation, the driver must indicate the packets up the stack normally.
Querying RSC Capability
To determine whether a miniport driver supports RSC, protocol drivers and other drivers can issue the OID_TCP_OFFLOAD_HARDWARE_CAPABILITIES OID request, which will return an NDIS_OFFLOAD structure.