Partager via


GET_VIRTUAL_FUNCTION_PROBED_BARS fonction de rappel (wdm.h)

La routine GetVirtualFunctionProbedBars retourne les valeurs des registres d’adresses de base PCI Express (PCIe) d’un appareil qui prend en charge l’interface unique de virtualisation d’E/S racine (SR-IOV).

GetVirtualFunctionProbedBars retourne les valeurs BAR signalées par l’appareil après une requête effectuée par le pilote de bus PCI. Cette requête détermine l’espace d’adressage de mémoire ou d’E/S requis par l’appareil.

Syntaxe

GET_VIRTUAL_FUNCTION_PROBED_BARS GetVirtualFunctionProbedBars;

NTSTATUS GetVirtualFunctionProbedBars(
  [in, out] PVOID Context,
  [out]     PULONG BaseRegisterValues
)
{...}

Paramètres

[in, out] Context

Pointeur vers des informations de contexte spécifiques à l’interface. L’appelant transmet la valeur qui est passée en tant que membre Context de la structure PCI_VIRTUALIZATION_INTERFACE de l’interface.

[out] BaseRegisterValues

Pointeur vers un tableau de valeurs ULONG. La routine GetVirtualFunctionProbedBars retourne une valeur pour chaque BARRE de l’appareil.

GetVirtualFunctionProbedBars retourne un maximum de valeurs PCI_TYPE0_ADDRESSES dans ce tableau.

Valeur de retour

La routine GetVirtualFunctionProbedBars retourne l’une des valeurs NTSTATUS suivantes :

Retourner le code Description
STATUS_SUCCESS L’opération s’est terminée avec succès.
STATUS_INVALID_DEVICE_STATE L’appareil ne prend pas en charge l’interface SR-IOV.

Remarques

Pilote de bus PCI. qui s’exécute dans le système d’exploitation de gestion de la partition parente Hyper-V, interroge les exigences d’espace d’adressage de mémoire ou d’E/S de chaque BARRE de l’appareil. Le pilote de bus PCI effectue cette requête quand il détecte d’abord l’adaptateur sur le bus.

À l’aide de cette requête BAR, le pilote de bus PCI détermine les éléments suivants :

  • Indique si une barre est prise en charge par l’appareil.

  • Si une barre est prise en charge, la quantité d’espace d’adressage d’E/S ou de mémoire requise pour la BARRE.

Le pilote PCI effectue cette requête BAR comme suit :

  1. Le pilote de bus PCI écrit 0xFFFFFFFF dans une barre.

  2. Le pilote de bus PCI lit la barre pour déterminer l’espace mémoire ou d’adressage requis par l’appareil. La valeur zéro indique que l’appareil ne prend pas en charge la BARRE.

La routine GetVirtualFunctionProbedBars est fournie par l’interface GUID_PCI_VIRTUALIZATION_INTERFACE.

Les notes suivantes s’appliquent à la routine GetVirtualFunctionProbedBars :

  • L’interface SR-IOV ne nécessite pas que les fichiers BAR d’un VF PCIe soient conformes au protocole permettant de déterminer la taille du bloc de mémoire ou de l’espace d’adressage d’E/S d’une barre d’adresses. Par conséquent, le pilote PCI virtuel (VPCI), qui s’exécute dans le système d’exploitation invité, détermine la taille à l’aide de la taille équivalente des RBA sur l’appareil physique. Le pilote VPCI obtient ces informations en appelant la routine GetVirtualFunctionProbedBars.

  • Le pilote VPCI nécessite la taille de la mémoire ou de l’espace d’adressage d’E/S pour chaque barre après le démarrage de l’appareil physique. À ce stade, le pilote PCI ne peut pas effectuer une requête BAR sur l’appareil sans modifier la valeur actuelle de la barre. Par conséquent, lorsque la routine GetVirtualFunctionProbedBars est appelée par le pilote VPCI, le pilote PCI retourne les informations DE BARRE obtenues pendant la requête BAR. Le pilote PCI a effectué cette requête lorsque l’appareil a été détecté pour la première fois sur le bus.

Exigences

Exigence Valeur
client minimum pris en charge Pris en charge dans Windows Server 2012 et versions ultérieures de Windows.
plateforme cible Bureau
d’en-tête wdm.h (include Wdm.h)
IRQL PASSIVE_LEVEL

Voir aussi

PCI_VIRTUALIZATION_INTERFACE