estructura NDIS_RSS_SET_INDIRECTION_ENTRY (ntddndis.h)

Advertencia

Parte de la información de este tema se relaciona con el producto de versión preliminar, que puede modificarse sustancialmente antes de su lanzamiento comercial. 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 1803.

La estructura NDIS_RSS_SET_INDIRECTION_ENTRY representa un comando para establecer una única entrada de tabla de direccionamiento indirecto. Se encuentra en una estructura NDIS_RSS_SET_INDIRECTION_ENTRIES , que se usa en el OID de OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES . OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES es un OID sincrónico para RSS versión 2 (RSSv2).

Sintaxis

typedef struct _NDIS_RSS_SET_INDIRECTION_ENTRY {
  NDIS_NIC_SWITCH_ID       SwitchId;
  NDIS_NIC_SWITCH_VPORT_ID VPortId;
  ULONG                    Flags;
  USHORT                   IndirectionTableIndex;
  PROCESSOR_NUMBER         TargetProcessorNumber;
  NDIS_STATUS              EntryStatus;
} NDIS_RSS_SET_INDIRECTION_ENTRY, *PNDIS_RSS_SET_INDIRECTION_ENTRY;

Miembros

SwitchId

Valor de NDIS_NIC_SWITCH_ID que representa el conmutador NIC donde reside el VPort.

El identificador del conmutador es un entero entre cero y el número de conmutadores que admite el adaptador de red. Un valor de NDIS_DEFAULT_SWITCH_ID indica el conmutador de adaptador de red predeterminado.

Este campo debe establecerse en 0 en el caso RSS nativo.

VPortId

Valor NDIS_NIC_SWITCH_VPORT_ID que representa el identificador VPort.

Este campo debe establecerse en 0 en el caso RSS nativo.

Flags

Valor ULONG que contiene un OR bit a bit de marcas. Este miembro califica la información de esta estructura.

Las marcas posibles son las siguientes:

Valor Significado
NDIS_RSS_SET_INDIRECTION_ENTRY_FLAG_PRIMARY_PROCESSOR
Indica que el NDIS_RSS_SET_INDIRECTION_ENTRY hace referencia al procesador principal de la entidad de escalado. No se usa la tabla de direccionamiento indirecto. Cuando el procesador principal es *inactivo* (RSS está habilitado), el controlador de minipuerto debe realizar un seguimiento de las actualizaciones de las entradas con este conjunto de marcas para que sepa qué procesador será el principal cuando se deshabilite RSS.
NDIS_RSS_SET_INDIRECTION_ENTRY_FLAG_DEFAULT_PROCESSOR
Indica que el NDIS_RSS_SET_INDIRECTION_ENTRY hace referencia al procesador predeterminado de la entidad de escalado. El procesador predeterminado controla los paquetes sin guardar. No se usa la tabla de direccionamiento indirecto. Cuando el procesador predeterminado es *inactivo* (RSS está deshabilitado), el controlador de minipuerto debe realizar un seguimiento de las actualizaciones de las entradas con este conjunto de marcas para que sepa qué procesador será predeterminado cuando RSS esté habilitado.

IndirectionTableIndex

Índice hash del ITE que apunta actualmente a la CPU actual y que se está modificando para que apunte a otro procesador. Cuando la tabla de direccionamiento indirecto está inactiva (RSS está deshabilitada), el controlador de minipuerto debe realizar un seguimiento de las actualizaciones de las entradas de la tabla de direccionamiento indirecto para que tenga la tabla de direccionamiento indirecta correcta cuando RSS esté habilitado.

TargetProcessorNumber

Número de procesador de destino al que debe apuntar el ITE tras la finalización. El controlador de minipuerto debe realizar correctamente el movimiento de ITE del procesador actual al actual.

EntryStatus

Código NDIS_STATUS que indica el estado de la operación de movimiento para esta entrada. Dado que NDIS_RSS_SET_INDIRECTION_ENTRY se usa en el contexto de una llamada OID sincrónica, el controlador de minipuerto no puede devolver NDIS_STATUS_PENDING para este miembro.

Para simplificar la implementación de los controladores de miniporte, el protocolo de nivel superior inicializará este campo para NDIS_STATUS_PENDING. Los controladores de minipuerto deben sobrescribir NDIS_STATUS_PENDING con un código de estado NDIS correcto o erróneo. Si la capa superior detecta que este campo sigue NDIS_STATUS_PENDING tras la finalización del OID de OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES , provocará una comprobación de errores del sistema e indicará que el controlador de miniporte está en error.

Importante

Todas las NDIS_RSS_SET_INDIRECTION_ENTRY estructuras de un grupo, contenidas en una estructura de NDIS_RSS_SET_INDIRECTION_ENTRIES , deben marcarse con el mismo EntryStatus.

Si se produce un error con este comando de movimiento, establezca EntryStatus en uno de los siguientes códigos de estado para esa condición de error:

status code Condición de error
NDIS_STATUS_INVALID_PARAMETER
  • El miembro SwitchId o VPortId no era válido.
  • El miembro Flags no era válido.
  • El miembro IndirectionTableIndex supera los numberOfIndirectionTableEntries configurados actualmente de la estructura NDIS_RECEIVE_SCALE_PARAMETERS_V2 .
NDIS_STATUS_INVALID_PORT_STATE VPort no está activado o está en algún otro estado que impide que acepte identificadores de identificadores de RSSv2.
NDIS_STATUS_NOT_ACCEPTED La CPU del actor no era válida.
NDIS_STATUS_INVALID_DATA Para un parámetro de dirección activo , el nuevo procesador no forma parte del conjunto de procesadores RSS del adaptador. Tenga en cuenta que solo es necesario realizar un seguimiento de los parámetros inactivos . Se validan más adelante, durante la transición de estado RSS (a activado o desactivado).
NDIS_STATUS_NO_QUEUES Un grupo de entradas de comando produce un error en la comprobación de "número de colas" para el VPort especificado por ese grupo.

Requisitos

Requisito Value
Cliente mínimo compatible Se admite en NDIS 6.80 y versiones posteriores.
Encabezado ntddndis.h (include Ndis.h)

Consulte también

NDIS_RSS_SET_INDIRECTION_ENTRIES

OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES

Escalado lateral de recepción versión 2 (RSSv2)

Interfaz de solicitud de OID sincrónica en NDIS 6.80