Veri Türlerini Tetikleme

Tetikleyici veri türleri tetikleyicinin türünü, bir bölüme teslim eden eylemi ve bunu tanımlamak için kullanılan tanıtıcıyı açıklar.

Sözdizimi

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

Bir tetikleyicinin olayı sinyallendiğinde gerçekleştirilen eylem türünü tanımlar.

WHvTriggerTypeInterrupt

Bir yapı tarafından WHV_INTERRUPT_CONTROL açıklanan bir sanal kesme ekler. Bu tetikleyici türü yalnızca x64'te kullanılabilir.

WHvTriggerTypeSynicEvent

Bir yapı tarafından WHV_SYNIC_EVENT_PARAMETERS açıklanan yapay kesme denetleyicisi (SynIC) olay bayrağını ayarlar.

WHvTriggerTypeDeviceInterrupt

Bölümde bulunan bir mantıksal cihaz için bir cihaz (MSI) kesmesi onaylar.

WHV_SYNIC_EVENT_PARAMETERS

Tetikleyicinin ayarlandığı SynIC olay bayrağını WHvTriggerTypeSynicEvent açıklar.

VpIndex

Olayı alan sanal işlemcinin dizinini belirtir.

TargetSint

Sinyal için yapay kesme kaynağını (SINT) belirtir.

TargetVtl

Olayı alan sanal güven düzeyini belirtir. Tetikleyiciler için bu VTL 0 olmalıdır.

FlagNumber

Ayarlanacağı SynIC olay bayrağını belirtir.

WHV_TRIGGER_PARAMETERS

Tetikleyiciyi açıklar: türü ve teslim ettiği eylemin parametreleri.

TriggerType

Birleşimin etkin üyesini seçen tetikleyici türünü belirtir.

Reserved

Rezerve edilmiş. 0 olarak ayarlayın.

Interrupt

olduğunda TriggerTypeWHvTriggerTypeInterrupteklenecek kesmeyi belirtir. Bu üye yalnızca x64'te kullanılabilir. tanımı WHV_INTERRUPT_CONTROLiçin bkzWHvRequestInterrupt. .

SynicEvent

olduğunda TriggerTypeWHvTriggerTypeSynicEventişaret eklenecek SynIC olayını belirtir.

DeviceInterrupt

olduğunda TriggerTypeWHvTriggerTypeDeviceInterruptonay için cihaz kesmesini belirtir. LogicalDeviceId bölümdeki mantıksal cihazı tanımlar ve MsiAddressMsiData teslim etmek için ileti sinyalli kesmeyi belirtin. İç içe alan Reserved 0 olarak ayarlanmalıdır.

WHV_TRIGGER_HANDLE

tarafından WHvCreateTriggeroluşturulan bir tetikleyici nesnesini tanımlar. Tanıtıcı ve WHvDeleteTriggeröğesine WHvUpdateTriggerParameters geçirilir.

Açıklamalar

WHV_TRIGGER_PARAMETERSbir tetikleyici oluşturmak ve bir tetikleyiciyi yeniden hedeflemek için WHvUpdateTriggerParameters öğesine geçirilirWHvCreateTrigger. Üye TriggerType , birleşimin hangi üyesinin okunmasını seçer; tetikleyici türü oluşturma zamanında sabittir ve bir güncelleştirme tarafından değiştirilemez.

WHvTriggerTypeInterrupt Interrupt ve üyesi WHV_TRIGGER_PARAMETERS yalnızca x64'te kullanılabilir.

Tetikleyici WHvTriggerTypeDeviceInterrupt , bölümde zaten var olan bir mantıksal cihaz için bir kesme onaylar; tetikleyici işaretlenmeden önce cihazın mevcut olması ve kesme eşlenmesi gerekir (örneğin, aracılığıyla WHvMapVpciDeviceInterrupt ).

Ayrıca bakınız