Tipi di dati trigger

I tipi di dati del trigger descrivono il tipo di un trigger, l'azione che recapita a una partizione e l'handle usato per identificarlo.

Sintassi

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 il tipo di azione recapitata da un trigger quando viene segnalato il relativo evento.

WHvTriggerTypeInterrupt

Inserisce un interrupt virtuale descritto da una WHV_INTERRUPT_CONTROL struttura. Questo tipo di trigger è disponibile solo in x64.

WHvTriggerTypeSynicEvent

Imposta un flag di evento SynIC (Synthetic Interrupt Controller) descritto da una WHV_SYNIC_EVENT_PARAMETERS struttura.

WHvTriggerTypeDeviceInterrupt

Asserisce un interrupt del dispositivo (MSI) per un dispositivo logico presente nella partizione.

WHV_SYNIC_EVENT_PARAMETERS

Descrive il flag di evento SynIC impostato da un WHvTriggerTypeSynicEvent trigger.

VpIndex

Specifica l'indice del processore virtuale che riceve l'evento.

TargetSint

Specifica l'origine di interrupt sintetica (SINT) da segnalare.

TargetVtl

Specifica il livello di attendibilità virtuale che riceve l'evento. Per i trigger, deve essere VTL 0.

FlagNumber

Specifica il flag di evento SynIC da impostare.

WHV_TRIGGER_PARAMETERS

Descrive un trigger: il tipo e i parametri dell'azione che fornisce.

TriggerType

Specifica il tipo di trigger, che seleziona il membro attivo dell'unione.

Reserved

Riservato. Impostare su 0.

Interrupt

Specifica l'interrupt da inserire quando TriggerType è WHvTriggerTypeInterrupt. Questo membro è disponibile solo su x64. Vedere WHvRequestInterrupt per la definizione di WHV_INTERRUPT_CONTROL.

SynicEvent

Specifica l'evento SynIC da segnalare quando TriggerType è WHvTriggerTypeSynicEvent.

DeviceInterrupt

Specifica l'interrupt del dispositivo da asserire quando TriggerType è WHvTriggerTypeDeviceInterrupt. LogicalDeviceId identifica il dispositivo logico nella partizione e MsiAddress specifica MsiData l'interrupt segnalato dal messaggio da recapitare. Il campo annidato Reserved deve essere impostato su 0.

WHV_TRIGGER_HANDLE

Identifica un oggetto trigger creato da WHvCreateTrigger. L'handle viene passato a WHvUpdateTriggerParameters e WHvDeleteTrigger.

Remarks

WHV_TRIGGER_PARAMETERS viene passato a WHvCreateTrigger per creare un trigger e per ridestinarne WHvUpdateTriggerParameters uno. Il membro seleziona il membro che viene letto dall'unione. Il TriggerType tipo di trigger è fisso in fase di creazione e non può essere modificato da un aggiornamento.

WHvTriggerTypeInterrupt e il Interrupt membro di WHV_TRIGGER_PARAMETERS sono disponibili solo su x64.

Un WHvTriggerTypeDeviceInterrupt trigger asserisce un interrupt per un dispositivo logico già esistente nella partizione. Il dispositivo deve essere presente e il relativo interrupt mappato, ad esempio tramite WHvMapVpciDeviceInterrupt , prima che il trigger venga segnalato.

Vedere anche