Partager via


OID_SRIOV_WRITE_VF_CONFIG_SPACE

Un pilote qui se superpose émet une demande de jeu d’identificateur d’objet (OID) de OID_SRIOV_WRITE_VF_CONFIG_SPACE d’écrire des données dans l’espace de configuration PCI Express (PCIe) pour une fonction virtuelle PCIe (VF) spécifiée sur la carte réseau.

Les pilotes trop chargés émettent cette demande de définition OID sur le pilote miniport pour la fonction physique PCIe (PF) de la carte réseau. Cette demande de méthode OID est requise pour les pilotes pf miniport qui prennent en charge l’interface de virtualisation d’E/S racine unique (SR-IOV).

Le membre InformationBuffer de la structure NDIS_OID_REQUEST contient un pointeur vers une mémoire tampon allouée à l’appelant. Cette mémoire tampon est mise en forme pour contenir les éléments suivants :

  • Une structure NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS qui contient les paramètres d’une opération d’écriture de l’espace de configuration PCI d’une VF.

  • Espace tampon supplémentaire qui contient les données à écrire dans l’espace de configuration PCI.

Notes

Le pilote miniport VF s’exécute dans le système d’exploitation invité d’une partition enfant Hyper-V. Pour cette raison, le pilote miniport VF ne peut pas accéder directement aux ressources matérielles, telles que l’espace de configuration PCI de la VF. Seul le pilote pf miniport, qui s’exécute dans le système d’exploitation de gestion d’une partition parente Hyper-V, peut accéder à l’espace de configuration PCI pour une VF.

Le pilote qui se superpose, comme la pile de virtualisation, émet la demande de jeu OID de OID_SRIOV_WRITE_VF_CONFIG_SPACE lorsque le pilote VF miniport appelle NdisMSetBusData pour écrire dans son espace de configuration PCI.

Lorsqu’il gère la demande de méthode OID de OID_SRIOV_WRITE_VF_CONFIG_SPACE, le pilote pf miniport doit suivre les instructions suivantes :

  • Le pilote pf miniport doit vérifier que le VF, spécifié par le membre VFId de la structure NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS , dispose de ressources qui ont déjà été allouées. Le pilote pf miniport alloue des ressources pour une machine virtuelle via une demande de méthode OID de OID_NIC_SWITCH_ALLOCATE_VF.

    Si les ressources de la VF spécifiée n’ont pas été allouées, le pilote doit échouer dans la requête OID.

  • Le pilote pf miniport appelle NdisMSetVirtualFunctionBusData pour écrire dans l’espace de configuration PCI demandé. Toutefois, le pilote pf miniport peut également retourner des données d’espace de configuration PCI pour la VF mise en cache par le pilote à partir des opérations de lecture ou d’écriture précédentes de l’espace de configuration PCI.

    Note 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 pf 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_VPCI_INTERFACE_STANDARD prise en charge par le pilote de bus PCI virtuel (VPCI) sous-jacent.

Si le pilote pf miniport peut exécuter correctement la demande OID, il doit copier les données d’espace de configuration PCI demandées dans la mémoire tampon référencée par le membre InformationBuffer de la structure NDIS_OID_REQUEST . Le pilote copie les données dans la mémoire tampon au décalage spécifié par le membre BufferOffset de la structure NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS .

Pour plus d’informations, consultez Définition des données de configuration PCI d’une fonction virtuelle.

Codes d’état de retour

Le pilote pf miniport renvoie l’un des codes status suivants pour la demande de jeu OID de OID_SRIOV_WRITE_VF_CONFIG_SPACE.

Code d’état Description

NDIS_STATUS_SUCCESS

La demande OID s’est terminée avec succès.

NDIS_STATUS_NOT_SUPPORTED

Le pilote pf miniport ne prend pas en charge l’interface de virtualisation d’E/S racine unique (SR-IOV) ou n’est pas activé pour utiliser l’interface.

NDIS_STATUS_INVALID_PARAMETER

Un ou plusieurs des membres de la structure NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS ont des valeurs non valides.

NDIS_STATUS_INVALID_LENGTH

La mémoire tampon d’informations était trop courte. NDIS définit les DONNÉES. SET_INFORMATION. BytesNeeded membre dans la structure NDIS_OID_REQUEST à la taille de mémoire tampon minimale requise.

NDIS_STATUS_FAILURE

La demande a échoué pour d’autres raisons.

Spécifications

Version

Pris en charge dans NDIS 6.30 et versions ultérieures.

En-tête

Ntddndis.h (inclure Ndis.h)

Voir aussi


GUID_VPCI_INTERFACE_STANDARD

NDIS_OID_REQUEST

NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS

NdisMSetBusData

NdisMSetVirtualFunctionBusData

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE

SetVirtualFunctionData