Tipos de datos de desencadenador

Los tipos de datos del desencadenador describen el tipo de un desencadenador, la acción que entrega a una partición y el identificador que se usa para identificarlo.

Syntax

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

Identifica el tipo de acción que un desencadenador entrega cuando se señala su evento.

WHvTriggerTypeInterrupt

Inserta una interrupción virtual descrita por una WHV_INTERRUPT_CONTROL estructura. Este tipo de desencadenador solo está disponible en x64.

WHvTriggerTypeSynicEvent

Establece una marca de eventos de controlador de interrupción sintética (SynIC) descrita por una WHV_SYNIC_EVENT_PARAMETERS estructura.

WHvTriggerTypeDeviceInterrupt

Confirma una interrupción de dispositivo (MSI) para un dispositivo lógico que está presente en la partición.

WHV_SYNIC_EVENT_PARAMETERS

Describe la marca de eventos synIC que establece un WHvTriggerTypeSynicEvent desencadenador.

VpIndex

Especifica el índice del procesador virtual que recibe el evento.

TargetSint

Especifica el origen de interrupción sintética (SINT) que se va a indicar.

TargetVtl

Especifica el nivel de confianza virtual que recibe el evento. Para los desencadenadores, debe ser VTL 0.

FlagNumber

Especifica la marca de eventos de SynIC que se va a establecer.

WHV_TRIGGER_PARAMETERS

Describe un desencadenador: su tipo y los parámetros de la acción que entrega.

TriggerType

Especifica el tipo de desencadenador, que selecciona el miembro activo de la unión.

Reserved

Reservado. Establezca en 0.

Interrupt

Especifica la interrupción que se va a insertar cuando TriggerType es WHvTriggerTypeInterrupt. Este miembro solo está disponible en x64. Consulte WHvRequestInterrupt para obtener la definición de WHV_INTERRUPT_CONTROL.

SynicEvent

Especifica el evento SynIC que se va a indicar cuando TriggerType es WHvTriggerTypeSynicEvent.

DeviceInterrupt

Especifica la interrupción del dispositivo que se va a afirmar cuando TriggerType es WHvTriggerTypeDeviceInterrupt. LogicalDeviceId identifica el dispositivo lógico en la partición y MsiAddressMsiData especifica la interrupción señalada por el mensaje que se va a entregar. El campo anidado Reserved debe establecerse en 0.

WHV_TRIGGER_HANDLE

Identifica un objeto de desencadenador creado por WHvCreateTrigger. El identificador se pasa a WHvUpdateTriggerParameters y WHvDeleteTrigger.

Remarks

WHV_TRIGGER_PARAMETERS se pasa a WHvCreateTrigger para crear un desencadenador y para volver a WHvUpdateTriggerParameters establecer uno. El TriggerType miembro selecciona qué miembro de la unión se lee; el tipo de desencadenador se fija en el momento de la creación y no se puede cambiar mediante una actualización.

WHvTriggerTypeInterrupt y el Interrupt miembro de WHV_TRIGGER_PARAMETERS solo están disponibles en x64.

Un WHvTriggerTypeDeviceInterrupt desencadenador declara una interrupción para un dispositivo lógico que ya existe en la partición; el dispositivo debe estar presente y su interrupción asignada (por ejemplo, a través WHvMapVpciDeviceInterrupt de ) antes de que se señale el desencadenador.

Consulte también