Gestion des demandes de OID_NIC_SWITCH_ALLOCATE_VF
Lorsque le pilote miniport pour la fonction physique (PF) PCI Express (PCIe) sur la carte réseau gère la demande de méthode OID (Object Identifier) de OID_NIC_SWITCH_ALLOCATE_VF, il effectue les opérations suivantes :
Le pilote pf miniport alloue les ressources logicielles pour une fonction virtuelle PCIe (VF) sur la carte réseau. Ces ressources sont configurées en fonction des paramètres spécifiés dans la structure NDIS_NIC_SWITCH_VF_PARAMETERS .
Le pilote pf miniport affecte la VF à un commutateur de carte réseau sur la carte réseau. Le commutateur de carte réseau est identifié par le membre SwitchId de la structure NDIS_NIC_SWITCH_VF_PARAMETERS .
Pour plus d’informations sur un commutateur de carte réseau, consultez Commutateurs de carte réseau.
Le pilote pf miniport met à jour le membre VFId avec un identificateur VF. Cet identificateur est un index de base zéro qui doit être unique sur toutes les machines virtuelles allouées sur le commutateur de carte réseau par le pilote pf miniport.
Le pilote qui se superpose utilise la valeur du membre VFId dans les requêtes OID successives de OID_NIC_SWITCH_FREE_VF ou de OID_NIC_SWITCH_VF_PARAMETERS.
Le pilote pf miniport met à jour le membre RequestorId avec un identificateur de demandeur PCIe (RID) pour la VF.
Le pilote miniport appelle NdisMGetVirtualFunctionLocation pour obtenir les informations RID qui correspondent à la VF. Le pilote crée ensuite le RID à l’aide de la macro NDIS_MAKE_RID en fonction des informations retournées par l’appel à NdisMGetVirtualFunctionLocation.
Le RID est utilisé par la pile de virtualisation pour le remapping DMA et les interruptions entre le PF et la VF. Le RID permet également à l’unité de gestion de la mémoire d’entrée/sortie matérielle (IOMMU) de convertir les adresses physiques invitées en adresses physiques hôtes.
Le pilote pf miniport initialise et expose la VF. Cela rend la VF prête à être utilisée par la pile de virtualisation.
Si le pilote pf miniport peut correctement allouer les ressources logicielles nécessaires et initialiser la VF, le pilote termine la requête OID avec NDIS_STATUS_SUCCESS. Le pilote pf miniport doit conserver les ID VF pour chaque VF allouée. NDIS et les pilotes qui se superposent utilisent l’identificateur VF dans les requêtes OID successives adressées au pilote pf miniport pour diverses actions, telles que la réinitialisation ou la libération de la VF.
Note Lorsque des ressources pour la VF sont allouées, la VF est dans un état non attaché, car un port virtuel (VPort) n’est pas attaché à la VF. Le pilote qui se superpose peut émettre une requête OID de OID_NIC_SWITCH_CREATE_VPORT pour créer et attacher un VPort à la VF. Pour plus d’informations, consultez Création d’un port virtuel.