Partager via


NdisMSetVirtualFunctionBusData, fonction (ndis.h)

Un pilote miniport appelle la fonction NdisMSetVirtualFunctionBusData pour écrire des données dans l’espace de configuration PCI Express (PCIe) d’une fonction virtuelle (VF) sur la carte réseau.

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

Syntaxe

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

Paramètres

[in] NdisMiniportHandle

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

[in] VFId

Identificateur de la VF dans laquelle les données sont écrites dans son espace de configuration PCI.

[in] Buffer

Pointeur vers une mémoire tampon qui contient les données à écrire dans l’espace de configuration PCI.

[in] Offset

Décalage, en unités d’octets, dans l’espace de configuration PCI dans lequel les données sont écrites.

[in] Length

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

Valeur retournée

NdisMSetVirtualFunctionBusData retourne le nombre d’octets écrits dans l’espace de configuration PCI. Si l’opération d’écriture échoue, NdisMSetVirtualFunctionBusData retourne zéro.

Remarques

Le pilote pf miniport appelle généralement NdisMSetVirtualFunctionBusData lorsqu’il gère une demande de méthode OID de OID_SRIOV_WRITE_VF_CONFIG_SPACE.
Toutefois, le pilote peut appeler cette fonction à tout moment après que la virtualisation a été activée sur la carte réseau via un appel à NdisMEnableVirtualization.

Pour plus d’informations sur la communication backchannel au sein de l’interface de virtualisation d’E/S racine unique (SR-IOV), consultez Communication backchannel SR-IOV PF/VF.

Pour plus d’informations sur l’interface SR-IOV, consultez Vue d’ensemble de la virtualisation d’E/S racine unique (SR-IOV).

Interfaçage vers 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 NdisMSetVirtualFunctionBusData. Au lieu de cela, le pilote doit s’interfacer avec le VBD via un canal de communication privé et demander au VBD d’appeler SetVirtualFunctionData. 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 de périphérique physique (PDO) sur le bus PCI. Cette demande 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 Aucun pris en charge, pris en charge dans NDIS 6.30 et versions ultérieures.
Serveur minimal pris en charge Windows Server 2012
Plateforme cible Universal
En-tête ndis.h (inclure Ndis.h)
Bibliothèque Ndis.lib
IRQL <= DISPATCH_LEVEL

Voir aussi

GUID_PCI_VIRTUALIZATION_INTERFACE

NdisMEnableVirtualization

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_WRITE_VF_CONFIG_SPACE

SetVirtualFunctionData