NDIS_RECEIVE_SCALE_CAPABILITIES estructura (ntddndis.h)

La estructura NDIS_RECEIVE_SCALE_CAPABILITIES especifica las funcionalidades de escalado lateral de recepción (RSS) de un adaptador de minipuerto.

Sintaxis

typedef struct _NDIS_RECEIVE_SCALE_CAPABILITIES {
  NDIS_OBJECT_HEADER  Header;
  NDIS_RSS_CAPS_FLAGS CapabilitiesFlags;
  ULONG               NumberOfInterruptMessages;
  ULONG               NumberOfReceiveQueues;
  USHORT              NumberOfIndirectionTableEntries;
} NDIS_RECEIVE_SCALE_CAPABILITIES, *PNDIS_RECEIVE_SCALE_CAPABILITIES;

Miembros

Header

Estructura NDIS_OBJECT_HEADER para la estructura de NDIS_RECEIVE_SCALE_CAPABILITIES . Establezca el miembro Type de la estructura que Header especifica para NDIS_OBJECT_TYPE_RSS_CAPABILITIES.

Para NDIS 6.60 y versiones posteriores, establezca el miembro Revision en NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_3 y el miembro Sizeen NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_3.

Para NDIS 6.30 y versiones posteriores, establezca el miembro Revision en NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_2 y el miembro Sizeen NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_2.

Para NDIS 6.0, 6.1 y 6.20, establezca el miembro Revisionen NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_1 y el miembro Size en NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_1.

CapabilitiesFlags

Máscara de bits de marcas que especifican las funcionalidades RSS de la NIC. El controlador de minipuerto puede especificar las marcas siguientes:

Valor Significado
NDIS_RSS_CAPS_MESSAGE_SIGNALED_INTERRUPTS
Establezca esta marca si la NIC admite interrupciones señaladas por mensajes (MSIs). Esta marca indica que la NIC puede generar una interrupción independiente para cada CPU después de poner en cola los paquetes asignados a esa CPU.
NDIS_RSS_CAPS_CLASSIFICATION_AT_ISR
Establezca esta marca si la NIC puede indicar a la función MiniportInterrupt qué CPU de destino han puesto en cola los paquetes recibidos.
NDIS_RSS_CAPS_USING_MSI_X
Establezca esta marca si la NIC usa interrupciones señaladas de mensaje (MSIs). Esta marca se admite en NDIS 6.20 y versiones posteriores.
NDIS_RSS_CAPS_SUPPORTS_MSI_X
Establezca esta marca si la NIC admite MSIs. Esta marca se admite en NDIS 6.30 y versiones posteriores.
NDIS_RSS_CAPS_CLASSIFICATION_AT_DPC
Establezca esta marca si el controlador de miniporte puede detectar qué CPU de destino han puesto en cola los paquetes de recepción de su función MiniportInterruptDPC .
NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV4
Establezca esta marca si la NIC puede identificar un paquete IPv4 (con o sin opciones). Además, la NIC admite el cálculo del valor hash sobre los campos de encabezado IPv4 y los campos de encabezado TCP.
NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6
Establezca esta marca si la NIC puede identificar un paquete IPv6 y calcular un valor hash en los campos de un paquete IPv6. La NIC debe ser capaz de calcular un valor hash en los campos del encabezado IPv6 básico y sobre los campos del encabezado TCP. Use esta marca si la NIC no puede calcular un valor hash en campos que se encuentran en encabezados de extensión IPv6.
NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6_EX
Establezca esta marca si la NIC puede identificar un paquete IPv6 y calcular un valor hash en los campos de un paquete IPv6 que contiene encabezados de extensión IPv6. La NIC puede calcular un valor hash en los campos del encabezado IPv6 básico, los encabezados de extensión IPv6 y el encabezado TCP. La NIC debe ser capaz de calcular valores hash en los campos de la opción de dirección principal y el encabezado de enrutamiento de tipo 2 en los encabezados de extensión IPv6.
NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV4
Establezca esta marca si la NIC puede identificar un paquete IPv4, con o sin opciones, y si la NIC admite el cálculo del valor hash sobre los campos de encabezado IPv4 y los campos de encabezado UDP.
NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6
Establezca esta marca si la NIC puede identificar un paquete IPv6 y calcular un valor hash en los campos de un paquete IPv6. La NIC debe ser capaz de calcular un valor hash en los campos del encabezado IPv6 básico y sobre los campos del encabezado UDP. Use esta marca si la NIC no puede calcular un valor hash en campos que se encuentran en encabezados de extensión IPv6.
NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6_EX
Establezca esta marca si la NIC puede identificar un paquete IPv6 y calcular un valor hash en los campos de un paquete IPv6 que contiene encabezados de extensión IPv6. La NIC puede calcular un valor hash en los campos del encabezado IPv6 básico, los encabezados de extensión IPv6 y el encabezado UDP. La NIC debe ser capaz de calcular valores hash en los campos de la opción de dirección principal y el encabezado de enrutamiento de tipo 2 en los encabezados de extensión IPv6.
NdisHashFunctionToeplitz
Establezca esta marca si la NIC admite la función hash toeplitz. Si la NIC admite RSS, la compatibilidad con la función hash es obligatoria. Para obtener más información sobre las funciones hash, consulte NDIS_RSS_HASH_FUNC_FROM_HASH_INFO.
NdisHashFunctionReserved1
Esta marca se reserva para uso futuro.
NdisHashFunctionReserved2
Esta marca se reserva para uso futuro.
NdisHashFunctionReserved3
Esta marca se reserva para uso futuro.

NumberOfInterruptMessages

Número de mensajes de interrupción que admite la NIC si la NIC admite MSIs. Si la NIC no admite MSIs, pero admite interrupciones basadas en línea, establezca este número en 1.

NumberOfReceiveQueues

El número de colas de recepción de hardware que admite la NIC.

NumberOfIndirectionTableEntries

Número máximo de entradas que admite el controlador de minipuerto en la tabla de direccionamiento indirecto. Este valor debe ser una potencia de 2. Todos los adaptadores de minipuerto NDIS 6.30 y versiones posteriores deben admitir este miembro, que es necesario para las funciones virtuales.

Comentarios

Los controladores que se sobreponen pueden usar OID_GEN_RECEIVE_SCALE_CAPABILITIES OID para consultar las funcionalidades de escalado lateral de recepción (RSS) de una NIC y su controlador de minipuerto.

El controlador de minipuerto devuelve las funcionalidades RSS en una estructura NDIS_RECEIVE_SCALE_CAPABILITIES .

En algunas cargas de trabajo, se podría fragmentar un subconjunto de paquetes UDP debido a cambios de ruta o al remitente que no cumple las limitaciones de MTU. En tales casos excepcionales, los paquetes del mismo flujo podrían indicarse en procesadores diferentes basados en el hash de 4-tupla o 2-tupla. Por lo tanto, los controladores de minipuerto que anuncian NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV4, NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6 y NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6_EX deben proporcionar una manera de deshabilitar las funcionalidades RSS de UDP a través de propiedades avanzadas.

Requisitos

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

Consulte también

MiniportInterrupt

MiniportInterruptDPC

NDIS_OBJECT_HEADER

NDIS_RSS_HASH_FUNC_FROM_HASH_INFO OID_GEN_RECEIVE_SCALE_CAPABILITIES

Receive Side Scaling (RSS)