Partager via


structure NDIS_RECEIVE_SCALE_PARAMETERS (ntddndis.h)

La structure NDIS_RECEIVE_SCALE_PARAMETERS spécifie les paramètres de de mise à l’échelle côté réception (RSS) pour un adaptateur miniport.

Informations sur la version

Syntaxe

typedef struct _NDIS_RECEIVE_SCALE_PARAMETERS {
  NDIS_OBJECT_HEADER Header;
  USHORT             Flags;
  USHORT             BaseCpuNumber;
  ULONG              HashInformation;
  USHORT             IndirectionTableSize;
  ULONG              IndirectionTableOffset;
  USHORT             HashSecretKeySize;
  ULONG              HashSecretKeyOffset;
  ULONG              ProcessorMasksOffset;
  ULONG              NumberOfProcessorMasks;
  ULONG              ProcessorMasksEntrySize;
  PROCESSOR_NUMBER   DefaultProcessorNumber;
} NDIS_RECEIVE_SCALE_PARAMETERS, *PNDIS_RECEIVE_SCALE_PARAMETERS;

Membres

Header

Structure NDIS_OBJECT_HEADER pour la structure NDIS_RECEIVE_SCALE_PARAMETERS. Définissez le membre type de la structure qui Header spécifie la valeur NDIS_OBJECT_TYPE_RSS_PARAMETERS.

  • Pour les pilotes NDIS 6.60 et versions ultérieures, définissez le membre Révision sur NDIS_RECEIVE_SCALE_PARAMETERS_REVISION_3 et le membre Size sur NDIS_SIZEOF_RECEIVE_SCALE_PARAMETERS_REVISION_3.

  • Pour les pilotes NDIS 6.20 et pré-NDIS 6.60, définissez le membre révision sur NDIS_RECEIVE_SCALE_PARAMETERS_REVISION_2 et le membre Size sur NDIS_SIZEOF_RECEIVE_SCALE_PARAMETERS_REVISION_2.

  • Pour les pilotes NDIS 6.0, définissez le membre révision sur NDIS_RECEIVE_SCALE_PARAMETERS_REVISION_1 et le membre Size sur NDIS_SIZEOF_RECEIVE_SCALE_PARAMETERS_REVISION_1.

Flags

Valeur USHORT qui indique ce que le pilote miniport doit faire avec les paramètres de mise à l’échelle de réception. Le pilote peut utiliser ces indicateurs pour déterminer rapidement quels paramètres ont changé et mettre à jour les paramètres RSS en conséquence.

Note

Les indicateurs qui font référence à des informations de paramètre RSS inchangées sont à des fins d’optimisation. Si un indicateur est défini, aucune modification n’a été apportée au paramètre correspondant. Si un indicateur est clair, le paramètre correspondant peut ou non avoir changé et les pilotes miniport doivent comparer la nouvelle valeur du paramètre à la valeur actuelle afin de déterminer une modification potentielle du paramètre.

  • Dans une requête de requête, définissez ce membre sur zéro.

  • Dans une requête définie, les indicateurs sont définis comme suit :

Valeur Signification
NDIS_RSS_PARAM_FLAG_BASE_CPU_UNCHANGED Le membre BaseCpuNumber n’a pas changé.
NDIS_RSS_PARAM_FLAG_HASH_INFO_UNCHANGED Le membre HashInformation n’a pas changé. Les informations de hachage incluent les types de hachage et la fonction de hachage.
NDIS_RSS_PARAM_FLAG_ITABLE_UNCHANGED La table d’indirection et les membres de données associés n’ont pas changé.
NDIS_RSS_PARAM_FLAG_HASH_KEY_UNCHANGED La clé secrète et les membres de données associés n’ont pas changé.
NDIS_RSS_PARAM_FLAG_DISABLE_RSS Si cet indicateur est défini, le pilote miniport doit ignorer tous les autres indicateurs et paramètres et désactiver RSS sur la carte réseau.
NDIS_RSS_PARAM_FLAG_DEFAULT_PROCESSOR_UNCHANGED Si cet indicateur est défini, la DefaultProcessorNumber n’a pas changé.

BaseCpuNumber

Nombre processeur le plus bas à utiliser pour RSS. Étant donné que cette valeur est incorporée dans la table indirection, définissez BaseCpuNumber sur zéro.

HashInformation

Dans une requête définie, ce membre est le type de hachage et la fonction de hachage que la carte réseau doit utiliser pour calculer les valeurs de hachage pour les paquets entrants. Si la fonction de hachage spécifiée dans la hashInformation membre est zéro, RSS est désactivé.

Dans une requête de requête, ce membre est le type de hachage et la fonction de hachage que la carte réseau utilise.

Les pilotes de superposition et NDIS peuvent utiliser la macro NDIS_RSS_HASH_INFO_FROM_TYPE_AND_FUNC pour combiner le type de hachage et la fonction de hachage en informations de hachage et définir le membre HashInformation.

Les pilotes miniport peuvent utiliser la macro NDIS_RSS_HASH_TYPE_FROM_HASH_INFO pour obtenir le type de hachage de hashInformation et la macro NDIS_RSS_HASH_FUNC_FROM_HASH_INFO pour obtenir la fonction de hachage.

IndirectionTableSize

Taille de la table d’indirection, en octets. Le pilote de couche supérieure qui définit les paramètres RSS doit s’assurer que le nombre d’entrées dans la table d’indirection est une puissance de 2.

IndirectionTableOffset

Décalage de la table d’indirection à partir du début de la structure NDIS_RECEIVE_SCALE_PARAMETERS. Utilisez ce décalage pour obtenir la table d’indirection.

HashSecretKeySize

Taille du tableau de clés secrètes de la fonction de hachage, en octets. La taille du tableau est de 40 octets pour NdisHashFunctionToeplitz.

HashSecretKeyOffset

Décalage du tableau de clés secrètes de la fonction de hachage à partir du début de la structure NDIS_RECEIVE_SCALE_PARAMETERS. Utilisez ce décalage pour obtenir la clé secrète 320 bits (40 octets).

  • Dans une requête définie, la clé secrète peut contenir toutes les données choisies par le pilote surajustement.

  • Dans une requête de requête, la clé secrète contient les données que la carte réseau utilise.

ProcessorMasksOffset

Décalage d’un tableau de masques de processeur à partir du début de la structure NDIS_RECEIVE_SCALE_PARAMETERS.

NumberOfProcessorMasks

Nombre d’éléments d’un tableau de type GROUP_AFFINITY représentant les processeurs utilisés dans la table d’indirection

ProcessorMasksEntrySize

Taille, en octets, d’une entrée de tableau de masque de processeur.

DefaultProcessorNumber

Lorsque RSS est activé, spécifie le processeur qui recevra des paquets où le hachage ne peut pas être calculé.

Remarques

La structure NDIS_RECEIVE_SCALE_PARAMETERS définit les paramètres de mise à l’échelle côté réception (RSS) pour l’OID OID_GEN_RECEIVE_SCALE_PARAMETERS.

Note

La table d’indirection et la clé secrète sont ajoutées après les membres de la structure NDIS_RECEIVE_SCALE_PARAMETERS.

Le tableau indirection a le format spécifique à la version suivant :

NDIS Version Format
NDIS 6.20 et versions ultérieures PROCESSOR_NUMBER IndirectionTable[IndirectionTableSize/sizeof(PROCESSOR_NUMBER)];
Pré-NDIS 6.20 CCHAR IndirectionTable[IndirectionTableSize]

NDIS traduit automatiquement la table d’indirection s’il existe des pilotes plus anciens et plus récents dans une pile de pilotes.

Le pilote miniport doit examiner la table d’indirection pour déterminer les numéros de processeur à associer aux files d’attente matérielles. Si le nombre total de nombres d’UC différents qui apparaissent dans la table d’indirection est supérieur au nombre de files d’attente matérielles que la carte réseau prend en charge, le pilote miniport doit choisir un sous-ensemble des numéros d’UC de la table d’indirection. Le sous-ensemble est égal au nombre de files d’attente matérielles.

Le pilote miniport a spécifié le nombre de files d’attente de réception en réponse à OID_GEN_RECEIVE_SCALE_CAPABILITIES.

Pour effacer les paramètres RSS et désactiver RSS, NDIS définit la fonction de hachage spécifiée dans le membre HashInformation est zéro. NDIS peut également désactiver RSS en définissant l’indicateur de NDIS_RSS_PARAM_FLAG_DISABLE_RSS dans la structure NDIS_RECEIVE_SCALE_PARAMETERS.

Si RSS est désactivé, le pilote miniport doit gérer les opérations de réception sans effectuer d’opérations RSS.

Exigences

Exigence Valeur
client minimum pris en charge Prise en charge dans NDIS 6.0 et versions ultérieures.
d’en-tête ntddndis.h (include Ndis.h)

Voir aussi

mise à l’échelle côté réception (RSS)

NDIS_OBJECT_HEADER

NDIS_RSS_HASH_FUNC_FROM_HASH_INFO

NDIS_RSS_HASH_INFO_FROM_TYPE_AND_FUNC

NDIS_RSS_HASH_TYPE_FROM_HASH_INFO

OID_GEN_RECEIVE_SCALE_CAPABILITIES

OID_GEN_RECEIVE_SCALE_PARAMETERS