WHvCreateVpciDevice

Crée un appareil PCI virtuel (VPCI) et affecte ses ressources à une partition.

Syntaxe

typedef enum WHV_CREATE_VPCI_DEVICE_FLAGS
{
    WHvCreateVpciDeviceFlagNone = 0x00000000,
    WHvCreateVpciDeviceFlagPhysicallyBacked = 0x00000001,
    WHvCreateVpciDeviceFlagUseLogicalInterrupts = 0x00000002
} WHV_CREATE_VPCI_DEVICE_FLAGS;

// Enables bitwise operators on the WHV_CREATE_VPCI_DEVICE_FLAGS enumeration.
DEFINE_ENUM_FLAG_OPERATORS(WHV_CREATE_VPCI_DEVICE_FLAGS);

HRESULT
WINAPI
WHvCreateVpciDevice(
    _In_ WHV_PARTITION_HANDLE Partition,
    _In_ UINT64 LogicalDeviceId,
    _In_ HANDLE VpciResource,
    _In_ WHV_CREATE_VPCI_DEVICE_FLAGS Flags,
    _In_opt_ HANDLE NotificationEventHandle
    );

Paramètres

Partition

Gérer l’objet de partition.

LogicalDeviceId

Spécifie un identificateur unique pour l’appareil dans l’étendue de la partition.

VpciResource

Gérez une ressource VPCI précédemment allouée qui sauvegarde l’appareil virtuel. Obtenez ce handle à partir de WHvAllocateVpciResource.

Flags

Spécifie les caractéristiques facultatives de l’appareil à créer, en tant que combinaison de WHV_CREATE_VPCI_DEVICE_FLAGS valeurs.

NotificationEventHandle

Spécifie un handle facultatif pour un événement signalé pour avertir l’appelant des événements asynchrones associés à l’appareil VPCI. Lorsque l’événement est signalé, récupérez les notifications en attente avec WHvGetVpciDeviceNotification.

Valeur de retour

Si la fonction réussit, la valeur de retour est S_OK.

Remarks

La WHvCreateVpciDevice fonction crée un appareil PCI virtuel et affecte les ressources physiques ou virtuelles identifiées par VpciResource la partition. Une fois cet appel terminé, l’IOMMU est programmé afin que l’ID de demandeur PCI de la fonction physique ou virtuelle qui sauvegarde l’appareil soit affecté au domaine de partition, remaappant toutes les opérations DMA provenant de cette fonction à l’espace d’adressage de la partition.

Allouez la ressource avec WHvAllocateVpciResource avant d’appeler cette fonction. Une fois l’appareil créé, mappez ses plages MMIO et WHvMapVpciDeviceMmioRanges ses interruptions avec WHvMapVpciDeviceInterrupt. Détruisez l’appareil avec WHvDeleteVpciDevice.

Exigences

Requirement Valeur
Windows minimum pris en charge Windows 10, version 20H2 (x64) ; Windows 11, version 24H2, build 26100.3915 (Arm64)
Header WinHvPlatform.h
Bibliothèque WinHvPlatform.lib
DLL WinHvPlatform.dll
Architecture x64, Arm64

Voir aussi