WHvPostVirtualProcessorSynicMessage

Sendet eine SynIC-Nachricht (Synthetische Interrupt Controller) an einen virtuellen Prozessor.

Syntax

#define WHV_SYNIC_MESSAGE_SIZE  256

HRESULT
WINAPI
WHvPostVirtualProcessorSynicMessage(
    _In_ WHV_PARTITION_HANDLE Partition,
    _In_ UINT32 VpIndex,
    _In_ UINT32 SintIndex,
    _In_reads_bytes_(MessageSizeInBytes) const VOID* Message,
    _In_ UINT32 MessageSizeInBytes
    );

Parameter

Partition

Behandeln sie das Partitionsobjekt.

VpIndex

Gibt den Index des virtuellen Zielprozessors an.

SintIndex

Gibt die synthetische Interruptquelle (Synthetische Interrupt Source, SINT) an, für die die Nachricht übermittelt wird.

Message

Gibt die zu veröffentlichende Nachrichtennutzlast an.

MessageSizeInBytes

Gibt die Größe von Message, in Byte an. Muss größer als Null und nicht größer als WHV_SYNIC_MESSAGE_SIZE (256) sein.

Rückgabewert

Wenn die Funktion erfolgreich ist, lautet S_OKder Rückgabewert .

Die Funktion gibt zurück E_INVALIDARG , wenn MessageSizeInBytes größer als WHV_SYNIC_MESSAGE_SIZE. Wenn der SINT-Nachrichtenplatz des virtuellen Zielprozessors bereits von einer nicht zugestellten Nachricht belegt ist, gibt die Funktion zurück HRESULT_FROM_WIN32(ERROR_HV_OBJECT_IN_USE).

Remarks

Die WHvPostVirtualProcessorSynicMessage Funktion sendet eine Nachricht an die SynIC-Nachrichtenseite des virtuellen Zielprozessors auf dem angegebenen SINT, als ob die Nachricht vom Hypervisor gesendet wurde. Die Nachricht wird in den entsprechenden SINT-Nachrichtenplatz geschrieben, und der virtuelle Prozessor wird über diesen SINT benachrichtigt.

Jeder SINT verfügt über einen einzelnen Nachrichtenplatz. Wenn die vorherige Nachricht an diesem SINT noch nicht vom Gast genutzt wurde, schlägt der Anruf fehl ERROR_HV_OBJECT_IN_USE. Der Anrufer sollte erneut versuchen, nachdem der Gast die vorherige Nachricht bestätigt hat.

Anforderungen

Anforderung Wert
Mindestens unterstützte Windows Windows 10, Version 20H2 (x64); Windows 11, Version 24H2, Build 26100.3915 (Arm64)
Header WinHvPlatform.h
Bibliothek WinHvPlatform.lib
DLL WinHvPlatform.dll
Architecture x64, Arm64

Siehe auch