WHvCreateVpciDevice

Cria um dispositivo VPCI (PCI virtual) e atribui seus recursos a uma partição.

Sintaxe

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
    );

Parameters

Partition

Manipule para o objeto de partição.

LogicalDeviceId

Especifica um identificador exclusivo para o dispositivo dentro do escopo da partição.

VpciResource

Manipule para um recurso VPCI alocado anteriormente que faz backup do dispositivo virtual. Obtenha esse identificador de WHvAllocateVpciResource.

Flags

Especifica as características opcionais do dispositivo a ser criado, como uma combinação de WHV_CREATE_VPCI_DEVICE_FLAGS valores.

NotificationEventHandle

Especifica um identificador opcional para um evento que é sinalizado para notificar o chamador de eventos assíncronos associados ao dispositivo VPCI. Quando o evento for sinalizado, recupere as notificações pendentes com WHvGetVpciDeviceNotification.

Valor de retorno

Se a função for bem-sucedida, o valor retornado será S_OK.

Remarks

A WHvCreateVpciDevice função cria um dispositivo PCI virtual e atribui os recursos físicos ou virtuais identificados pela VpciResource partição. Após a conclusão dessa chamada, a IOMMU é programada para que a ID do solicitante PCI da função física ou virtual que faz backup do dispositivo seja atribuída ao domínio de partição, remapeando todas as operações de DMA originadas dessa função para o espaço de endereço da partição.

Aloque o recurso antes WHvAllocateVpciResource de chamar essa função. Depois que o dispositivo é criado, mapeie seus intervalos MMIO com WHvMapVpciDeviceMmioRanges e suas interrupções com WHvMapVpciDeviceInterrupt. Destrua o dispositivo com WHvDeleteVpciDevice.

Requisitos

Requirement Value
Suporte mínimo Windows Windows 10, versão 20H2 (x64); Windows 11, versão 24H2, build 26100.3915 (Arm64)
Header WinHvPlatform.h
Biblioteca WinHvPlatform.lib
DLL WinHvPlatform.dll
Arquitetura x64, Arm64

Consulte também