WHvMapVpciDeviceMmioRanges

Sanal PCI (VPCI) cihazının MMIO aralıklarını çağıranın işlemine eşler.

Sözdizimi

typedef enum WHV_VPCI_DEVICE_REGISTER_SPACE
{
    WHvVpciConfigSpace = -1,
    WHvVpciBar0 = 0,
    WHvVpciBar1 = 1,
    WHvVpciBar2 = 2,
    WHvVpciBar3 = 3,
    WHvVpciBar4 = 4,
    WHvVpciBar5 = 5
} WHV_VPCI_DEVICE_REGISTER_SPACE;

typedef enum WHV_VPCI_MMIO_RANGE_FLAGS
{
    WHvVpciMmioRangeFlagReadAccess = 0x00000001,
    WHvVpciMmioRangeFlagWriteAccess = 0x00000002
} WHV_VPCI_MMIO_RANGE_FLAGS;

// Enables bitwise operators on the WHV_VPCI_MMIO_RANGE_FLAGS enumeration.
DEFINE_ENUM_FLAG_OPERATORS(WHV_VPCI_MMIO_RANGE_FLAGS);

typedef struct WHV_VPCI_MMIO_MAPPING
{
    WHV_VPCI_DEVICE_REGISTER_SPACE Location;
    WHV_VPCI_MMIO_RANGE_FLAGS Flags;
    UINT64 SizeInBytes;
    UINT64 OffsetInBytes;
    PVOID VirtualAddress;
} WHV_VPCI_MMIO_MAPPING;

HRESULT
WINAPI
WHvMapVpciDeviceMmioRanges(
    _In_ WHV_PARTITION_HANDLE Partition,
    _In_ UINT64 LogicalDeviceId,
    _Out_ UINT32* MappingCount,
    _Outptr_result_buffer_(*MappingCount) WHV_VPCI_MMIO_MAPPING** Mappings
    );

Parameters

Partition

VPCI cihazının sahibi olan bölümün işleyicisi.

LogicalDeviceId

VPCI cihazının mantıksal cihaz tanımlayıcısını belirtir.

MappingCount

Döndürülen Mappings dizideki öğe sayısını alır.

Mappings

Eşlenmiş MMIO aralıklarını açıklayan bir öğe dizisine WHV_VPCI_MMIO_MAPPING yönelik bir işaretçi alır.

Dönüş Değeri

İşlev başarılı olursa, dönüş değeri olur S_OK.

Açıklamalar

İşlev, WHvMapVpciDeviceMmioRanges bir VPCI cihazıyla ilişkili fiziksel MMIO aralıklarını çağıranın işleminin sanal adres alanına eşler. Cihaz D0 güç durumunda olmalıdır; ile WHvSetVpciDevicePowerStategüç durumunu ayarlayın.

Kullanılabilir her temel adres kaydı (BAR), dizideki Mappings bir veya daha fazla girişle temsil edilir. Girdiler öncelikli olarak BAR'a göre sıralanır. Aynı ÇUBUK için girişler uzaklık ölçütüne göre sıralanır, çakışmaz ve araya girilmiş boşluklar olmadan ÇUBUK'un tüm boyutunu kapsar. Her giriş, temel adresten ve belirtilen uzunluktan belirtilen uzaklıkta, alt aralığın eşlendiği sanal adresten ve çağıranın işlemine verilen erişim düzeyinden başlayarak ÇUBUK'un bir alt aralığını tanımlar.

Döndürülen dizi, çağıran ile cihazın MMIO aralıklarının WHvUnmapVpciDeviceMmioRangeseşlemesini kaldırana veya ile cihazı WHvSetVpciDevicePowerStateyok edene WHvDeleteVpciDevicekadar geçerli kalır.

Requirements

Requirement Değer
Desteklenen en düşük Windows Windows 10, sürüm 20H2 (x64); Windows 11, sürüm 24H2, derleme 26100.3915 (Arm64)
Header WinHvPlatform.h
Kütüphane WinHvPlatform.lib
DLL WinHvPlatform.dll
Architecture x64, Arm64

Ayrıca bakınız