NdisMEnableVirtualization, fonction (ndis.h)
Un pilote miniport appelle la fonction NdisMEnableVirtualization lors de la création ou de la suppression d’un commutateur de carte réseau sur la carte réseau. En appelant cette fonction, le pilote configure la structure de capacité étendue de virtualisation d’E/S racine unique (SR-IOV) dans l’espace de configuration PCI Express (PCIe) pour la fonction physique (PF) de la carte réseau.
Syntaxe
NDIS_STATUS NdisMEnableVirtualization(
[in] NDIS_HANDLE NdisMiniportHandle,
[in] USHORT NumVFs,
[in] BOOLEAN EnableVFMigration,
[in] BOOLEAN EnableMigrationInterrupt,
[in] BOOLEAN EnableVirtualization
);
Paramètres
[in] NdisMiniportHandle
Handle de carte réseau que NDIS a transmis au paramètre MiniportAdapterHandle de MiniportInitializeEx.
[in] NumVFs
Valeur USHORT qui contient le nombre de fonctions virtuelles qui doivent être activées pour la carte réseau. NdisMEnableVirtualization définit le membre NumVFs de la structure de capacité étendue SR-IOV sur la valeur du paramètre NumVFs .
[in] EnableVFMigration
Ce paramètre est réservé à NDIS et doit être défini sur FALSE.
[in] EnableMigrationInterrupt
Ce paramètre est réservé à NDIS et doit être défini sur FALSE.
[in] EnableVirtualization
Valeur BOOLEAN qui spécifie si la virtualisation doit être activée dans l’espace de configuration PCI de la carte réseau. Si EnableVirtualization a la valeur TRUE, NdisMEnableVirtualization définit le bit Enable VF du membre de contrôle SR-IOV. NdisMEnableVirtualization efface ce bit si EnableVirtualization a la valeur FALSE.
Valeur retournée
NdisMEnableVirtualization peut retourner l’une des valeurs status suivantes.
Code de retour | Description |
---|---|
|
L’opération de virtualisation s’est terminée avec succès. |
|
L’adaptateur ou le système ne prend pas en charge SR-IOV. |
|
Le paramètre EnableVirtualization est défini sur FALSE et le paramètre NumVFs est défini sur une valeur différente de zéro. |
|
L’opération de virtualisation a échoué.
Note La fonction NdisMEnableVirtualization échoue si elle est appelée pour activer la virtualisation lorsque la virtualisation est déjà activée. Le pilote doit d’abord désactiver la virtualisation (en appelant la fonction avec le paramètre EnableVirtualization défini sur FALSE) avant que le pilote puisse réactiver la virtualisation.
|
Remarques
Les pilotes miniport PF appellent NdisMEnableVirtualization pour configurer les champs capacité étendue SR-IOV dans l’espace de configuration PCI. Cet appel est utilisé pour activer ou désactiver la virtualisation dans l’espace de configuration, ainsi que pour spécifier le nombre de machines virtuelles qui doivent être exposées à l’infrastructure PCIe par la carte réseau.
Lorsque le pilote pf miniport gère une demande de méthode OID de OID_NIC_SWITCH_CREATE_SWITCH, le pilote appelle NdisMEnableVirtualization pour activer la virtualisation sur la carte réseau pour le commutateur de carte réseau. Pour ce faire, le pilote appelle NdisMEnableVirtualization avec les paramètres suivants.
Terme | Description |
---|---|
NumVFs | Définissez sur le nombre de machines virtuelles à activer pour le commutateur de carte réseau. |
EnableVirtualization | Définissez sur TRUE. |
Lorsque le pilote pf miniport gère une demande de méthode OID de OID_NIC_SWITCH_DELETE_SWITCH, le pilote appelle NdisMEnableVirtualization pour désactiver la virtualisation sur la carte réseau. Pour ce faire, le pilote appelle NdisMEnableVirtualization avec les paramètres suivants :
Terme | Description |
---|---|
NumVFs | Définit la valeur zéro. |
EnableVirtualization | Définissez sur FALSE. |
Pour plus d’informations sur la création d’un commutateur de carte réseau, consultez Création d’un commutateur de carte réseau.
Pour plus d’informations sur l’interface SR-IOV, consultez Vue d’ensemble de la virtualisation d’E/S à racine unique (SR-IOV).
Interface avec un pilote de bus virtuel
Si un fournisseur de matériel indépendant (IHV) fournit un pilote de bus virtuel (VBD) dans le cadre de son package de pilotes SR-IOV, son pilote miniport ne doit pas appeler NdisMEnableVirtualization. Au lieu de cela, le pilote doit s’interfacer avec le VBD via un canal de communication privé et demander au VBD d’appeler EnableVirtualization. Cette fonction est fournie par l’interface GUID_PCI_VIRTUALIZATION_INTERFACE prise en charge par le pilote de bus PCI sous-jacent.Le VBD qui s’exécute dans le système d’exploitation de gestion de la partition parente Hyper-V peut interroger l’interface GUID_PCI_VIRTUALIZATION_INTERFACE en émettant une demande de IRP_MN_QUERY_INTERFACE à son objet d’appareil physique (PDO) sur le bus PCI. Cette requête doit être effectuée à partir de IRQL = PASSIVE_LEVEL. Dans cette requête, le pilote doit définir le paramètre InterfaceType sur GUID_PCI_VIRTUALIZATION_INTERFACE.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Pris en charge dans NDIS 6.30 et versions ultérieures. |
Plateforme cible | Universal |
En-tête | ndis.h (inclure Ndis.h) |
Bibliothèque | Ndis.lib |
IRQL | PASSIVE_LEVEL |
Voir aussi