WHvGetInterruptTargetVpSet

Разрешает назначение прерывания набору целевых виртуальных процессоров.

Замечание

Эта функция применяется только к секциям x64.

Синтаксис

typedef enum WHV_INTERRUPT_DESTINATION_MODE
{
    WHvX64InterruptDestinationModePhysical,
    WHvX64InterruptDestinationModeLogical,
} WHV_INTERRUPT_DESTINATION_MODE;

HRESULT
WINAPI
WHvGetInterruptTargetVpSet(
    _In_ WHV_PARTITION_HANDLE Partition,
    _In_ UINT64 Destination,
    _In_ WHV_INTERRUPT_DESTINATION_MODE DestinationMode,
    _Out_writes_to_(VpCount, *TargetVpCount) UINT32* TargetVps,
    _In_ UINT32 VpCount,
    _Out_ UINT32* TargetVpCount
    );

Parameters

Partition

Дескриптор объекта секции.

Destination

Указывает значение назначения APIC для разрешения.

DestinationMode

Указывает, как Destination интерпретируется: WHvX64InterruptDestinationModePhysical для физического идентификатора APIC или WHvX64InterruptDestinationModeLogical для логического назначения.

TargetVps

Получает индексы виртуальных процессоров, предназначенных для назначения.

VpCount

Указывает количество элементов в массиве TargetVps . Это значение должно быть по крайней мере числом процессоров секции.

TargetVpCount

Получает число индексов виртуальных процессоров, записанных TargetVpsв .

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

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

Функция возвращается E_INVALIDARG , если DestinationMode не является допустимым значением или VpCount меньше числа процессоров секции. Если раздел не настроен для эмуляции локального APIC, функция возвращается HRESULT_FROM_WIN32(ERROR_HV_OPERATION_DENIED).

Remarks

Функция WHvGetInterruptTargetVpSet вычисляет набор виртуальных процессоров, которые прерывают с указанным целевым и целевым режимом назначения, применяя те же правила маршрутизации APIC, что и гипервизор, который использует для доставки прерываний. Это позволяет стеку виртуализации определять маршрутизацию прерываний без прерывания.

Буфер должен быть достаточно большим, чтобы сохранить одну запись для каждого виртуального процессора в секции. Функция TargetVps не использует протокол добавочного размера запроса, а не возвращает неуклюжий буфер, а не сообщает E_INVALIDARG требуемый размер.

Требования

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

См. также