Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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 |