Partager via


NdisMGetVirtualFunctionBusData, fonction (ndis.h)

Un pilote miniport appelle la fonction NdisMGetVirtualFunctionBusData pour lire les données à partir de l’espace de configuration PCI Express (PCIe) d’une fonction virtuelle spécifiée sur la carte réseau.

RemarqueNdisMGetVirtualFunctionBusData ne doit être appelé que par le pilote miniport pour la fonction physique PCIe (PF) de la carte réseau.
 

Syntaxe

ULONG NdisMGetVirtualFunctionBusData(
  [in]  NDIS_HANDLE            NdisMiniportHandle,
  [in]  NDIS_SRIOV_FUNCTION_ID VFId,
  [out] PVOID                  Buffer,
  [in]  ULONG                  Offset,
  [in]  ULONG                  Length
);

Paramètres

[in] NdisMiniportHandle

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

[in] VFId

Identificateur de la machine virtuelle à partir de laquelle les données de l’espace de configuration PCI sont retournées.

[out] Buffer

Pointeur vers une mémoire tampon qui reçoit les données lues à partir de l’espace de configuration PCI de VF.

[in] Offset

Offset, en unités d’octets, dans l’espace de configuration PCI de VF à partir duquel les données sont lues.

[in] Length

Longueur, en unités d’octets, des données à lire.

Remarque La taille de la mémoire tampon référencée par tampon doit être au moins aussi importante que la valeur du paramètre Length.
 

Valeur de retour

NdisMGetVirtualFunctionBusData retourne le nombre d’octets lus à partir de l’espace de configuration PCI. Si l’opération de lecture échoue, NdisMGetVirtualFunctionBusData retourne zéro.

Remarques

Le pilote PF miniport appelle généralement NdisMGetVirtualFunctionBusData lorsqu’il gère une demande de méthode OID de OID_SRIOV_READ_VF_CONFIG_SPACE.
Toutefois, le pilote peut appeler cette fonction à tout moment après l’activation de la virtualisation sur la carte réseau via un appel à NdisMEnableVirtualization.

Pour plus d’informations sur la façon d’interroger l’espace de configuration PCI de VF, consultez Interroger l’espace de configuration PCI pour une fonction virtuelle.

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 NdisMGetVirtualFunctionBusData. Au lieu de cela, le pilote doit interagir avec le VBD via un canal de communication privé et demander que l’appel VBD GetVirtualFunctionData. Cette fonction est exposée à partir de 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 Aucune prise en charge, prise en charge dans NDIS 6.30 et versions ultérieures.
serveur minimum pris en charge Windows Server 2012
plateforme cible Universel
d’en-tête ndis.h (include Ndis.h)
bibliothèque Ndis.lib
IRQL <= DISPATCH_LEVEL

Voir aussi

GUID_PCI_VIRTUALIZATION_INTERFACE

GetVirtualFunctionData

NdisMEnableVirtualization

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE