Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сопоставляет диапазоны 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 enum WHV_VPCI_MMIO_RANGE_FLAGS
{
WHvVpciMmioRangeFlagReadAccess = 0x00000001,
WHvVpciMmioRangeFlagWriteAccess = 0x00000002
} WHV_VPCI_MMIO_RANGE_FLAGS;
// Enables bitwise operators on the WHV_VPCI_MMIO_RANGE_FLAGS enumeration.
DEFINE_ENUM_FLAG_OPERATORS(WHV_VPCI_MMIO_RANGE_FLAGS);
typedef struct WHV_VPCI_MMIO_MAPPING
{
WHV_VPCI_DEVICE_REGISTER_SPACE Location;
WHV_VPCI_MMIO_RANGE_FLAGS Flags;
UINT64 SizeInBytes;
UINT64 OffsetInBytes;
PVOID VirtualAddress;
} WHV_VPCI_MMIO_MAPPING;
HRESULT
WINAPI
WHvMapVpciDeviceMmioRanges(
_In_ WHV_PARTITION_HANDLE Partition,
_In_ UINT64 LogicalDeviceId,
_Out_ UINT32* MappingCount,
_Outptr_result_buffer_(*MappingCount) WHV_VPCI_MMIO_MAPPING** Mappings
);
Parameters
Partition
Обработайте секцию, которая владеет устройством VPCI.
LogicalDeviceId
Указывает идентификатор логического устройства устройства VPCI.
MappingCount
Получает количество элементов в возвращаемом Mappings массиве.
Mappings
Получает указатель на массив WHV_VPCI_MMIO_MAPPING элементов, описывающих сопоставленные диапазоны MMIO.
Возвращаемое значение
Если функция выполнена успешно, возвращается S_OKзначение.
Remarks
Функция WHvMapVpciDeviceMmioRanges сопоставляет физические диапазоны MMIO, связанные с устройством VPCI, в виртуальное адресное пространство процесса вызывающего объекта. Устройство должно находиться в состоянии питания D0; задайте для состояния питания значение WHvSetVpciDevicePowerState.
Каждый доступный базовый регистр адресов (BAR) представлен одним или несколькими записями в массиве Mappings . Записи в основном отсортированы по BAR. Записи для одной и той же панели отсортированы по смещением, не перекрываются и охватывают весь размер панели без промежуточных пробелов. Каждая запись определяет под диапазон bar, начиная с указанного смещения от базового адреса и указанной длины, виртуальный адрес, с которым сопоставляется под диапазон, и уровень доступа, предоставленный процессу вызывающего объекта.
Возвращаемый массив остается допустимым, пока вызывающий объект не скажет диапазоны MMIO устройства, WHvUnmapVpciDeviceMmioRangesотключает устройство с WHvSetVpciDevicePowerStateустройством или уничтожает устройство с WHvDeleteVpciDeviceпомощью.
Требования
| Requirement | Ценность |
|---|---|
| Минимальный поддерживаемый Windows | Windows 10 версии 20H2 (x64); Windows 11 версии 24H2, сборка 26100.3915 (Arm64) |
| Header | WinHvPlatform.h |
| Библиотека | WinHvPlatform.lib |
| DLL | WinHvPlatform.dll |
| Architecture | x64, Arm64 |