WHvWriteVpciDeviceRegister

写入虚拟 PCI 设备的配置空间或 MMIO 寄存器。

Syntax

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
WHvWriteVpciDeviceRegister(
    _In_ WHV_PARTITION_HANDLE Partition,
    _In_ UINT64 LogicalDeviceId,
    _In_ const WHV_VPCI_DEVICE_REGISTER* Register,
    _In_reads_bytes_(Register->SizeInBytes) const VOID* Data
    );

参数

Partition

对拥有VPI 设备的分区的句柄。

LogicalDeviceId

指定一个逻辑设备标识符,该标识符为一个。。

Register

指定要写入的寄存器,作为 WHV_VPCI_DEVICE_REGISTER 标识寄存器空间、偏移量和大小的结构。

Data

指定要写入寄存器的数据。 缓冲区必须至少 Register->SizeInBytes 为字节。

返回值

如果函数成功,则返回值为 S_OK.

Remarks

WHvWriteVpciDeviceRegister 函数在 PCIe 物理或虚拟函数的配置空间或 MMIO 空间中写入与一个VPI设备关联的寄存器。 对于配置空间,基础虚拟 PCI 堆栈可能会筛选对某些寄存器的访问,以确保 PCIe 函数的安全 VM 分配。 对于 MMIO 空间,此函数可以编写尚未直接映射到调用方地址空间的寄存器,因为基础虚拟 PCI 堆栈必须对这些寄存器强制执行缓解措施。

要求

要求 价值
支持的最低Windows Windows 10版本 20H2 (x64):Windows 11版本 24H2 内部版本 26100.3915 (Arm64)
Header WinHvPlatform.h
图书馆 WinHvPlatform.lib
DLL WinHvPlatform.dll
Architecture x64、Arm64

另见