WHvCreateVpciDevice

Membuat perangkat PCI virtual (VPCI) dan menetapkan sumber dayanya ke partisi.

Syntax

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

Tangani ke objek partisi.

LogicalDeviceId

Menentukan pengidentifikasi unik untuk perangkat dalam cakupan partisi.

VpciResource

Tangani ke sumber daya VPCI yang dialokasikan sebelumnya yang mendukung perangkat virtual. Dapatkan handel ini dari WHvAllocateVpciResource.

Flags

Menentukan karakteristik opsional perangkat yang akan dibuat, sebagai kombinasi WHV_CREATE_VPCI_DEVICE_FLAGS nilai.

NotificationEventHandle

Menentukan handel opsional ke peristiwa yang disinyalir untuk memberi tahu pemanggil peristiwa asinkron yang terkait dengan perangkat VPCI. Saat peristiwa disinyalir, ambil pemberitahuan yang tertunda dengan WHvGetVpciDeviceNotification.

Mengembalikan Nilai

Jika fungsi berhasil, nilai yang dikembalikan adalah S_OK.

Remarks

Fungsi ini WHvCreateVpciDevice membuat perangkat PCI virtual dan menetapkan sumber daya fisik atau virtual yang diidentifikasi oleh VpciResource ke partisi. Setelah panggilan ini selesai, IOMMU diprogram sehingga ID pemohon PCI dari fungsi fisik atau virtual yang mendukung perangkat ditetapkan ke domain partisi, memulihkan operasi DMA apa pun yang berasal dari fungsi tersebut ke ruang alamat partisi.

Alokasikan sumber daya dengan WHvAllocateVpciResource sebelum memanggil fungsi ini. Setelah perangkat dibuat, petakan rentang MMIO-nya dengan WHvMapVpciDeviceMmioRanges dan interupsinya dengan WHvMapVpciDeviceInterrupt. Hancurkan perangkat dengan WHvDeleteVpciDevice.

Requirements

Persyaratan Nilai
Windows minimum yang didukung Windows 10, versi 20H2 (x64); Windows 11, versi 24H2, build 26100.3915 (Arm64)
Header WinHvPlatform.h
Perpustakaan WinHvPlatform.lib
DLL WinHvPlatform.dll
Architecture x64, Arm64

Baca juga