Partager via


GET_VIRTUAL_DEVICE_RESOURCES fonction de rappel (wdm.h)

La routine GetResources retourne les ressources requises par la fonction physique PCI Express (PCIe) pour permettre la virtualisation sur un appareil qui prend en charge l’interface d’E/S racine unique (SR-IOV).

Syntaxe

GET_VIRTUAL_DEVICE_RESOURCES GetVirtualDeviceResources;

void GetVirtualDeviceResources(
  [in, out] PVOID Context,
  [out]     PUINT8 CapturedBusNumbers
)
{...}

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] CapturedBusNumbers

Pointeur vers une variable fournie par l’appelant dans laquelle cette routine retourne une valeur UINT8. Cette valeur spécifie le nombre d’autobus PCIe qui ont été capturés pour une utilisation par le SR-IOV PF de l’appareil.

Valeur de retour

Aucun

Remarques

Un appareil PCIe consomme généralement des ressources sur un seul bus PCI. Le pilote PCI affecte un appareil à un bus PCI en écrivant le numéro de bus dans le registre du numéro de bus secondaire et le numéro de bus subordonné dans le port de pont en amont. Ce port est un pont PCI à PCI au sein d’un port racine PCIe ou d’un port de commutateur PCIe.

Un appareil qui prend en charge l’interface SR-IOV peut créer plus de fonctions virtuelles que ce qui peut être pris en charge sur le bus PCI sur lequel l’appareil est connecté. Dans ces situations, le port de pont en amont doit être configuré pour capturer un ou plusieurs bus PCI inutilisés. Pour ce faire, écrivez une valeur plus grande dans le registre du numéro de bus subordonné du port.

Un appareil qui prend en charge l’interface SR-IOV doit capturer des bus PCI si au moins l’une des valeurs suivantes est vraie :

  • L’appareil a plus de huit fonctions totales (FF et VFs) et l’appareil ne prend pas en charge l’option ARI (Alternative Routing Interpretation) de la spécification PCI Express 3.0.

  • L’appareil prend en charge ARI et a plus de huit fonctions totales, mais le port de pont en amont ne prend pas en charge ARI.

  • L’appareil prend en charge ARI et dispose de plus de 256 fonctions, et le port de pont en amont prend en charge ARI.

Quelle que soit la prise en charge de l’ARI, chaque bus capturé peut prendre en charge 256 fonctions.

Si l’appareil a besoin d’autres ID de demandeur PCIe (RID) afin d’activer toutes ses machines virtuelles, le pilote de bus PCI effectue les opérations suivantes :

  1. Écrit le numéro de bus de l’appareil dans le registre du numéro de bus secondaire PCIe.

  2. Écrit une valeur supérieure au numéro de bus de l’appareil dans le registre du numéro de bus subordonné PCIe.

La différence entre ces deux valeurs de registre représente le nombre de numéros de bus capturés.

La routine GetResources est fournie par l’interface de GUID_PCI_VIRTUALIZATION_INTERFACE.

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