トリガーのデータ型は、トリガーの種類、パーティションに配信されるアクション、およびそれを識別するために使用されるハンドルを記述します。
構文
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
TriggerTypeがWHvTriggerTypeInterruptされたときに挿入する割り込みを指定します。 このメンバーは x64 でのみ使用できます。
WHV_INTERRUPT_CONTROLの定義については、WHvRequestInterruptを参照してください。
SynicEvent
TriggerTypeがWHvTriggerTypeSynicEventされたときに通知する SynIC イベントを指定します。
DeviceInterrupt
TriggerTypeがWHvTriggerTypeDeviceInterruptされたときにアサートするデバイス割り込みを指定します。
LogicalDeviceId はパーティション内の論理デバイスを識別し、配信するメッセージシグナル割り込みを MsiAddress および MsiData 指定します。 入れ子になった Reserved フィールドは 0 に設定する必要があります。
WHV_TRIGGER_HANDLE
WHvCreateTriggerによって作成されたトリガー オブジェクトを識別します。 ハンドルは、 WHvUpdateTriggerParameters と WHvDeleteTriggerに渡されます。
Remarks
WHV_TRIGGER_PARAMETERS は、トリガーを作成するために WHvCreateTrigger に渡され、再ターゲットを WHvUpdateTriggerParameters します。
TriggerTypeメンバーは、共用体のどのメンバーが読み取られるかを選択します。トリガーの種類は作成時に固定され、更新では変更できません。
WHvTriggerTypeInterrupt
WHV_TRIGGER_PARAMETERSのInterruptメンバーは x64 でのみ使用できます。
WHvTriggerTypeDeviceInterrupt トリガーは、パーティション内に既に存在する論理デバイスの割り込みをアサートします。トリガーが通知される前に、デバイスが存在し、その割り込みをWHvMapVpciDeviceInterruptによってマップする必要があります。