合成割り込みコントローラー (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。
MessageSizeInBytesがWHV_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 |