Réinitialisation d’une fonction virtuelle
Un pilote qui se superpose émet une demande de jeu d’identificateur d’objet (OID) de OID_SRIOV_RESET_VF pour réinitialiser une fonction virtuelle (VF) PCI Express (PCIe) spécifiée. La VF est un composant matériel d’une carte réseau qui prend en charge la virtualisation d’E/S racine unique. Les pilotes qui se superposent émettent cette demande de jeu d’OID au pilote miniport de la fonction physique PCI Express (PCIe).
Par exemple, la pile de virtualisation s’exécute dans le système d’exploitation de gestion de la partition parente Hyper-V. Avant que la pile ne détache une VF d’une partition enfant Hyper-V, elle demande une réinitialisation au niveau de la fonction (FLR) sur la VF. Étant donné que le FLR est une opération privilégiée, elle ne peut être effectuée que par le pilote pf miniport qui s’exécute également dans le système d’exploitation de gestion. Pour demander un FLR d’une VF spécifiée, la pile de virtualisation émet la requête OID_SRIOV_RESET_VFau pilote pf miniport.
Avant d’effectuer cette demande de jeu d’OID, le pilote qui se superpose doit initialiser une structure NDIS_SRIOV_RESET_VF_PARAMETERS . Le pilote doit définir le membre VFId sur l’identificateur de la VF à réinitialiser.
Lorsqu’il gère cette demande OID, le pilote pf miniport doit suivre les instructions suivantes :
Le pilote pf miniport doit vérifier que le VF, spécifié par le membre VFId de la structure NDIS_SRIOV_RESET_VF_PARAMETERS , dispose de ressources qui ont été précédemment allouées. Le pilote pf miniport alloue des ressources pour une VF lors d’une demande de méthode OID de OID_NIC_SWITCH_ALLOCATE_VF. Si les ressources de la VF spécifiée n’ont pas été allouées, le pilote doit échouer dans la requête OID.
L’opération de réinitialisation doit uniquement affecter la VF spécifiée. L’opération ne doit pas affecter d’autres machines virtuelles ou le PF sur la même carte réseau.