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_RSS_HASH_FUNC_FROM_HASH_INFO
NDIS_RSS_HASH_INFO_FROM_TYPE_AND_FUNC
NDIS_RSS_HASH_TYPE_FROM_HASH_INFO