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

handle 轉到 partition 物件。

LogicalDeviceId

指定分割區內裝置的唯一識別碼。

VpciResource

處理到先前分配的 VPCI 資源,該資源支援虛擬裝置。 從 取得此帳號 WHvAllocateVpciResource

Flags

指定裝置的可選特性,作為數值組合 WHV_CREATE_VPCI_DEVICE_FLAGS 而成。

NotificationEventHandle

指定一個可選的事件句柄,該用以通知呼叫者與 VPCI 裝置相關的非同步事件。 當事件被通知時,請用 WHvGetVpciDeviceNotification取得待處理通知。

傳回值

如果函式成功,則傳回值為 S_OK

Remarks

該函式建立 WHvCreateVpciDevice 虛擬 PCI 裝置,並將所 VpciResource 識別的實體或虛擬資源指派至分割區。 呼叫完成後,IOMMU 會被設定為將支援裝置的實體或虛擬功能的 PCI 請求 ID 指派到分割區域,將來自該函式的 DMA 操作重新映射到分割區的位址空間。

在呼叫此函式前,先配置資源 WHvAllocateVpciResource 。 裝置建立後,將 映射 WHvMapVpciDeviceMmioRanges 為 的 MMIO 範圍,映射為 WHvMapVpciDeviceInterrupt的中斷。 用 摧毀裝置 WHvDeleteVpciDevice

Requirements

需求 價值
最低支援的 Windows Windows 10,版本 20H2(x64);Windows 11,版本 24H2,建置版 26100.3915(Arm64)
Header WinHvPlatform.h
圖書館 WinHvPlatform.lib
DLL WinHvPlatform.dll
Architecture x64、Arm64

另請參閱