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のサイズをバイト単位で指定します。 0 より大きく、 WHV_SYNIC_MESSAGE_SIZE (256) を超えてはなりません。

戻り値

関数が成功した場合、戻り値は S_OK

MessageSizeInBytesWHV_SYNIC_MESSAGE_SIZEより大きい場合、この関数はE_INVALIDARGを返します。 ターゲット仮想プロセッサの SINT メッセージ スロットが既に未配信メッセージによって占有されている場合、関数は HRESULT_FROM_WIN32(ERROR_HV_OBJECT_IN_USE)を返します。

Remarks

WHvPostVirtualProcessorSynicMessage関数は、ハイパーバイザーによってメッセージが送信されたかのように、指定された SINT 上のターゲット仮想プロセッサの SynIC メッセージ ページにメッセージを配信します。 メッセージは対応する SINT メッセージ スロットに書き込まれ、仮想プロセッサはその SINT を介して通知されます。

各 SINT には、1 つのメッセージ スロットがあります。 その SINT の前のメッセージがまだゲストによって使用されていない場合、呼び出しは ERROR_HV_OBJECT_IN_USE で失敗します。ゲストが前のメッセージを確認した後、呼び出し元は再試行する必要があります。

Requirements

要件 価値
サポートされている最小Windows Windows 10バージョン 20H2 (x64);Windows 11、バージョン 24H2、ビルド 26100.3915 (Arm64)
Header WinHvPlatform.h
図書館 WinHvPlatform.lib
DLL WinHvPlatform.dll
Architecture x64、Arm64

こちらも参照ください