Définition des paramètres d’un port virtuel

Un pilote trop haut peut modifier les paramètres d’un port virtuel (VPort) sur un commutateur de carte réseau sur une carte réseau qui prend en charge la virtualisation d’E/S racine unique (SR-IOV). Le pilote émet une demande de jeu d’identificateur d’objet (OID) de OID_NIC_SWITCH_VPORT_PARAMETERS pour modifier ces paramètres.

Avant que le pilote qui se trouve trop n’émet cette demande de jeu d’OID, il doit initialiser une structure NDIS_NIC_SWITCH_VPORT_PARAMETERS avec les paramètres à modifier sur le VPort. Le pilote initialise ensuite une structure NDIS_OID_REQUEST pour la requête OID et définit le membre InformationBuffer sur un pointeur vers la structure NDIS_NIC_SWITCH_VPORT_PARAMETERS .

Seul un sous-ensemble limité de paramètres de configuration d’un VPort peut être modifié. Le pilote overlying spécifie le paramètre à modifier en définissant les membres suivants de la structure NDIS_NIC_SWITCH_VPORT_PARAMETERS :

  • Le membre SwitchId doit être défini sur l’identificateur du commutateur de carte réseau pour lequel les paramètres doivent être retournés.

    Note À compter de Windows Server 2012, l’interface SR-IOV ne prend en charge qu’un seul commutateur de carte réseau sur la carte réseau. Ce commutateur est appelé commutateur de carte réseau par défaut. Le membre SwitchId doit être défini sur NDIS_DEFAULT_SWITCH_ID.

  • Le membre VPortId doit être défini sur l’identificateur associé au VPort. Le pilote qui se superpose obtient l’identificateur VPort de l’une des manières suivantes :

  • Les indicateurs NDIS_NIC_SWITCH_VPORT_PARAMS_Xxx_CHANGED appropriés doivent être définis dans le membre Indicateurs . Les membres de la structure NDIS_NIC_SWITCH_VPORT_PARAMETERS ne peuvent être modifiés que si un indicateur NDIS_NIC_SWITCH_VPORT_PARAMS_Xxx_CHANGED correspondant est défini dans Ntdddndis.h.

  • Les membres de la structure NDIS_NIC_SWITCH_VPORT_PARAMETERS , qui correspondent aux indicateurs NDIS_NIC_SWITCH_VPORT_PARAMS_Xxx_CHANGED définis dans le membre Flags , sont définis avec les paramètres de configuration VPort qui doivent être modifiés.

À compter de Windows Server 2012, seuls les membres suivants de la structure NDIS_NIC_SWITCH_VPORT_PARAMETERS peuvent être modifiés via une demande de jeu OID de OID_NIC_SWITCH_VPORT_PARAMETERS :

PortName
Ce membre contient une description conviviale du VPort.

InterruptModeration
Ce membre spécifie le paramètre de modération d’interruption du VPort.

ProcessorAffinity
Ce membre spécifie le numéro de groupe et une bitmap des processeurs auxquels ce VPort peut être associé.

Le pilote qui se superpose doit suivre ces instructions pour modifier le membre ProcessorAffinity pour un VPort :

  • Ce membre est valide uniquement pour les VPorts attachés au PF. Ce champ n’est pas valide pour les VPorts non par défaut qui sont attachés à une VF.

  • Pour les VPorts non par défaut qui sont attachés au pf, au moins un processeur doit être spécifié lors de la création du VPort. L’affinité processeur associée au VPort non par défaut peut être modifiée après la création du VPort.

    Note Les VPorts non par défaut sont créés via des demandes de méthode OID de OID_NIC_SWITCH_CREATE_VPORT.

VPortState
Ce membre spécifie l’état actuel du VPort.

Le pilote qui se superpose doit suivre ces instructions pour modifier le membre VPortState d’un VPort :

  • Pour un VPort non par défaut attaché à une VF, le membre VPortState doit toujours être défini sur NdisNicSwitchVPortStateActivated.

  • Pour un VPort non par défaut attaché au pf, le membre VPortState doit être défini sur NdisNicSwitchVPortStateDeactivated lors de la création du VPort. Le VPort PF n’est activé qu’après qu’une demande de jeu d’OID de OID_NIC_SWITCH_VPORT_PARAMETERS a été émise par les pilotes qui se superposent pour changer le VPortState à un état activé.

    Lorsque le VPort non par défaut est activé, le pilote pf miniport peut allouer des ressources pour le VPort, comme la mémoire partagée allouée via NdisAllocateSharedMemory. Le pilote pf miniport peut allouer des ressources pour VPort à tout moment après son activation jusqu’à ce que le pilote supprime le VPort via une demande de jeu OID de OID_NIC_SWITCH_DELETE_VPORT.

  • Le VPort par défaut est toujours dans un état activé. La valeur du membre VPortState doit toujours être définie sur NdisNicSwitchVPortStateActivated pour le VPort par défaut.

  • Lorsqu’un VPort est dans un état activé, il ne peut pas être désactivé. Un pilote pf miniport peut recevoir et transmettre des paquets à partir d’un VPort uniquement s’il est activé et si les filtres MAC correspondants sont définis sur le VPort. Toutefois, une fois que le VPort a été supprimé via une demande de jeu OID de OID_NIC_SWITCH_DELETE_VPORT, le pilote doit libérer les ressources qui ont été allouées pour le VPort. Le pilote doit également annuler toutes les opérations de transmission ou de réception en attente pour les paquets sur le VPort.

Une fois que le pilote pf miniport reçoit la demande de jeu OID de OID_NIC_SWITCH_VPORT_PARAMETERS, le pilote configure le matériel avec les paramètres de configuration. Le pilote peut uniquement modifier les paramètres de configuration identifiés par les indicateurs NDIS_NIC_SWITCH_VPORT_PARAMETERS_Xxx_CHANGED dans le membre Indicateurs de la structure NDIS_NIC_SWITCH_VPORT_PARAMETERS .