OID_GEN_RECEIVE_SCALE_PARAMETERS

As a query, NDIS and overlying drivers can use the OID_GEN_RECEIVE_SCALE_PARAMETERS OID to query the current receive side scaling (RSS) parameters of a NIC. NDIS returns an NDIS_RECEIVE_SCALE_PARAMETERS structure that defines the current RSS parameters.

As a set, NDIS and overlying drivers use the OID_GEN_RECEIVE_SCALE_PARAMETERS OID to set the current RSS parameters of a NIC. The miniport driver receives an NDIS_RECEIVE_SCALE_PARAMETERS structure that defines the RSS parameters.

Note

In RSSv2, this OID is only used to query current RSS parameters of a given scaling entity. For miniport drivers that support RSSv2, see OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 for setting RSS parameters other than the indirection table.

Remarks

For NDIS miniport drivers, the query is not requested and the set is required for drivers that support RSS. NDIS handles the query for miniport drivers.

The TCP/IP driver configures IPv4 and IPv6 with a single OID set request of OID_GEN_RECEIVE_SCALE_PARAMETERS. That is, when the stack should enable RSS for both IPv4 and IPv6, it sets both of the corresponding flags in the HashInformation member of the NDIS_RECEIVE_SCALE_PARAMETERS structure and sends one OID request. Also, IPv4 and IPv6 use the same secret key and the key will always be 40 bytes, even if only IPv4 is enabled.

The underlying miniport adapter must use the most recent OID_GEN_RECEIVE_SCALE_PARAMETERS OID settings it has received. For example, if the miniport gets an OID_GEN_RECEIVE_SCALE_PARAMETERS OID with the IPv4 hash types missing, it must disable IPv4 RSS if it was previously enabled.

Note  An overlying driver can use the OID_GEN_RECEIVE_HASH OID to enable and configure hash calculations on received frames without enabling RSS.

Note  Protocol drivers must disable receive hash calculations (OID_GEN_RECEIVE_HASH) before they enable RSS. If RSS is enabled, a protocol driver disables RSS before it enables receive hash calculations. A miniport driver should fail a set request with NDIS_STATUS_INVALID_OID or NDIS_STATUS_NOT_SUPPORTED to enable RSS if OID_GEN_RECEIVE_HASH is currently enabled.

Note  The indirection table and secret key are appended after the NDIS_RECEIVE_SCALE_PARAMETERS structure members. For more information about the indirection table and secret key, see NDIS_RECEIVE_SCALE_PARAMETERS.

Requirements

Version

Supported in NDIS 6.0 and later.

Header

Ntddndis.h (include Ndis.h)

See also

NDIS_RECEIVE_SCALE_PARAMETERS

OID_GEN_RECEIVE_HASH