NDIS_RSS_SET_INDIRECTION_ENTRY structure (ntddndis.h)

Avertissement

Certaines informations de cette rubrique concernent le produit pré-publié, qui peut être considérablement modifié avant sa commercialisation. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.

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

La structure NDIS_RSS_SET_INDIRECTION_ENTRY représente une commande permettant de définir une seule entrée de table d’indirection. 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 le 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 un OR au niveau du bit d’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 de savoir 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 mis en cache. 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 est en cours de modification pour pointer vers un autre processeur. Lorsque la table d’indirection est inactive (RSS est désactivée), le pilote miniport doit suivre les mises à jour des entrées de table d’indirection afin qu’il dispose de 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 la status 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 miniport, le protocole de couche supérieure initialise ce champ pour NDIS_STATUS_PENDING. Les pilotes miniport doivent remplacer NDIS_STATUS_PENDING par un code de status NDIS réussi ou défaillant. 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, un bogue système est case activée et indique que le pilote miniport est en cause.

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 status suivants pour cette condition d’erreur :

Code d’état État d’erreur
NDIS_STATUS_INVALID_PARAMETER
  • Le membre SwitchId ou VPortId n’était pas valide.
  • Le membre Flags n’était pas valide.
  • Le membre IndirectionTableIndex dépasse la valeur de NumberOfIndirectionTableEntries actuellement configurée à partir de la structure NDIS_RECEIVE_SCALE_PARAMETERS_V2 .
NDIS_STATUS_INVALID_PORT_STATE Le VPort n’est pas activé ou se trouve dans un autre état qui l’empêche d’accepter des OID RSSv2.
NDIS_STATUS_NOT_ACCEPTED Le processeur de l’acteur n’était pas valide.
NDIS_STATUS_INVALID_DATA Pour un paramètre de direction active , le nouveau processeur ne fait pas partie du processeur RSS de l’adaptateur. Notez que les paramètres inactifs doivent uniquement être suivis. Ils sont validés ultérieurement, lors de la transition de l’état RSS (vers activé ou désactivé).
NDIS_STATUS_NO_QUEUES Un groupe d’entrées de commande échoue au « nombre de files d’attente » case activée pour le VPort spécifié par ce groupe.

Configuration requise

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

Voir aussi

NDIS_RSS_SET_INDIRECTION_ENTRIES

OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES

Receive Side Scaling Version 2 (RSSv2)

Interface de requête OID synchrone dans NDIS 6.80