データ型のトリガー

トリガーのデータ型は、トリガーの種類、パーティションに配信されるアクション、およびそれを識別するために使用されるハンドルを記述します。

構文

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

イベントが通知されたときにトリガーが配信するアクションの種類を識別します。

WHvTriggerTypeInterrupt

WHV_INTERRUPT_CONTROL構造体によって記述された仮想割り込みを挿入します。 このトリガーの種類は x64 でのみ使用できます。

WHvTriggerTypeSynicEvent

WHV_SYNIC_EVENT_PARAMETERS構造体によって記述される合成割り込みコントローラー (SynIC) イベント フラグを設定します。

WHvTriggerTypeDeviceInterrupt

パーティションに存在する論理デバイスのデバイス (MSI) 割り込みをアサートします。

WHV_SYNIC_EVENT_PARAMETERS

WHvTriggerTypeSynicEvent トリガーによって設定される SynIC イベント フラグについて説明します。

VpIndex

イベントを受信する仮想プロセッサのインデックスを指定します。

TargetSint

シグナルを送信する合成割り込みソース (SINT) を指定します。

TargetVtl

イベントを受信する仮想信頼レベルを指定します。 トリガーの場合、これは VTL 0 である必要があります。

FlagNumber

設定する SynIC イベント フラグを指定します。

WHV_TRIGGER_PARAMETERS

トリガーの種類と、トリガーが提供するアクションのパラメーターについて説明します。

TriggerType

共用体のアクティブなメンバーを選択するトリガーの種類を指定します。

Reserved

予約済み。 0 に設定します。

Interrupt

TriggerTypeWHvTriggerTypeInterruptされたときに挿入する割り込みを指定します。 このメンバーは x64 でのみ使用できます。 WHV_INTERRUPT_CONTROLの定義については、WHvRequestInterruptを参照してください。

SynicEvent

TriggerTypeWHvTriggerTypeSynicEventされたときに通知する SynIC イベントを指定します。

DeviceInterrupt

TriggerTypeWHvTriggerTypeDeviceInterruptされたときにアサートするデバイス割り込みを指定します。 LogicalDeviceId はパーティション内の論理デバイスを識別し、配信するメッセージシグナル割り込みを MsiAddress および MsiData 指定します。 入れ子になった Reserved フィールドは 0 に設定する必要があります。

WHV_TRIGGER_HANDLE

WHvCreateTriggerによって作成されたトリガー オブジェクトを識別します。 ハンドルは、 WHvUpdateTriggerParametersWHvDeleteTriggerに渡されます。

Remarks

WHV_TRIGGER_PARAMETERS は、トリガーを作成するために WHvCreateTrigger に渡され、再ターゲットを WHvUpdateTriggerParameters します。 TriggerTypeメンバーは、共用体のどのメンバーが読み取られるかを選択します。トリガーの種類は作成時に固定され、更新では変更できません。

WHvTriggerTypeInterrupt WHV_TRIGGER_PARAMETERSInterruptメンバーは x64 でのみ使用できます。

WHvTriggerTypeDeviceInterrupt トリガーは、パーティション内に既に存在する論理デバイスの割り込みをアサートします。トリガーが通知される前に、デバイスが存在し、その割り込みをWHvMapVpciDeviceInterruptによってマップする必要があります。

こちらも参照ください