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 virtualisation d’E/S racine unique (SR-IOV) étendue dans l’espace de configuration PCI Express (PCIe) pour la fonction physique de la carte réseau (PF).

RemarqueNdisMEnableVirtualization ne doit être appelée que 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

La carte réseau handle que NDIS a passée au paramètre MiniportAdapterHandle de MiniportInitializeEx.

[in] NumVFs

Valeur USHORT qui contient le nombre de fonctions virtuelles (VFs) à activer 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.

Remarque 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 avoir la valeur FALSE.

[in] EnableMigrationInterrupt

Ce paramètre est réservé à NDIS et doit avoir la valeur 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 VF Enable bit du membre SR-IOV Control. NdisMEnableVirtualization efface ce bit si EnableVirtualization a la valeur FALSE.

Valeur de retour

NdisMEnableVirtualization pouvez retourner l’une des valeurs d’état suivantes.

Retourner le code 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 a la valeur FALSE et le paramètre NumVFs est défini sur une valeur différente de zéro.
NDIS_STATUS_FAILURE
Échec de l’opération de virtualisation.
Remarque 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 de 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 requête 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. Le pilote effectue cette opération en appelant NdisMEnableVirtualization avec les paramètres suivants.

Terme Description
NumVFs Définissez le nombre de machines virtuelles à activer pour le commutateur de carte réseau.
EnableVirtualization Défini 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. Le pilote effectue cette opération en appelant NdisMEnableVirtualization avec les paramètres suivants :

Terme Description
NumVFs Défini sur zéro.
EnableVirtualization Défini 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).

Interfacing à 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 interagir avec le VBD via un canal de communication privé et demander que l’appel VBD 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 requête IRP_MN_QUERY_INTERFACE à son objet d’appareil physique (PDO) sur le bus PCI. Cette demande doit être effectuée à partir d’IRQL = PASSIVE_LEVEL. Dans cette requête, le pilote doit définir le paramètre InterfaceType sur GUID_PCI_VIRTUALIZATION_INTERFACE.

Exigences

Exigence Valeur
client minimum pris en charge Prise en charge dans NDIS 6.30 et versions ultérieures.
plateforme cible Universel
d’en-tête ndis.h (include 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