GET_VIRTUAL_DEVICE_RESOURCES fonction de rappel (wdm.h)

La routine GetResources retourne les ressources dont la fonction physique (PF) PCI Express (PCIe) a besoin pour activer la virtualisation sur un appareil qui prend en charge l’interface de virtualisation 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 pour 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 de bus PCIe qui ont été capturés pour être utilisés par le PF SR-IOV de l’appareil.

Valeur de retour

None

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 numéro de bus secondaire et le registre numéro de bus subordonné dans le port de pont 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 amont doit être configuré pour capturer un ou plusieurs bus PCI inutilisés. Pour ce faire, écrivez une valeur plus grande dans le registre numéro de bus subordonné du port.

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

  • L’appareil a plus de huit fonctions au total (PFs 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 au total, mais le port de pont amont ne prend pas en charge ARI.

  • L’appareil prend en charge ARI et a plus de 256 fonctions, et le port de pont 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 de plus d’ID de demandeur (RID) PCIe pour 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 numéro de bus secondaire PCIe.

  2. Écrit une valeur supérieure au numéro de bus de l’appareil dans le registre 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 GUID_PCI_VIRTUALIZATION_INTERFACE .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge dans Windows Server 2012 et versions ultérieures de Windows.
Plateforme cible Desktop (Expérience utilisateur)
En-tête wdm.h (include Wdm.h)
IRQL PASSIVE_LEVEL

Voir aussi

PCI_VIRTUALIZATION_INTERFACE