Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 :
Le pilote de bus PCI écrit 0xFFFFFFFF dans une barre.
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 |