GET_VIRTUAL_DEVICE_LOCATION fonction de rappel (wdm.h)

La routine GetLocation retourne l’emplacement d’une fonction virtuelle (VF) PCI Express (PCIe) sur un bus PCI. Un appareil qui prend en charge l’interface de virtualisation d’E/S racine unique (SR-IOV) peut exposer une ou plusieurs machines virtuelles sur le bus PCI.

Syntaxe

GET_VIRTUAL_DEVICE_LOCATION GetVirtualDeviceLocation;

NTSTATUS GetVirtualDeviceLocation(
  [in, out] PVOID Context,
  [in]      USHORT VirtualFunction,
  [out]     PUINT16 SegmentNumber,
  [out]     PUINT8 BusNumber,
  [out]     PUINT8 FunctionNumber
)
{...}

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.

[in] VirtualFunction

Valeur de base zéro qui spécifie le VF sur l’appareil pour lequel l’emplacement de l’appareil est retourné

[out] SegmentNumber

Pointeur vers une variable fournie par l’appelant dans laquelle cette routine retourne une valeur UINT16 pour le numéro de segment PCI actuel. Cette valeur spécifie le groupe de bus PCI sur lequel l’appareil est attaché.

[out] BusNumber

Pointeur vers une variable fournie par l’appelant dans laquelle cette routine retourne une valeur UINT8. Cette valeur spécifie le numéro de bus PCI actuel auquel l’appareil est attaché.

[out] FunctionNumber

Pointeur vers une variable fournie par l’appelant dans laquelle cette routine retourne une valeur UINT8. Cette valeur contient le numéro de fonction de la VF spécifiée sur le bus PCI.

Valeur retournée

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

Code de retour Description
STATUS_SUCCESS L’opération s’est terminée avec succès.
STATUS_INVALID_PARAMETER Le paramètre VirtualFunction est supérieur à la valeur du membre TotalVFs de la structure de capacité étendue SR-IOV pour l’appareil.

Remarques

La routine GetLocation retourne l’emplacement actuel d’un VF dans la hiérarchie PCIe. Ces informations sont nécessaires pour qu’un système de virtualisation qui utilise une unité de gestion de la mémoire d’E/S (IOMMU) achemine le trafic vers ou depuis l’appareil.

En cas de retour réussi d’un appel à la routine GetLocation , le paramètre FunctionNumber contient une valeur qui représente le numéro de fonction de la VF spécifiée sur le bus PCI. Cette valeur est basée sur l’option ARI (Alternative Routing Interpretation) de la spécification PCI Express 3.0. ARI traite un bus PCIe comme un seul appareil avec un espace de fonction 8 bits, ce qui permet 256 fonctions sur le bus.

La routine GetLocation est fournie par l’interface GUID_PCI_VIRTUALIZATION_INTERFACE .

Le numéro de bus PCI sur lequel se trouve la VF peut changer. Nous déconseillons les pilotes de stocker l’emplacement de périphérique d’une machine virtuelle dans un stockage non volatile tel que le Registre.

Configuration requise

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

Voir aussi

PCI_VIRTUALIZATION_INTERFACE