structure NDIS_RECEIVE_SCALE_CAPABILITIES (ntddndis.h)

La structure NDIS_RECEIVE_SCALE_CAPABILITIES spécifie les fonctionnalités de mise à l’échelle côté réception (RSS) d’un adaptateur miniport.

Syntaxe

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;

Membres

Header

Structure NDIS_OBJECT_HEADER de la structure NDIS_RECEIVE_SCALE_CAPABILITIES . Définissez le membre Type de la structure que l’en-tête spécifie sur NDIS_OBJECT_TYPE_RSS_CAPABILITIES.

Pour NDIS 6.60 et versions ultérieures, définissez le membre Revisionsur NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_3 et le membre Sizesur NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_3.

Pour NDIS 6.30 et versions ultérieures, définissez le membre Revisionsur NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_2 et le membre Sizesur NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_2.

Pour NDIS 6.0, 6.1 et 6.20, définissez le membre Revisionsur NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_1 et le membre Size sur NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_1.

CapabilitiesFlags

Masque de bits d’indicateurs qui spécifient les fonctionnalités RSS de la carte réseau. Le pilote miniport peut spécifier les indicateurs suivants :

Valeur Signification
NDIS_RSS_CAPS_MESSAGE_SIGNALED_INTERRUPTS
Définissez cet indicateur si la carte réseau prend en charge les interruptions signalées par message (MSIs). Cet indicateur indique que la carte réseau peut générer une interruption distincte pour chaque processeur après avoir mis en file d’attente les paquets qui sont affectés à ce processeur.
NDIS_RSS_CAPS_CLASSIFICATION_AT_ISR
Définissez cet indicateur si la carte réseau peut indiquer à la fonction MiniportInterrupt quels processeurs cibles ont mis en file d’attente les paquets reçus.
NDIS_RSS_CAPS_USING_MSI_X
Définissez cet indicateur si la carte réseau utilise des interruptions signalées par message (MSIs). Cet indicateur est pris en charge dans NDIS 6.20 et versions ultérieures.
NDIS_RSS_CAPS_SUPPORTS_MSI_X
Définissez cet indicateur si la carte d’interface réseau prend en charge les IMS. Cet indicateur est pris en charge dans NDIS 6.30 et versions ultérieures.
NDIS_RSS_CAPS_CLASSIFICATION_AT_DPC
Définissez cet indicateur si le pilote miniport peut détecter les processeurs cibles qui ont mis en file d’attente les paquets de réception de sa fonction MiniportInterruptDPC .
NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV4
Définissez cet indicateur si la carte réseau peut identifier un paquet IPv4 (avec ou sans options). En outre, la carte réseau prend en charge le calcul de la valeur de hachage sur les champs d’en-tête IPv4 et les champs d’en-tête TCP.
NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6
Définissez cet indicateur si la carte réseau peut identifier un paquet IPv6 et calculer une valeur de hachage sur les champs d’un paquet IPv6. La carte réseau doit être en mesure de calculer une valeur de hachage sur les champs de l’en-tête IPv6 de base et sur les champs de l’en-tête TCP. Utilisez cet indicateur si la carte réseau ne peut pas calculer une valeur de hachage sur des champs situés dans des en-têtes d’extension IPv6.
NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6_EX
Définissez cet indicateur si la carte réseau peut identifier un paquet IPv6 et calculer une valeur de hachage sur les champs d’un paquet IPv6 qui contient des en-têtes d’extension IPv6. La carte réseau peut calculer une valeur de hachage sur des champs dans l’en-tête IPv6 de base, les en-têtes d’extension IPv6 et l’en-tête TCP. La carte réseau doit être en mesure de calculer les valeurs de hachage sur les champs de l’option d’adresse d’accueil et l’en-tête de routage de type 2 dans les en-têtes d’extension IPv6.
NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV4
Définissez cet indicateur si la carte réseau peut identifier un paquet IPv4, avec ou sans options, et si la carte réseau prend en charge le calcul de la valeur de hachage sur les champs d’en-tête IPv4 et les champs d’en-tête UDP.
NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6
Définissez cet indicateur si la carte réseau peut identifier un paquet IPv6 et calculer une valeur de hachage sur les champs d’un paquet IPv6. La carte réseau doit être en mesure de calculer une valeur de hachage sur les champs de l’en-tête IPv6 de base et sur les champs de l’en-tête UDP. Utilisez cet indicateur si la carte réseau ne peut pas calculer une valeur de hachage sur des champs situés dans des en-têtes d’extension IPv6.
NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6_EX
Définissez cet indicateur si la carte réseau peut identifier un paquet IPv6 et calculer une valeur de hachage sur les champs d’un paquet IPv6 qui contient des en-têtes d’extension IPv6. La carte réseau peut calculer une valeur de hachage sur des champs dans l’en-tête IPv6 de base, les en-têtes d’extension IPv6 et l’en-tête UDP. La carte réseau doit être en mesure de calculer les valeurs de hachage sur les champs de l’option d’adresse d’accueil et l’en-tête de routage de type 2 dans les en-têtes d’extension IPv6.
NdisHashFunctionToeplitz
Définissez cet indicateur si la carte réseau prend en charge la fonction de hachage toeplitz. Si la carte réseau prend en charge RSS, la prise en charge de la fonction de hachage est obligatoire. Pour plus d’informations sur les fonctions de hachage, consultez NDIS_RSS_HASH_FUNC_FROM_HASH_INFO.
NdisHashFunctionReserved1
Cet indicateur est réservé pour une utilisation future.
NdisHashFunctionReserved2
Cet indicateur est réservé pour une utilisation future.
NdisHashFunctionReserved3
Cet indicateur est réservé pour une utilisation future.

NumberOfInterruptMessages

Nombre de messages d’interruption pris en charge par la carte réseau si la carte réseau prend en charge les MCI. Si la carte réseau ne prend pas en charge les MSIs, mais prend en charge les interruptions basées sur les lignes, définissez ce nombre sur 1.

NumberOfReceiveQueues

Nombre de files d’attente de réception matérielles que la carte réseau prend en charge.

NumberOfIndirectionTableEntries

Nombre maximal d’entrées que le pilote miniport prend en charge dans la table d’indirection. Cette valeur doit être une puissance de 2. Tous les adaptateurs NDIS 6.30 et versions ultérieures de miniport doivent prendre en charge ce membre, ce qui est requis pour les fonctions virtuelles.

Remarques

Les pilotes en sur-position peuvent utiliser le OID_GEN_RECEIVE_SCALE_CAPABILITIES OID pour interroger les fonctionnalités de mise à l’échelle côté réception (RSS) d’une carte réseau et de son pilote miniport.

Le pilote miniport retourne les fonctionnalités RSS dans une structure NDIS_RECEIVE_SCALE_CAPABILITIES .

Pour certaines charges de travail, un sous-ensemble de paquets UDP peut être fragmenté en raison de modifications de routage ou de l’expéditeur ne respectant pas les limitations MTU. Dans de tels cas rares, les paquets du même flux peuvent être indiqués sur différents processeurs en fonction du hachage à 4 tuples ou 2 tuples. Par conséquent, les pilotes miniports qui publient des NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV4, des NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6 et des NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6_EX doivent fournir un moyen de désactiver les fonctionnalités RSS UDP via les propriétés avancées.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge dans NDIS 6.0 et versions ultérieures.
En-tête ntddndis.h (inclure Ndis.h)

Voir aussi

MiniportInterrupt

MiniportInterruptDPC

NDIS_OBJECT_HEADER

NDIS_RSS_HASH_FUNC_FROM_HASH_INFO OID_GEN_RECEIVE_SCALE_CAPABILITIES

Receive Side Scaling (RSS)