OID_GEN_RECEIVE_SCALE_PARAMETERS_V2
Advertencia
Parte de la información de este tema está relacionada con el producto de versión preliminar, que puede modificarse sustancialmente antes de que se publique comercialmente. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
RSSv2 solo está en versión preliminar en Windows 10, versión 1809.
El OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 OID se envía a los controladores de miniport compatibles con RSSv2 para establecer parámetros en tiempo de ejecución, excepto la tabla de direccionamiento indirecto, para una entidad de escalado. OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 reemplaza el OID de OID_GEN_RECEIVE_SCALE_PARAMETERS de RSSv1 y no es visible para los filtros de peso ligero NDIS (LWF) antes de NDIS 6.80. Este OID es un OID normal y se puede emitir como una solicitud Query o Set. Se emite en IRQL == PASSIVE_LEVEL. Puede tener como destino una VPort determinada, cuando la marca de NDIS_OID_REQUEST_FLAGS_VPORT_ID_VALID se establece en la creación del conmutador NIC. De lo contrario, tiene como destino la NIC física en el caso RSS nativo.
Como consulta, los controladores NDIS y los controladores de exceso pueden usar OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 para consultar los parámetros RSS de una NIC. NDIS devuelve una estructura NDIS_RECEIVE_SCALE_PARAMETERS_V2 que define los parámetros RSS actuales.
Como conjunto, el propósito de este OID es realizar las siguientes acciones:
- Configure inicialmente la entidad de escalado (un adaptador de minipuerto en modo RSS nativo o una VPort en modo VMQ).
- Habilite o deshabilite RSS.
- Cuando se encuentra en modo RSS, realice funciones de administración no críticas para el tiempo, como cambiar la clave hash, el tipo hash y la función hash, el número de colas o el número de entradas de tabla de direccionamiento indirecto para la entidad de escalado.
Observaciones
La habilitación de RSS y el establecimiento de parámetros RSS se pueden realizar en un paso. Una vez que la capa superior habilita RSS mediante este OID, el estado inicial de la entidad de escalado es el siguiente:
- El procesador principal se vuelve inactivo.
- El procesador predeterminado se activa.
- Todas las ITE se activan.
- El controlador de minipuerto inicia el cálculo del hash RSS, la configuración del OOB correspondiente para todos los paquetes y el direccionamiento de paquetes a un procesador especificado por la entrada de tabla de direccionamiento indirecto o el parámetro de procesador predeterminado.
Una vez habilitado RSS, la capa superior emite el OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES OID para mover ITE a diferentes procesadores. En RSSv2, DefaultQueue y PrimaryProcessor también se mueven a otro procesador mediante OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES.
Durante el proceso de deshabilitación de RSS, la capa superior apuntará todas las ITE al procesador principal antes de invocar este OID para desactivar RSS. Después de este punto, el tráfico de recepción debe tener como destino el procesador principal. Sin embargo, los controladores de minipuerto no deben esperar la deshabilitación de RSS antes de la eliminación de VPort. La capa superior puede establecer el filtro de recepción en VPort en cero, lo que garantiza que ningún tráfico de recepción fluya a través de VPort y, a continuación, continúe con la eliminación de VPort sin deshabilitar RSS.
La capa superior garantizará que las invariables importantes no se infrinjan antes de realizar funciones de administración. Por ejemplo:
- Antes de cambiar el número de colas, la capa superior garantizará que la tabla de direccionamiento indirecto no haga referencia a más procesadores de los configurados para una VPort. Antes de cambiar el número de entradas de tabla de direccionamiento indirecto para adaptadores VMMQ-RESTRICTED, la capa superior garantizará que el contenido de la tabla de direccionamiento indirecto se normalice con la potencia de 2.
Condiciones de error y códigos de estado
Este OID devuelve los siguientes códigos de estado cuando se produce un error:
status code | Condición de error |
---|---|
NDIS_STATUS_INVALID_LENGTH | El OID tenía un formato incorrecto. |
NDIS_STATUS_NO_QUEUES | El número de colas se cambia cuando RSS está habilitado, pero la tabla de direccionamiento indirecto actual hace referencia a más procesadores que el nuevo número de colas. |
NDIS_STATUS_INVALID_DATA |
|
NDIS_STATUS_INVALID_PARAMETER | Otros campos, ya sea en el encabezado o en el propio OID, contienen valores no válidos. |
Requisitos
Versión: Windows 10, versión 1709 Header: Ntddndis.h (include Ndis.h)