Partager via


OID_SWITCH_NIC_REQUEST

Une demande de méthode d’identificateur d’objet (OID) de OID_SWITCH_NIC_REQUEST est utilisée pour encapsuler et transférer des requêtes OID vers la carte réseau externe de commutateur extensible Hyper-V. Cela permet de remettre la requête OID encapsulée au pilote pour la carte réseau physique sous-jacente liée à la carte réseau externe.

Cette demande OID est également utilisée pour encapsuler les requêtes OID qui ont été émises à d’autres cartes réseau connectées à des ports de commutateur extensibles. Dans ce cas, la demande OID encapsulée est transférée via la pile de pilotes de commutateur extensible pour l’inspection par extensions.

Le membre InformationBuffer de la structure NDIS_OID_REQUEST contient un pointeur vers une structure NDIS_SWITCH_NIC_OID_REQUEST. Cette structure spécifie les informations de transfert pour la requête OID. Cette structure contient également un pointeur vers la structure NDIS_OID_REQUEST d’origine de la requête OID en cours de transfert.

Remarques

Lorsque les requêtes OID arrivent à l’interface de commutateur extensible Hyper-V, elle les encapsule pour les transférer vers le bas du chemin de contrôle de commutateur extensible. Ces demandes OID incluent les éléments suivants :

  • Le matériel décharge les requêtes OID, y compris les requêtes pour la sécurité du protocole Internet (IPsec), la file d’attente de machines virtuelles (VMQ) et la virtualisation d’E/S racine unique (SR-IOV). Ces requêtes OID sont émises par un protocole ou un pilote de filtre qui s’exécute dans le système d’exploitation de gestion de la partition parente Hyper-V.

    Lorsque ces requêtes OID arrivent à l’interface de commutateur extensible, le bord du protocole du commutateur extensible encapsule la requête OID dans une structure NDIS_SWITCH_NIC_OID_REQUEST. La périphérie du protocole définit les membres de cette structure de la façon suivante :

    • Les membres DestinationPortId et DestinationNicIndex sont définis sur les valeurs correspondantes pour la carte réseau externe.

    • Si la requête OID provient d’une partition enfant Hyper-V, les SourcePortId et les membres SourceNicIndex sont définis sur les valeurs correspondantes pour le port et la carte réseau utilisés par la partition. Sinon, les membres SourcePortId et SourceNicIndex sont définis sur zéro.

      Remarque L’extension doit conserver les valeurs de ces membres si elle transfère ou redirige la requête OID.

    • Le membre OidRequest est défini sur un pointeur vers la structure NDIS_OID_REQUEST pour la requête OID encapsulée.

    La périphérie du protocole émet ensuite la requête OID_SWITCH_NIC_REQUEST pour transférer la requête OID encapsulée vers le bas du chemin de contrôle de commutateur extensible vers la carte réseau externe.

    Une extension de transfert sous-jacente peut rediriger les requêtes OID de déchargement matériel encapsulées vers une carte réseau physique liée à la carte réseau externe. Par exemple, si l’extension prend en charge les cartes réseau physiques d’une équipe de commutateur extensible liée à la carte réseau externe, elle peut transférer la demande OID_SWITCH_NIC_REQUEST à une carte physique dans l’équipe de basculement d’équilibrage de charge (LBFO) qui prend en charge le déchargement matériel. Pour plus d’informations sur cette procédure, consultez Gestion des requêtes OID de déchargement matériel sur des cartes réseau physiques.

    Pour plus d’informations sur les équipes de commutateur extensible, consultez Types de configurations de cartes réseau physiques.

  • Requêtes OID multidiffusion, notamment OID_802_3_ADD_MULTICAST_ADDRESS et OID_802_3_DELETE_MULTICAST_ADDRESS. Ces demandes OID sont émises par un protocole et des pilotes de filtre qui s’exécutent dans le système d’exploitation de gestion ou le système d’exploitation invité d’une partition enfant Hyper-V.

    Lorsque ces requêtes OID arrivent à l’interface de commutateur extensible, le bord du protocole du commutateur extensible encapsule la requête OID dans une structure NDIS_SWITCH_NIC_OID_REQUEST. La périphérie du protocole définit également les SourcePortId et membres SourceNicIndex les valeurs correspondantes pour le port et la carte réseau à partir desquels la requête OID provient. La périphérie du protocole émet ensuite la requête OID_SWITCH_NIC_REQUEST pour transférer la requête OID encapsulée vers le bas du chemin de contrôle de commutateur extensible pour l’inspection par les extensions sous-jacentes.

    Remarque Dans ce cas, la périphérie du protocole définit les membres destinationPortId et DestinationNicIndex sur zéro. Cela spécifie que la requête OID encapsulée doit être remise aux extensions dans le chemin de contrôle.

    Les extensions de transfert sous-jacentes peuvent inspecter ces demandes OID encapsulées et conserver les informations d’adresse de multidiffusion qu’elles spécifient. Par exemple, l’extension peut avoir besoin de ces informations si elle provient de paquets de multidiffusion qu’elle transfère à un port de commutateur extensible.

    Pour plus d’informations, consultez transfert de requêtes OID à partir d’une Hyper-V partition enfant.

Une extension de transfert peut également émettre une OID_SWITCH_NIC_REQUEST afin de transférer des requêtes OID encapsulées vers une carte réseau physique liée à la carte réseau externe. Cela permet à l’extension d’provenir de sa propre demande OID ou de rediriger une requête OID existante vers une carte réseau physique liée à la carte réseau externe. Pour ce faire, l’extension doit suivre les étapes suivantes :

  1. L’extension appelle ReferenceSwitchNic pour incrémenter un compteur de référence pour l’index de la carte réseau physique de destination. Cela garantit que l’interface de commutateur extensible ne supprime pas la connexion de carte réseau physique alors que son compteur de référence n’est pas différent de zéro.

    Remarque L’interface de commutateur extensible peut déconnecter la connexion de carte réseau physique alors que son compteur de référence n’est pas différent de zéro. Pour plus d’informations, consultez Hyper-V port de commutateur extensible et les états de carte réseau.

  2. L’extension encapsule la requête OID en initialisant une structure NDIS_SWITCH_NIC_OID_REQUEST de la manière suivante :

    • Le DestinationPortId membre doit être défini sur l’identificateur du port de commutateur extensible auquel la carte réseau externe est connectée.

    • Le membre destinationNicIndex doit être défini sur la valeur d’index différente de zéro de la carte réseau physique sous-jacente.

    • Si l’extension provient d’une partition enfant Hyper-V, les SourcePortId et les membres SourceNicIndex sont définis sur les valeurs correspondantes pour le port et la carte réseau utilisés par la partition. Sinon, les membres SourcePortId et SourceNicIndex sont définis sur zéro.

      Par exemple, si l’extension gère les ressources de déchargement matériel pour une partition enfant, elle doit définir l'SourcePortId et membres sourceNicIndex pour spécifier la partition pour laquelle la requête OID de déchargement matérielle encapsulée est pour.

    • Le membre OidRequest doit être défini sur un pointeur vers une structure de NDIS_OID_REQUEST initialisée pour la requête OID encapsulée.

  3. L’extension appelle NdisFOidRequest pour transférer la requête OID vers le port de commutateur extensible de destination spécifié et la carte réseau.

  4. Lorsque NDIS appelle la fonction FilterOidRequestComplete, l’extension appelle DereferenceSwitchNic pour effacer le compteur de référence de l’index de la carte réseau physique de destination.

Codes d’état de retour

Le bord miniport sous-jacent du commutateur extensible termine la requête de requête OID de OID_SWITCH_NIC_REQUEST et retourne l’un des codes d’état suivants.

Code d’état Description

NDIS_STATUS_SUCCESS

La requête OID s’est terminée avec succès.

NDIS_STATUS_Xxx

La demande a échoué pour d’autres raisons.

Exigences

Version

Prise en charge dans NDIS 6.30 et versions ultérieures.

En-tête

Ntddndis.h (include Ndis.h)

Voir aussi


NDIS_STATUS_INDICATION

NDIS_SWITCH_NIC_OID_REQUEST