觸發器資料類型描述觸發器的類型、它傳遞給分割區的動作,以及用來識別該分割區的句柄。
語法
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
描述觸發器所設定的 SynIC 事件旗標 WHvTriggerTypeSynicEvent 。
VpIndex
指定接收事件的虛擬處理器的索引。
TargetSint
指定合成中斷來源(SINT)至訊號。
TargetVtl
指定接收事件的虛擬信任等級。 對於觸發器,這必須是 VTL 0。
FlagNumber
指定要設定的 SynIC 事件旗標。
WHV_TRIGGER_PARAMETERS
描述觸發器:其類型及所執行動作的參數。
TriggerType
指定觸發器類型,選擇聯合體的主動成員。
Reserved
已保留。 設定為 0。
Interrupt
指定當 TriggerType 為 WHvTriggerTypeInterrupt時要注入的中斷。 此成員僅在 x64 上可用。 請參閱 WHvRequestInterrupt 的 WHV_INTERRUPT_CONTROL定義。
SynicEvent
指定 SynIC 事件以發出信號,當 TriggerType 為 WHvTriggerTypeSynicEvent時。
DeviceInterrupt
指定當 是 時WHvTriggerTypeDeviceInterrupt要斷TriggerType言的裝置中斷。
LogicalDeviceId識別分割區中的邏輯裝置,MsiAddressMsiData並指定要傳遞訊息訊號的中斷。 巢狀 Reserved 欄位必須設為 0。
WHV_TRIGGER_HANDLE
識別由 WHvCreateTrigger所建立的觸發物件。 把柄傳遞給 WHvUpdateTriggerParameters 和 WHvDeleteTrigger。
Remarks
WHV_TRIGGER_PARAMETERS 傳遞給 以 WHvCreateTrigger 建立觸發器,並 to WHvUpdateTriggerParameters 重新定位一個觸發器。
TriggerType成員選擇要讀取哪個成員;觸發類型在建立時固定,且無法透過更新更改。
WHvTriggerTypeInterrupt 而 Interrupt Member of WHV_TRIGGER_PARAMETERS 僅在 x64 上提供。
WHvTriggerTypeDeviceInterrupt觸發器會對已存在於分割區中的邏輯裝置發出中斷;該裝置必須在觸發器被發出訊號前,必須已存在且其中斷已映射——例如通過 WHvMapVpciDeviceInterrupt ——。