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.
- Windows Vista and later
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.