WHvRetargetVpciDeviceInterrupt

Atanmış bir sanal PCI cihazının önceden eşlenmiş kesmesi için hedef vektör ve işlemci kümesini değiştirir.

Sözdizimi

typedef enum WHV_VPCI_INTERRUPT_TARGET_FLAGS
{
    WHvVpciInterruptTargetFlagNone      = 0x00000000,
    WHvVpciInterruptTargetFlagMulticast = 0x00000001,

} WHV_VPCI_INTERRUPT_TARGET_FLAGS;

// Enables bitwise operators on the WHV_VPCI_INTERRUPT_TARGET_FLAGS enumeration.
DEFINE_ENUM_FLAG_OPERATORS(WHV_VPCI_INTERRUPT_TARGET_FLAGS);

typedef struct WHV_VPCI_INTERRUPT_TARGET
{
    UINT32 Vector;
    WHV_VPCI_INTERRUPT_TARGET_FLAGS Flags;
    UINT32 ProcessorCount;
    UINT32 Processors[ANYSIZE_ARRAY];

} WHV_VPCI_INTERRUPT_TARGET;

HRESULT
WINAPI
WHvRetargetVpciDeviceInterrupt(
    _In_ WHV_PARTITION_HANDLE Partition,
    _In_ UINT64 LogicalDeviceId,
    _In_ UINT64 MsiAddress,
    _In_ UINT32 MsiData,
    _In_ const WHV_VPCI_INTERRUPT_TARGET* Target
    );

Parameters

Partition

Sanal PCI cihazının sahibi olan bölümün işleyicisi.

LogicalDeviceId

Cihaz oluşturulduğunda atanan sanal PCI cihazının mantıksal cihaz kimliğini belirtir.

MsiAddress

tarafından WHvMapVpciDeviceInterruptdöndürüldüğü gibi yeniden hedeflenen kesmenin MSI adresini belirtir.

MsiData

tarafından WHvMapVpciDeviceInterruptdöndürüldüğü gibi yeniden hedeflemek için kesmenin MSI veri yükünü belirtir.

Target

Kesme için yeni hedef vektör ve işlemci kümesini sağlayan bir WHV_VPCI_INTERRUPT_TARGET yapı işaretçisini belirtir.

Dönüş Değeri

İşlev başarılı olursa, dönüş değeri olur S_OK.

İşlev 0 olduğunda Target->ProcessorCount veya bölümdeki sanal işlemci sayısını aştığındaTarget->Flags, tanımsız bir bayrak belirttiğinde, WHvVpciInterruptTargetFlagMulticast ikiden az hedef işlemciyle birlikte ayarlandığında veya içindeki Target->Processors bir işlemci bir bölümün sahip olabileceği sanal işlemci sayısı üst sınırından büyük veya buna eşit olduğunda döndürürE_INVALIDARG. Arm64'te, hiper yönetici her MSI'yi Arm64'te tek bir sanal işlemciye hedeflediğinden işlev 1'den büyük olduğunda Target->ProcessorCount döndürürE_INVALIDARG.

Açıklamalar

İşlev, WHvRetargetVpciDeviceInterrupt daha önce ile WHvMapVpciDeviceInterrupt eşlenmiş bir kesmeyi yeni bir vektöre ve hedef sanal işlemci kümesine taşır. Kesme eşlendiğinde döndürülen ve MsiData değerleriyle MsiAddress tanımlanır, bu nedenle cihazın MSI veya MSI-X özelliğinin yeniden programlanması gerekmez.

Çok iletili MSI kesmesinin tek bir iletisini yeniden hedeflemek, bir konuğun tek bir kesmenin iletilerini, iletilerin tümü tarafından WHvMapVpciDeviceInterruptaynı hedefle başlatıldıktan sonra farklı işlemci kümelerine dağıtmasına olanak tanır. Bir kesmeyi birden fazla işlemciye yönlendirmek için içinde ayarlayın WHvVpciInterruptTargetFlagMulticastTarget->Flags ve içinde Target->Processorsen az iki işlemci sağlayın; çok noktaya yayın hedefleme yalnızca x64'te desteklenir.

Requirements

Requirement Değer
Desteklenen en düşük Windows Windows 10, sürüm 20H2 (x64); Windows 11, sürüm 24H2, derleme 26100.3915 (Arm64)
Header WinHvPlatform.h
Kütüphane WinHvPlatform.lib
DLL WinHvPlatform.dll
Architecture x64, Arm64

Ayrıca bakınız