WHvReadVpciDeviceRegister

Считывает пространство конфигурации или регистр MMIO виртуального устройства PCI (VPCI).

Синтаксис

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

Parameters

Partition

Обработайте секцию, которая владеет устройством VPCI.

LogicalDeviceId

Указывает идентификатор логического устройства устройства VPCI.

Register

Указывает регистр для чтения в виде WHV_VPCI_DEVICE_REGISTER структуры, определяющей пространство регистра, смещение и размер.

Data

Получает данные из регистра. Буфер должен быть не менее Register->SizeInBytes байтов.

Возвращаемое значение

Если функция выполнена успешно, возвращается S_OKзначение.

Remarks

Функция WHvReadVpciDeviceRegister считывает регистр из пространства конфигурации или пространства MMIO физической или виртуальной функции PCIe, связанной с устройством VPCI. Для пространства конфигурации доступ к определенным регистрам может быть отфильтрован базовым стеком виртуальной PCI, чтобы гарантировать безопасное назначение виртуальных машин функций PCIe. Для пространства MMIO эта функция может считывать регистры, которые не были сопоставлены непосредственно в адресное пространство вызывающего объекта, так как базовый виртуальный стек PCI должен обеспечить устранение рисков для этих регистров.

Требования

Requirement Ценность
Минимальный поддерживаемый Windows Windows 10 версии 20H2 (x64); Windows 11 версии 24H2, сборка 26100.3915 (Arm64)
Header WinHvPlatform.h
Библиотека WinHvPlatform.lib
DLL WinHvPlatform.dll
Architecture x64, Arm64

См. также