Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Запрашивает прерывание, доставляемое одному или нескольким виртуальным процессорам в секции.
Синтаксис
#if defined(_AMD64_)
typedef enum WHV_INTERRUPT_TYPE
{
WHvX64InterruptTypeFixed = 0,
WHvX64InterruptTypeLowestPriority = 1,
WHvX64InterruptTypeNmi = 4,
WHvX64InterruptTypeInit = 5,
WHvX64InterruptTypeSipi = 6,
WHvX64InterruptTypeLocalInt1 = 9,
} WHV_INTERRUPT_TYPE;
typedef enum WHV_INTERRUPT_DESTINATION_MODE
{
WHvX64InterruptDestinationModePhysical,
WHvX64InterruptDestinationModeLogical,
} WHV_INTERRUPT_DESTINATION_MODE;
typedef enum WHV_INTERRUPT_TRIGGER_MODE
{
WHvX64InterruptTriggerModeEdge,
WHvX64InterruptTriggerModeLevel,
} WHV_INTERRUPT_TRIGGER_MODE;
typedef struct WHV_INTERRUPT_CONTROL
{
UINT64 Type : 8; // WHV_INTERRUPT_TYPE
UINT64 DestinationMode : 4; // WHV_INTERRUPT_DESTINATION_MODE
UINT64 TriggerMode : 4; // WHV_INTERRUPT_TRIGGER_MODE
UINT64 TargetVtl : 8; // WHV_VTL
UINT64 Reserved : 40;
UINT32 Destination;
UINT32 Vector;
} WHV_INTERRUPT_CONTROL;
#elif defined(_ARM64_)
typedef enum WHV_INTERRUPT_TYPE
{
WHvArm64InterruptTypeFixed = 0x0000,
//
// Maximum (exclusive) value of interrupt type.
//
WHvArm64InterruptTypeMaximum = 0x0008,
} WHV_INTERRUPT_TYPE;
typedef union WHV_INTERRUPT_CONTROL2
{
UINT64 AsUINT64;
struct
{
WHV_INTERRUPT_TYPE InterruptType;
UINT32 Reserved1:2;
UINT32 Asserted:1;
UINT32 Retarget:1;
UINT32 Reserved2:28;
};
} WHV_INTERRUPT_CONTROL2;
typedef struct WHV_INTERRUPT_CONTROL
{
UINT64 TargetPartition;
WHV_INTERRUPT_CONTROL2 InterruptControl;
UINT64 DestinationAddress;
UINT32 RequestedVector;
UINT8 TargetVtl;
UINT8 ReservedZ0;
UINT16 ReservedZ1;
} WHV_INTERRUPT_CONTROL;
#endif // defined(_ARCH_)
HRESULT
WINAPI
WHvRequestInterrupt(
_In_ WHV_PARTITION_HANDLE Partition,
_In_ const WHV_INTERRUPT_CONTROL* Interrupt,
_In_ UINT32 InterruptControlSize
);
Parameters
Partition
Указывает секцию для прерывания.
Interrupt
Задает характеристики прерывания и назначение.
InterruptControlSize
Задает размер Interruptв байтах.
Возвращаемое значение
Если функция выполнена успешно, возвращается S_OKзначение.
Remarks
Функция WHvRequestInterrupt запрашивает прерывание, описанное WHV_INTERRUPT_CONTROL структурой, доставляемой в секцию.
Требования
| Requirement | Ценность |
|---|---|
| Минимальный поддерживаемый Windows | Windows 10 версии 1809 (x64); Windows 11 версии 24H2, сборка 26100.3915 (Arm64) |
| Header | WinHvPlatform.h |
| Библиотека | WinHvPlatform.lib |
| DLL | WinHvPlatform.dll |
| Architecture | x64, Arm64 |