Триггер типов данных

Типы данных триггера описывают тип триггера, действие, которое оно доставляет в секцию, и дескриптор, используемый для его идентификации.

Синтаксис

typedef UINT8 WHV_VTL;

typedef struct WHV_SYNIC_EVENT_PARAMETERS
{
    UINT32 VpIndex;
    UINT8 TargetSint;
    WHV_VTL TargetVtl;
    UINT16 FlagNumber;
} WHV_SYNIC_EVENT_PARAMETERS;

typedef enum WHV_TRIGGER_TYPE
{
#if defined(_AMD64_)
    WHvTriggerTypeInterrupt = 0,
#endif
    WHvTriggerTypeSynicEvent = 1,
    WHvTriggerTypeDeviceInterrupt = 2,
} WHV_TRIGGER_TYPE;

typedef struct WHV_TRIGGER_PARAMETERS
{
    WHV_TRIGGER_TYPE TriggerType;
    UINT32 Reserved;
    union
    {
#if defined(_AMD64_)
        WHV_INTERRUPT_CONTROL Interrupt;
#endif
        WHV_SYNIC_EVENT_PARAMETERS SynicEvent;
        struct
        {
            UINT64 LogicalDeviceId;
            UINT64 MsiAddress;
            UINT32 MsiData;
            UINT32 Reserved;
        } DeviceInterrupt;
    };
} WHV_TRIGGER_PARAMETERS;

typedef PVOID WHV_TRIGGER_HANDLE;

Members

WHV_TRIGGER_TYPE

Идентифицирует тип действия триггера при сигнале его события.

WHvTriggerTypeInterrupt

Внедряет виртуальные прерывания, описанные структурой WHV_INTERRUPT_CONTROL . Этот тип триггера доступен только в x64.

WHvTriggerTypeSynicEvent

Задает флаг события искусственного прерывания (SynIC), описанный структурой WHV_SYNIC_EVENT_PARAMETERS .

WHvTriggerTypeDeviceInterrupt

Утверждает прерывание устройства (MSI) для логического устройства, которое присутствует в разделе.

WHV_SYNIC_EVENT_PARAMETERS

Описывает флаг события SynIC, который WHvTriggerTypeSynicEvent задает триггер.

VpIndex

Указывает индекс виртуального процессора, получающего событие.

TargetSint

Указывает источник синтетических прерываний (SINT) для сигнала.

TargetVtl

Указывает уровень виртуального доверия, который получает событие. Для триггеров это должно быть VTL 0.

FlagNumber

Указывает флаг события SynIC для задания.

WHV_TRIGGER_PARAMETERS

Описывает триггер: его тип и параметры выполняемого действия.

TriggerType

Указывает тип триггера, который выбирает активный член объединения.

Reserved

Зарезервировано. Установите значение 0.

Interrupt

Указывает прерывание, которое необходимо внедрить, когда TriggerType есть WHvTriggerTypeInterrupt. Этот элемент доступен только в x64. См WHvRequestInterrupt . определение WHV_INTERRUPT_CONTROL.

SynicEvent

Указывает событие SynIC, которое будет сигнализировать, когда TriggerType есть WHvTriggerTypeSynicEvent.

DeviceInterrupt

Указывает прерывание устройства для утверждения в случаеTriggerType.WHvTriggerTypeDeviceInterrupt LogicalDeviceId определяет логическое устройство в секции и MsiAddressMsiData указывает сигнальное сообщение прерывание для доставки. Вложенное Reserved поле должно иметь значение 0.

WHV_TRIGGER_HANDLE

Определяет объект триггера, созданный с помощью WHvCreateTrigger. Дескриптор передается WHvUpdateTriggerParameters и WHvDeleteTrigger.

Remarks

WHV_TRIGGER_PARAMETERS передается для WHvCreateTrigger создания триггера и WHvUpdateTriggerParameters для перенацеливать его. Член TriggerType выбирает, какой член объединения считывается; тип триггера исправлен во время создания и не может быть изменен обновлением.

WHvTriggerTypeInterrupt Interrupt и член WHV_TRIGGER_PARAMETERS доступны только в x64.

WHvTriggerTypeDeviceInterrupt Триггер утверждает прерывание для логического устройства, которое уже существует в секции; устройство должно присутствовать и сопоставлять его прерывание ( например, через — WHvMapVpciDeviceInterrupt перед сигналом триггера).

См. также