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 |