WHvPostVirtualProcessorSynicMessage

Invia un messaggio SynIC (Synthetic Interrupt Controller) a un processore virtuale.

Sintassi

#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
    );

Parameters

Partition

Handle per l'oggetto partizione.

VpIndex

Specifica l'indice del processore virtuale di destinazione.

SintIndex

Specifica l'origine di interrupt sintetica (SINT) in cui viene recapitato il messaggio.

Message

Specifica il payload del messaggio da pubblicare.

MessageSizeInBytes

Specifica le dimensioni di Message, in byte. Deve essere maggiore di zero e non deve essere maggiore di WHV_SYNIC_MESSAGE_SIZE (256).

Valore restituito

Se la funzione ha esito positivo, il valore restituito è S_OK.

La funzione restituisce E_INVALIDARG se MessageSizeInBytes è maggiore di WHV_SYNIC_MESSAGE_SIZE. Se lo slot di messaggi SINT del processore virtuale di destinazione è già occupato da un messaggio non recapitato, la funzione restituisce HRESULT_FROM_WIN32(ERROR_HV_OBJECT_IN_USE).

Remarks

La WHvPostVirtualProcessorSynicMessage funzione recapita un messaggio alla pagina dei messaggi SynIC del processore virtuale di destinazione nel SINT specificato, come se il messaggio fosse stato inviato dall'hypervisor. Il messaggio viene scritto nello slot di messaggi SINT corrispondente e il processore virtuale riceve una notifica tramite tale SINT.

Ogni SINT ha un singolo slot di messaggi. Se il messaggio precedente su tale SINT non è ancora stato utilizzato dal guest, la chiamata non riesce con ERROR_HV_OBJECT_IN_USE. Il chiamante deve riprovare dopo che il guest ha riconosciuto il messaggio precedente.

Requisiti

Requisito Valore
Minimo Windows supportato Windows 10 versione 20H2 (x64); Windows 11, versione 24H2, build 26100.3915 (Arm64)
Header WinHvPlatform.h
Libreria WinHvPlatform.lib
DLL WinHvPlatform.dll
Architecture x64, Arm64

Vedere anche