仮想 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
WHvWriteVpciDeviceRegister(
_In_ WHV_PARTITION_HANDLE Partition,
_In_ UINT64 LogicalDeviceId,
_In_ const WHV_VPCI_DEVICE_REGISTER* Register,
_In_reads_bytes_(Register->SizeInBytes) const VOID* Data
);
Parameters
Partition
VPCI デバイスを所有するパーティションへのハンドル。
LogicalDeviceId
VPCI デバイスの論理デバイス識別子を指定します。
Register
書き込むレジスタを、レジスタ領域、オフセット、およびサイズを識別する WHV_VPCI_DEVICE_REGISTER 構造体として指定します。
Data
レジスタに書き込むデータを指定します。 バッファーは、少なくとも Register->SizeInBytes バイトである必要があります。
戻り値
関数が成功した場合、戻り値は S_OK。
Remarks
WHvWriteVpciDeviceRegister関数は、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 |