Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Żądania przerwania są dostarczane do co najmniej jednego procesora wirtualnego w partycji.
Składnia
#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
Określa partycję do przerwania.
Interrupt
Określa charakterystykę i miejsce docelowe przerwania.
InterruptControlSize
Określa rozmiar Interrupt, w bajtach.
Wartość zwracana
Jeśli funkcja powiedzie się, zwracana wartość to S_OK.
Remarks
Funkcja WHvRequestInterrupt żąda przerwania opisanego WHV_INTERRUPT_CONTROL przez strukturę do partycji.
Requirements
| Requirement | Value |
|---|---|
| Minimalna obsługiwana Windows | Windows 10, wersja 1809 (x64); Windows 11, wersja 24H2, kompilacja 26100.3915 (Arm64) |
| Header | WinHvPlatform.h |
| Biblioteka | WinHvPlatform.lib |
| DLL | WinHvPlatform.dll |
| Architecture | x64, Arm64 |