Partager via


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.

RemarqueNdisMEnableVirtualization doit être appelé uniquement par le pilote miniport pour le 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 .

Note Si le paramètre EnableVirtualization a la valeur FALSE, NumVFs doit être défini sur zéro.
 

[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
NDIS_STATUS_SUCCESS
L’opération de virtualisation s’est terminée avec succès.
NDIS_STATUS_NOT_SUPPORTED
L’adaptateur ou le système ne prend pas en charge SR-IOV.
NDIS_STATUS_INVALID_PARAMETER
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.
NDIS_STATUS_FAILURE
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

EnableVirtualization

GUID_PCI_VIRTUALIZATION_INTERFACE

OID_NIC_SWITCH_CREATE_SWITCH

OID_NIC_SWITCH_DELETE_SWITCH