WHvGetVpciDeviceProperty

仮想 PCI (VPCI) デバイスのプロパティを取得します。

構文

typedef enum WHV_VPCI_DEVICE_PROPERTY_CODE
{
    WHvVpciDevicePropertyCodeUndefined   = 0,
    WHvVpciDevicePropertyCodeHardwareIDs = 1,
    WHvVpciDevicePropertyCodeProbedBARs  = 2
} WHV_VPCI_DEVICE_PROPERTY_CODE;

HRESULT
WINAPI
WHvGetVpciDeviceProperty(
    _In_ WHV_PARTITION_HANDLE Partition,
    _In_ UINT64 LogicalDeviceId,
    _In_ WHV_VPCI_DEVICE_PROPERTY_CODE PropertyCode,
    _Out_writes_bytes_to_(PropertyBufferSizeInBytes, *WrittenSizeInBytes) VOID* PropertyBuffer,
    _In_ UINT32 PropertyBufferSizeInBytes,
    _Out_opt_ UINT32* WrittenSizeInBytes
    );

Parameters

Partition

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

LogicalDeviceId

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

PropertyCode

クエリを実行するプロパティを WHV_VPCI_DEVICE_PROPERTY_CODE 値として指定します。

PropertyBuffer

要求されたプロパティの値を受け取ります。 WHvVpciDevicePropertyCodeHardwareIDsの場合、バッファーはWHV_VPCI_HARDWARE_IDS構造体を受け取ります。 WHvVpciDevicePropertyCodeProbedBARsの場合は、WHV_VPCI_PROBED_BARS構造体を受け取ります。

PropertyBufferSizeInBytes

PropertyBuffer バッファーのサイズをバイト単位で指定します。

WrittenSizeInBytes

PropertyBufferに書き込まれたバイト数を受け取ります。 このパラメーターは省略可能であり、 NULLできます。

戻り値

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

PropertyBufferSizeInBytesが要求されたプロパティに必要な構造体よりも小さい場合、関数はWHV_E_INSUFFICIENT_BUFFERを返します。 PropertyCodeが認識されたプロパティでない場合、関数はWHV_E_UNKNOWN_PROPERTYを返します。

Remarks

WHvGetVpciDeviceProperty関数は、WHvCreateVpciDeviceで作成された VPCI デバイスのプロパティを取得します。 WHvVpciDevicePropertyCodeHardwareIDsを使用して、デバイスの PCI ベンダー、デバイス、リビジョン、クラス、サブシステムの識別子を取得し、WHvVpciDevicePropertyCodeProbedBARsを使用して、デバイスの種類 0 のベース アドレス レジスタ (BAR) のプローブ値を取得します。

Requirements

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

こちらも参照ください