WHvPostVirtualProcessorSynicMessage

Memposting pesan pengontrol interupsi sintetis (SynIC) ke prosesor virtual.

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

Parameters

Partition

Tangani ke objek partisi.

VpIndex

Menentukan indeks prosesor virtual target.

SintIndex

Menentukan sumber interupsi sintetis (SINT) tempat pesan dikirimkan.

Message

Menentukan payload pesan yang akan diposting.

MessageSizeInBytes

Menentukan ukuran Message, dalam byte. Harus lebih besar dari nol dan tidak lebih besar dari WHV_SYNIC_MESSAGE_SIZE (256).

Mengembalikan Nilai

Jika fungsi berhasil, nilai yang dikembalikan adalah S_OK.

Fungsi mengembalikan E_INVALIDARG jika MessageSizeInBytes lebih besar dari WHV_SYNIC_MESSAGE_SIZE. Jika slot pesan SINT prosesor virtual target sudah ditempati oleh pesan yang tidak terkirim, fungsi mengembalikan HRESULT_FROM_WIN32(ERROR_HV_OBJECT_IN_USE).

Remarks

Fungsi ini WHvPostVirtualProcessorSynicMessage mengirimkan pesan ke halaman pesan SynIC dari prosesor virtual target pada SINT yang ditentukan, seolah-olah pesan telah dikirim oleh hypervisor. Pesan ditulis ke dalam slot pesan SINT yang sesuai dan prosesor virtual diberi tahu melalui SINT tersebut.

Setiap SINT memiliki satu slot pesan. Jika pesan sebelumnya tentang SINT tersebut belum dikonsumsi oleh tamu, panggilan gagal dengan ERROR_HV_OBJECT_IN_USE; pemanggil harus mencoba kembali setelah tamu mengakui pesan sebelumnya.

Requirements

Persyaratan Nilai
Windows minimum yang didukung Windows 10, versi 20H2 (x64); Windows 11, versi 24H2, build 26100.3915 (Arm64)
Header WinHvPlatform.h
Perpustakaan WinHvPlatform.lib
DLL WinHvPlatform.dll
Architecture x64, Arm64

Baca juga