写入虚拟 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 |