Partager via


Émission de demandes OID_NIC_SWITCH_ALLOCATE_VF

Avant d’émettre la demande de méthode d’identificateur d’objet (OID) de OID_NIC_SWITCH_ALLOCATE_VF au pilote miniport pour la fonction physique (PF) PCI Express (PCIe), le pilote qui surclasse une structure NDIS_NIC_SWITCH_VF_PARAMETERS . Cette structure contient les paramètres de configuration des ressources à allouer à une fonction virtuelle PCIe (VF) sur la carte réseau. Le pilote overlying doit définir les membres de cette structure de la manière suivante :

  • Le membre SwitchId doit être défini sur l’identificateur d’un commutateur de carte réseau créé précédemment sur la carte réseau. Un commutateur de carte réseau est créé via une demande de méthode OID de OID_NIC_SWITCH_CREATE_SWITCH.

    Quand il gère la demande de méthode OID de OID_NIC_SWITCH_ALLOCATE_VF, le pilote miniport pour la fonction physique PCIe (PF) alloue des ressources pour la VF. Si les ressources sont correctement allouées, le pilote pf miniport affecte la VF au commutateur de carte réseau spécifié.

    Note À compter de NDIS 6.30 dans Windows Server 2012, l’interface SR-IOV prend uniquement en charge le commutateur de carte réseau par défaut sur la carte réseau. La valeur du membre SwitchId doit être définie sur NDIS_DEFAULT_SWITCH_ID.

    Pour plus d’informations sur un commutateur de carte réseau, consultez Commutateurs de carte réseau.

  • Le membre VFId doit être défini sur NDIS_INVALID_VF_FUNCTION_ID.

  • Le membre RequestorId doit être défini sur NDIS_INVALID_RID.

  • Les membres VMFriendlyName et VMName doivent être définis sur les paramètres d’une partition enfant Hyper-V. Le pilote pf miniport utilise ces membres uniquement à titre d’information.

    Note La partition enfant Hyper-V est également appelée machine virtuelle.

    La machine virtuelle virtuelle est associée à la machine virtuelle spécifiée avant que le pilote qui sur-mente n’émet la demande de OID_NIC_SWITCH_CREATE_SWITCH .

  • Le membre NicName doit être défini sur l’identificateur de la carte réseau de la machine virtuelle. Cette carte virtuelle est exposée dans le système d’exploitation invité qui s’exécute dans la machine virtuelle. Le pilote pf miniport utilise ce membre uniquement à titre d’information.

    Lorsque des ressources sont allouées à la VF et qu’elle est attachée à la partition enfant, une carte réseau VF est exposée dans le système d’exploitation invité. La carte réseau de machine virtuelle s’associe à la carte réseau VF pour le transfert de paquets sur le chemin de données VF basé sur le matériel.

    Toutefois, le VF peut être détaché de la partition enfant, par exemple pendant la migration dynamique. Dans ce cas, le transfert de paquets se produit via le chemin des données synthétiques basées sur le logiciel. Pour plus d’informations sur ces chemins de données, consultez Chemins de données SR-IOV.

  • Les membres PermanentMacAddress et CurrentMacAddress doivent être définis sur les adresses MAC (Media Access Control) pour la carte réseau virtuelle de la VF. Ces adresses sont exposées à la pile réseau qui s’exécute dans le système d’exploitation invité de la partition enfant Hyper-V.

Le pilote overlying émet la demande de méthode OID de OID_NIC_SWITCH_ALLOCATE_VF en procédant comme suit :

  1. Le pilote overlying initialise une structure NDIS_OID_REQUEST pour la requête de méthode OID. Le pilote définit le membre InformationBuffer sur un pointeur vers une structure NDIS_NIC_SWITCH_VF_PARAMETERS initialisée.

  2. Le pilote overlying appelle NdisOidRequest pour émettre la demande OID au pilote pf miniport sous-jacent.

    Note Lorsque le pilote qui sur-mente appelle NdisOidRequest, NDIS intercepte la requête OID et vérifie les paramètres VF spécifiés dans la structure NDIS_NIC_SWITCH_VF_PARAMETERS . Si les paramètres sont vérifiés correctement, NDIS transfère l’OID au pilote pf miniport. Sinon, NDIS échoue à la requête OID avec NDIS_STATUS_INVALID_PARAMETER.

Une fois qu’un pilote overlying a demandé l’allocation de ressources pour un VF, ce pilote est le seul composant qui peut demander la libération des ressources pour la même machine virtuelle. Le pilote overlying doit émettre une demande de jeu d’OID de OID_NIC_SWITCH_FREE_VF pour libérer les ressources VF. Avant de pouvoir arrêter le pilote qui se superpose, il doit libérer les ressources pour chaque VF qui a été allouée par la demande de OID_NIC_SWITCH_ALLOCATE_VF du pilote.