Déclencher des types de données

Les types de données du déclencheur décrivent le type d’un déclencheur, l’action qu’il remet à une partition et le handle utilisé pour l’identifier.

Syntaxe

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

Identifie le type d’action qu’un déclencheur remet quand son événement est signalé.

WHvTriggerTypeInterrupt

Injecte une interruption virtuelle décrite par une WHV_INTERRUPT_CONTROL structure. Ce type de déclencheur est disponible uniquement sur x64.

WHvTriggerTypeSynicEvent

Définit un indicateur d’événement SynIC (SynIC) de contrôleur d’interruption synthétique décrit par une WHV_SYNIC_EVENT_PARAMETERS structure.

WHvTriggerTypeDeviceInterrupt

Affirme une interruption d’appareil (MSI) pour un appareil logique présent dans la partition.

WHV_SYNIC_EVENT_PARAMETERS

Décrit l’indicateur d’événement SynIC qu’un WHvTriggerTypeSynicEvent déclencheur définit.

VpIndex

Spécifie l’index du processeur virtuel qui reçoit l’événement.

TargetSint

Spécifie la source d’interruption synthétique (SINT) à signaler.

TargetVtl

Spécifie le niveau d’approbation virtuelle qui reçoit l’événement. Pour les déclencheurs, il doit s’agir de VTL 0.

FlagNumber

Spécifie l’indicateur d’événement SynIC à définir.

WHV_TRIGGER_PARAMETERS

Décrit un déclencheur : son type et les paramètres de l’action qu’il livre.

TriggerType

Spécifie le type de déclencheur, qui sélectionne le membre actif de l’union.

Reserved

Réservé. Défini sur 0.

Interrupt

Spécifie l’interruption à injecter quand TriggerType est WHvTriggerTypeInterrupt. Ce membre est disponible uniquement sur x64. Consultez WHvRequestInterrupt la définition de WHV_INTERRUPT_CONTROL.

SynicEvent

Spécifie l’événement SynIC à signaler quand TriggerType est WHvTriggerTypeSynicEvent.

DeviceInterrupt

Spécifie l’interruption de l’appareil à déclarer quand TriggerType est WHvTriggerTypeDeviceInterrupt. LogicalDeviceId identifie l’appareil logique dans la partition et MsiAddressMsiData spécifie l’interruption signalée par le message à remettre. Le champ imbriqué Reserved doit être défini sur 0.

WHV_TRIGGER_HANDLE

Identifie un objet déclencheur créé par WHvCreateTrigger. Le handle est passé à WHvUpdateTriggerParameters et WHvDeleteTrigger.

Remarks

WHV_TRIGGER_PARAMETERS est passé à WHvCreateTrigger la création d’un déclencheur et à WHvUpdateTriggerParameters la reciblage d’un déclencheur. Le TriggerType membre sélectionne quel membre de l’union est lu ; le type de déclencheur est fixe au moment de la création et ne peut pas être modifié par une mise à jour.

WHvTriggerTypeInterrupt et le Interrupt membre de WHV_TRIGGER_PARAMETERS sont disponibles uniquement sur x64.

Un WHvTriggerTypeDeviceInterrupt déclencheur déclare une interruption pour un appareil logique qui existe déjà dans la partition ; l’appareil doit être présent et son interruption mappée ( par exemple, via WHvMapVpciDeviceInterrupt ) avant que le déclencheur ne soit signalé.

Voir aussi