WHvReadVpciDeviceRegister

仮想 PCI (VPCI) デバイスの構成スペースまたは MMIO レジスタを読み取ります。

構文

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 struct WHV_VPCI_DEVICE_REGISTER
{
    WHV_VPCI_DEVICE_REGISTER_SPACE Location;
    UINT32 SizeInBytes;
    UINT64 OffsetInBytes;
} WHV_VPCI_DEVICE_REGISTER;

HRESULT
WINAPI
WHvReadVpciDeviceRegister(
    _In_ WHV_PARTITION_HANDLE Partition,
    _In_ UINT64 LogicalDeviceId,
    _In_ const WHV_VPCI_DEVICE_REGISTER* Register,
    _Out_writes_bytes_(Register->SizeInBytes) VOID* Data
    );

Parameters

Partition

VPCI デバイスを所有するパーティションへのハンドル。

LogicalDeviceId

VPCI デバイスの論理デバイス識別子を指定します。

Register

レジスタ領域、オフセット、およびサイズを識別する WHV_VPCI_DEVICE_REGISTER 構造体として、読み取るレジスタを指定します。

Data

レジスタから読み取られたデータを受信します。 バッファーは、少なくとも Register->SizeInBytes バイトである必要があります。

戻り値

関数が成功した場合、戻り値は S_OK

Remarks

WHvReadVpciDeviceRegister関数は、VPCI デバイスに関連付けられている PCIe 物理または仮想関数の構成スペースまたは MMIO スペースからレジスタを読み取ります。 構成領域の場合、PCIe 関数のセキュリティで保護された VM の割り当てを保証するために、基になる仮想 PCI スタックによって特定のレジスタへのアクセスをフィルター処理できます。 MMIO スペースの場合、基になる仮想 PCI スタックはそれらのレジスタに軽減策を適用する必要があるため、この関数は呼び出し元のアドレス空間に直接マップされていないレジスタを読み取ることができます。

Requirements

要件 価値
サポートされている最小Windows Windows 10バージョン 20H2 (x64);Windows 11、バージョン 24H2、ビルド 26100.3915 (Arm64)
Header WinHvPlatform.h
図書館 WinHvPlatform.lib
DLL WinHvPlatform.dll
Architecture x64、Arm64

こちらも参照ください