WHvCreateVpciDevice

Создает виртуальное устройство PCI (VPCI) и назначает ресурсы секции.

Синтаксис

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

Дескриптор объекта секции.

LogicalDeviceId

Указывает уникальный идентификатор устройства в области секции.

VpciResource

Обработайте ранее выделенный ресурс VPCI, который поддерживает виртуальное устройство. Получите этот дескриптор из WHvAllocateVpciResource.

Flags

Указывает необязательные характеристики создаваемого устройства в виде сочетания значений WHV_CREATE_VPCI_DEVICE_FLAGS .

NotificationEventHandle

Указывает необязательный дескриптор события, сигналивного для уведомления вызывающего объекта об асинхронных событиях, связанных с устройством VPCI. Когда событие сигнализирует, получите ожидающие уведомления с WHvGetVpciDeviceNotificationпомощью .

Возвращаемое значение

Если функция выполнена успешно, возвращается S_OKзначение.

Remarks

Функция WHvCreateVpciDevice создает виртуальное устройство PCI и назначает физические или виртуальные ресурсы, определенные VpciResource секцией. После завершения этого вызова IOMMU запрограммирован таким образом, чтобы идентификатор инициатора PCI физической или виртуальной функции, резервной копии устройства, назначается домену секции, переопределяя все операции DMA, исходящие из этой функции в адресное пространство секции.

Выделите ресурс WHvAllocateVpciResource перед вызовом этой функции. После создания устройства сопоставляйте диапазоны MMIO с WHvMapVpciDeviceMmioRanges его прерываниями WHvMapVpciDeviceInterrupt. Уничтожить устройство с WHvDeleteVpciDeviceпомощью .

Требования

Requirement Ценность
Минимальный поддерживаемый Windows Windows 10 версии 20H2 (x64); Windows 11 версии 24H2, сборка 26100.3915 (Arm64)
Header WinHvPlatform.h
Библиотека WinHvPlatform.lib
DLL WinHvPlatform.dll
Architecture x64, Arm64

См. также