트리거 데이터 형식은 트리거의 형식, 파티션에 제공하는 작업 및 트리거를 식별하는 데 사용되는 핸들을 설명합니다.
문법
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;
구성원
WHV_TRIGGER_TYPE
트리거가 이벤트 신호를 보낼 때 제공하는 동작의 종류를 식별합니다.
WHvTriggerTypeInterrupt
구조체에서 설명하는 가상 인터럽트를 WHV_INTERRUPT_CONTROL 삽입합니다. 이 트리거 유형은 x64에서만 사용할 수 있습니다.
WHvTriggerTypeSynicEvent
구조체에서 설명하는 SynIC(가상 인터럽트 컨트롤러) 이벤트 플래그를 WHV_SYNIC_EVENT_PARAMETERS 설정합니다.
WHvTriggerTypeDeviceInterrupt
파티션에 있는 논리 디바이스에 대한 MSI(디바이스) 인터럽트를 어설션합니다.
WHV_SYNIC_EVENT_PARAMETERS
트리거가 설정하는 SynIC 이벤트 플래그를 WHvTriggerTypeSynicEvent 설명합니다.
VpIndex
이벤트를 수신하는 가상 프로세서의 인덱스를 지정합니다.
TargetSint
신호를 보낼 SINT(합성 인터럽트 소스)를 지정합니다.
TargetVtl
이벤트를 수신하는 가상 신뢰 수준을 지정합니다. 트리거의 경우 VTL 0이어야 합니다.
FlagNumber
설정할 SynIC 이벤트 플래그를 지정합니다.
WHV_TRIGGER_PARAMETERS
트리거를 설명합니다. 트리거의 형식 및 트리거가 제공하는 작업의 매개 변수입니다.
TriggerType
공용 구조체의 활성 멤버를 선택하는 트리거 유형을 지정합니다.
Reserved
예약되었습니다. 0으로 설정합니다.
Interrupt
삽입할 인터럽트(있는 경우 TriggerTypeWHvTriggerTypeInterrupt)를 지정합니다. 이 멤버는 x64에서만 사용할 수 있습니다. 의 정의는 참조 WHvRequestInterrupt 하세요 WHV_INTERRUPT_CONTROL.
SynicEvent
신호를 보낼 TriggerTypeWHvTriggerTypeSynicEventSynIC 이벤트를 지정합니다.
DeviceInterrupt
어설션할 디바이스 인터럽트(있는 경우 TriggerTypeWHvTriggerTypeDeviceInterrupt)를 지정합니다.
LogicalDeviceId 는 파티션 MsiAddressMsiData 의 논리 디바이스를 식별하고 전달할 메시지 신호 인터럽트(interrupt)를 지정합니다. 중첩된 Reserved 필드는 0으로 설정해야 합니다.
WHV_TRIGGER_HANDLE
에서 만든 WHvCreateTrigger트리거 개체를 식별합니다. 핸들이 전달됩니다WHvUpdateTriggerParameters.WHvDeleteTrigger
Remarks
WHV_TRIGGER_PARAMETERS 는 트리거를 WHvCreateTrigger 만들고 대상을 다시 지정하기 위해 WHvUpdateTriggerParameters 전달됩니다. 멤버는 TriggerType 읽는 공용 구조체의 멤버를 선택합니다. 트리거 유형은 생성 시 수정되며 업데이트로 변경할 수 없습니다.
WHvTriggerTypeInterrupt및 멤버 WHV_TRIGGER_PARAMETERS 는 Interrupt x64에서만 사용할 수 있습니다.
트리거는 WHvTriggerTypeDeviceInterrupt 파티션에 이미 존재하는 논리 디바이스에 대한 인터럽트를 어설션합니다. 트리거가 신호를 전달하기 전에 디바이스가 있어야 하고 인터럽트 매핑(예: 통해 WHvMapVpciDeviceInterrupt )이어야 합니다.