WHvCreateVpciDevice

Vytvoří virtuální zařízení PCI (VPCI) a přiřadí jeho prostředky k oddílu.

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

Parameters

Partition

Popisovač objektu oddílu

LogicalDeviceId

Určuje jedinečný identifikátor zařízení v rámci oboru oddílu.

VpciResource

Zpracujte s dříve přiděleným prostředkem VPCI, který virtuální zařízení zálohuje. Získat tento popisovač od WHvAllocateVpciResource.

Flags

Určuje volitelné vlastnosti zařízení, které se mají vytvořit, jako kombinaci WHV_CREATE_VPCI_DEVICE_FLAGS hodnot.

NotificationEventHandle

Určuje volitelný popisovač události, která je signalována, aby volajícímu oznámil asynchronní události přidružené k zařízení VPCI. Když je událost signalována, načtěte čekající oznámení s WHvGetVpciDeviceNotification.

Návratová hodnota

Pokud je funkce úspěšná, návratová hodnota je S_OK.

Remarks

Funkce WHvCreateVpciDevice vytvoří virtuální zařízení PCI a přiřadí fyzické nebo virtuální prostředky identifikované VpciResource oddílem. Po dokončení tohoto volání se ioMMU naprogramuje tak, aby ID žadatele PCI fyzické nebo virtuální funkce backingu zařízení bylo přiřazeno k doméně oddílů a znovu namapoval všechny operace DMA pocházející z této funkce do adresního prostoru oddílu.

Před voláním WHvAllocateVpciResource této funkce přidělte prostředek. Po vytvoření zařízení namapujte rozsahy MMIO a WHvMapVpciDeviceMmioRanges jeho přerušení s WHvMapVpciDeviceInterrupt. Zničit zařízení pomocí WHvDeleteVpciDevice.

Požadavky

Requirement Value
Minimální podporovaná Windows Windows 10 verze 20H2 (x64); Windows 11, verze 24H2, build 26100.3915 (Arm64)
Header WinHvPlatform.h
Knihovna WinHvPlatform.lib
knihovna DLL WinHvPlatform.dll
Architektura x64, Arm64

Viz také