仮想 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 |