WHvPostVirtualProcessorSynicMessage

Отправляет в виртуальный процессор сообщение с искусственным контроллером прерываний (SynIC).

Синтаксис

#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

Дескриптор объекта секции.

VpIndex

Указывает индекс целевого виртуального процессора.

SintIndex

Указывает источник синтетических прерываний (SINT), на котором доставлено сообщение.

Message

Указывает полезные данные сообщения для публикации.

MessageSizeInBytes

Задает размер Messageв байтах. Должно быть больше нуля и не WHV_SYNIC_MESSAGE_SIZE больше (256).

Возвращаемое значение

Если функция выполнена успешно, возвращается S_OKзначение.

Функция возвращаетсяE_INVALIDARG, WHV_SYNIC_MESSAGE_SIZEесли MessageSizeInBytes больше. Если целевой слот сообщений SINT виртуального процессора уже занят незавершенным сообщением, функция возвращается HRESULT_FROM_WIN32(ERROR_HV_OBJECT_IN_USE).

Remarks

Функция WHvPostVirtualProcessorSynicMessage передает сообщение на страницу сообщения SynIC целевого виртуального процессора на указанном SINT, как будто сообщение было отправлено гипервизором. Сообщение записывается в соответствующий слот сообщений SINT, а виртуальный процессор уведомляется с помощью этого SINT.

Каждый SINT имеет один слот сообщения. Если предыдущее сообщение об этом SINT еще не было занято гостем, вызов завершается ошибкой ERROR_HV_OBJECT_IN_USE; вызывающий объект должен повторить попытку после того, как гость признал предыдущее сообщение.

Требования

Requirement Ценность
Минимальный поддерживаемый Windows Windows 10 версии 20H2 (x64); Windows 11 версии 24H2, сборка 26100.3915 (Arm64)
Header WinHvPlatform.h
Библиотека WinHvPlatform.lib
DLL WinHvPlatform.dll
Architecture x64, Arm64

См. также