Wyzwalanie typów danych

Typy danych wyzwalacza opisują typ wyzwalacza, akcję dostarczaną do partycji i uchwyt używany do jego identyfikacji.

Składnia

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;

Członkowie

WHV_TRIGGER_TYPE

Określa rodzaj akcji, jaką wyzwalacz dostarcza, gdy jego zdarzenie jest sygnalizowane.

WHvTriggerTypeInterrupt

Wprowadza wirtualne przerwanie opisane przez WHV_INTERRUPT_CONTROL strukturę. Ten typ wyzwalacza jest dostępny tylko w wersji x64.

WHvTriggerTypeSynicEvent

Ustawia syntetyczną flagę zdarzenia kontrolera przerwań (SynIC) opisaną WHV_SYNIC_EVENT_PARAMETERS przez strukturę.

WHvTriggerTypeDeviceInterrupt

Potwierdza przerwanie urządzenia (MSI) dla urządzenia logicznego, które znajduje się w partycji.

WHV_SYNIC_EVENT_PARAMETERS

Opisuje flagę zdarzenia SynIC ustawianą przez WHvTriggerTypeSynicEvent wyzwalacz.

VpIndex

Określa indeks procesora wirtualnego, który odbiera zdarzenie.

TargetSint

Określa syntetyczne źródło przerwań (SINT) do sygnału.

TargetVtl

Określa wirtualny poziom zaufania, który odbiera zdarzenie. W przypadku wyzwalaczy musi to być VTL 0.

FlagNumber

Określa flagę zdarzenia SynIC do ustawienia.

WHV_TRIGGER_PARAMETERS

Opisuje wyzwalacz: jego typ i parametry akcji, która dostarcza.

TriggerType

Określa typ wyzwalacza, który wybiera aktywny element członkowski unii.

Reserved

Zarezerwowane. Ustaw wartość 0.

Interrupt

Określa przerwanie do wstrzykiwania, gdy TriggerType ma wartość .WHvTriggerTypeInterrupt Ten element członkowski jest dostępny tylko w wersji x64. Zobacz WHvRequestInterrupt definicję elementu WHV_INTERRUPT_CONTROL.

SynicEvent

Określa zdarzenie SynIC do sygnalizatora, gdy TriggerType ma wartość WHvTriggerTypeSynicEvent.

DeviceInterrupt

Określa przerwanie urządzenia w celu potwierdzenia, gdy TriggerType ma wartość WHvTriggerTypeDeviceInterrupt. LogicalDeviceId identyfikuje urządzenie logiczne w partycji i MsiAddressMsiData określa przerwanie sygnalizatora komunikatów do dostarczenia. Zagnieżdżone Reserved pole musi być ustawione na 0.

WHV_TRIGGER_HANDLE

Identyfikuje obiekt wyzwalacza utworzony przez WHvCreateTriggerprogram . Dojście jest przekazywane do WHvUpdateTriggerParameters i WHvDeleteTrigger.

Remarks

WHV_TRIGGER_PARAMETERS element jest przekazywany do elementu WHvCreateTrigger w celu utworzenia wyzwalacza i WHvUpdateTriggerParameters do ponownego utworzenia. Element TriggerType członkowski wybiera, który element członkowski unii jest odczytywany. Typ wyzwalacza jest stały w czasie tworzenia i nie można go zmienić przez aktualizację.

WHvTriggerTypeInterrupt Interrupt element członkowski WHV_TRIGGER_PARAMETERS programu jest dostępny tylko w wersji x64.

Wyzwalacz WHvTriggerTypeDeviceInterrupt potwierdza przerwanie dla urządzenia logicznego, które już istnieje w partycji; urządzenie musi być obecne i jego przerwanie zamapowane — na przykład przez WHvMapVpciDeviceInterrupt — przed zasygnalizowanym wyzwalaczem.

Zobacz także