Partager via


structure NDIS_RSS_SET_INDIRECTION_ENTRY (ntddndis.h)

Avertissement

Certaines informations contenues dans cette rubrique concernent le produit prédéfinit, qui peut être sensiblement modifié avant sa publication commerciale. Microsoft n’offre aucune garantie, expresse ou implicite, en ce qui concerne les informations fournies ici.

RSSv2 est en préversion uniquement dans Windows 10, version 1803.

La structure NDIS_RSS_SET_INDIRECTION_ENTRY représente une commande pour définir une entrée de table d’indirection unique. Il est contenu dans une structure NDIS_RSS_SET_INDIRECTION_ENTRIES, qui est utilisée dans l’OID OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES. OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES est un OID synchrone pour RSS version 2 (RSSv2).

Syntaxe

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;

Membres

SwitchId

Valeur NDIS_NIC_SWITCH_ID qui représente le commutateur de carte réseau où réside vPort.

L’identificateur de commutateur est un entier compris entre zéro et le nombre de commutateurs pris en charge par la carte réseau. Une valeur NDIS_DEFAULT_SWITCH_ID indique le commutateur de carte réseau par défaut.

Ce champ doit être défini sur 0 dans le cas RSS natif.

VPortId

Valeur NDIS_NIC_SWITCH_VPORT_ID qui représente l’identificateur VPort.

Ce champ doit être défini sur 0 dans le cas RSS natif.

Flags

Valeur ULONG qui contient une OR au niveau du bit des indicateurs. Ce membre qualifie les informations de cette structure.

Les indicateurs possibles sont les suivants :

Valeur Signification
NDIS_RSS_SET_INDIRECTION_ENTRY_FLAG_PRIMARY_PROCESSOR
Indique que le NDIS_RSS_SET_INDIRECTION_ENTRY fait référence au processeur principal de l’entité de mise à l’échelle. La table d’indirection n’est pas utilisée. Lorsque le processeur principal est *inactif* (RSS est activé), le pilote miniport doit suivre les mises à jour des entrées avec cet indicateur défini afin qu’il sache quel processeur sera le principal lorsque RSS est désactivé.
NDIS_RSS_SET_INDIRECTION_ENTRY_FLAG_DEFAULT_PROCESSOR
Indique que le NDIS_RSS_SET_INDIRECTION_ENTRY fait référence au processeur par défaut de l’entité de mise à l’échelle. Le processeur par défaut gère les paquets non affectés. La table d’indirection n’est pas utilisée. Lorsque le processeur par défaut est *inactif* (RSS est désactivé), le pilote miniport doit suivre les mises à jour des entrées avec cet indicateur défini afin qu’il sache quel processeur sera par défaut lorsque RSS est activé.

IndirectionTableIndex

Index de hachage de l’ITE qui pointe actuellement vers le processeur actuel et qui est en cours de modification pour pointer vers un autre processeur. Lorsque la table indirection est inactive (RSS est désactivée), le pilote miniport doit suivre les mises à jour des entrées de table indirection afin qu’il ait la table d’indirection correcte lorsque RSS est activé.

TargetProcessorNumber

Numéro de processeur cible vers lequel l’ITE doit pointer à l’achèvement. Le pilote miniport doit réussir à passer du processeur actuel au processeur actuel.

EntryStatus

Code NDIS_STATUS indiquant l’état de l’opération de déplacement pour cette entrée. Étant donné que NDIS_RSS_SET_INDIRECTION_ENTRY est utilisé dans le contexte d’un appel OID synchrone, le pilote miniport ne peut pas retourner NDIS_STATUS_PENDING pour ce membre.

Pour simplifier l’implémentation des pilotes miniports, le protocole de couche supérieure initialise ce champ pour NDIS_STATUS_PENDING. Les pilotes miniport doivent remplacer NDIS_STATUS_PENDING avec un code d’état NDIS de réussite ou d’échec. Si la couche supérieure détecte que ce champ est toujours NDIS_STATUS_PENDING à l’achèvement de l’OID OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES, il provoque une vérification du bogue système et indique que le pilote miniport est en panne.

Important

Toutes les structures NDIS_RSS_SET_INDIRECTION_ENTRY d’un groupe, contenues dans une structure NDIS_RSS_SET_INDIRECTION_ENTRIES, doivent être marquées avec le même EntryStatus.

Si une erreur se produit avec cette commande de déplacement, définissez EntryStatus sur l’un des codes d’état suivants pour cette condition d’erreur :

Code d’état Condition d’erreur
NDIS_STATUS_INVALID_PARAMETER
  • Le SwitchId ou membre VPortId n’était pas valide.
  • Le membre flags n’était pas valide.
  • Le membre indirectionTableIndex dépasse le NumberOfIndirectionTableEntries actuellement configuré à partir de la structure NDIS_RECEIVE_SCALE_PARAMETERS_V2.
NDIS_STATUS_INVALID_PORT_STATE Le VPort n’est pas activé ou est dans un autre état qui l’empêche d’accepter des OID RSSv2.
NDIS_STATUS_NOT_ACCEPTED L’UC de l’acteur n’était pas valide.
NDIS_STATUS_INVALID_DATA Pour un paramètre de direction actif, le nouveau processeur ne fait pas partie du jeu de processeur RSS de l’adaptateur. Notez que paramètres de inactifs doivent uniquement être suivis. Ils sont validés ultérieurement pendant la transition de l’état RSS (vers sur ou hors).
NDIS_STATUS_NO_QUEUES Un groupe d’entrées de commande échoue la vérification du « nombre de files d’attente » pour le VPort spécifié par ce groupe.

Exigences

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

Voir aussi

NDIS_RSS_SET_INDIRECTION_ENTRIES

OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES

mise à l’échelle côté réception version 2 (RSSv2)

interface de requête OID synchrone dans NDIS 6.80