Tipos de Dados de Gatilho

Os tipos de dados do trigger descrevem o tipo de trigger, a ação que entrega a uma partição e o handle usado para o identificar.

Sintaxe

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 o tipo de ação que um gatilho realiza quando o seu evento é sinalizado.

WHvTriggerTypeInterrupt

Injeta uma interrupção virtual descrita por uma WHV_INTERRUPT_CONTROL estrutura. Este tipo de gatilho está disponível apenas em x64.

WHvTriggerTypeSynicEvent

Define um flag de evento de controlador de interrupções sintético (SynIC) descrito por uma WHV_SYNIC_EVENT_PARAMETERS estrutura.

WHvTriggerTypeDeviceInterrupt

Afirma uma interrupção de dispositivo (MSI) para um dispositivo lógico presente na partição.

WHV_SYNIC_EVENT_PARAMETERS

Descreve o flag de evento SynIC que um WHvTriggerTypeSynicEvent trigger ativa.

VpIndex

Especifica o índice do processador virtual que recebe o evento.

TargetSint

Especifica a fonte sintética de interrupção (SINT) a sinalizar.

TargetVtl

Especifica o nível de confiança virtual que recebe o evento. Para os gatilhos, isto deve ser VTL 0.

FlagNumber

Especifica o flag de evento SynIC a definir.

WHV_TRIGGER_PARAMETERS

Descreve um gatilho: o seu tipo e os parâmetros da ação que executa.

TriggerType

Especifica o tipo de gatilho, que seleciona o membro ativo da união.

Reserved

Reservado. Definir para 0.

Interrupt

Especifica a interrupção para injetar quando TriggerType é WHvTriggerTypeInterrupt. Este membro está disponível apenas na x64. Veja WHvRequestInterrupt para a definição de WHV_INTERRUPT_CONTROL.

SynicEvent

Especifica o evento SynIC para sinalizar quando TriggerType é WHvTriggerTypeSynicEvent.

DeviceInterrupt

Especifica a interrupção do dispositivo para afirmar quando TriggerType é WHvTriggerTypeDeviceInterrupt. LogicalDeviceId identifica o dispositivo lógico na partição e MsiAddressMsiData especifica a interrupção sinalizada por mensagem a entregar. O corpo aninhado Reserved deve ser definido como 0.

WHV_TRIGGER_HANDLE

Identifica um objeto gatilho criado por WHvCreateTrigger. A pega é passada para WHvUpdateTriggerParameters e WHvDeleteTrigger.

Remarks

WHV_TRIGGER_PARAMETERS é passado para WHvCreateTrigger criar um gatilho e para WHvUpdateTriggerParameters redirecionar um. O TriggerType membro seleciona qual membro da união é lido; o tipo de gatilho é fixo na altura da criação e não pode ser alterado por uma atualização.

WHvTriggerTypeInterrupt e o Interrupt membro de WHV_TRIGGER_PARAMETERS estão disponíveis apenas em x64.

Um WHvTriggerTypeDeviceInterrupt trigger afirma uma interrupção para um dispositivo lógico que já existe na partição; o dispositivo deve estar presente e a sua interrupção mapeada — por exemplo, através WHvMapVpciDeviceInterrupt — antes de o trigger ser sinalizado.

Ver também