HvCallPostMessage
The HvCallPostMessage hypercall attempts to post (that is, send asynchronously) a message to the specified connection, which has an associated destination port. If the message is successfully posted, then it will be queued for delivery to a virtual processor within the partition associated with the port.
Interface
HV_STATUS
HvCallPostMessage(
_In_ HV_CONNECTION_ID ConnectionId,
_In_ HV_MESSAGE_TYPE MessageType,
_In_ UINT32 PayloadSize,
_In_reads_bytes_(PayloadSize) PCVOID Message
);
Call Code
0x005C
(Simple)
Input Parameters
Name | Offset | Size | Information Provided |
---|---|---|---|
ConnectionId |
0 | 4 | Specifies the ID of the connection. |
RsvdZ | 4 | 4 | |
MessageType |
8 | 4 | Specifies the message type that will appear within the message header. The caller can specify any 32-bit message type whose most significant bit is cleared, with the exception of zero. |
PayloadSize |
12 | 4 | Specifies the number of bytes that are included in the message. |
Message |
16 | 240 | Secifies the payload of the message—up to 240 bytes total. Only the first n bytes are actually sent to the destination partition, where n is provided in the PayloadSize parameter. |
Return Values
Status code | Error Condition |
---|---|
HV_STATUS_ACCESS_DENIED |
The caller’s partition does not possess the PostMessages privilege. |
HV_STATUS_INVALID_CONNECTION_ID |
The specified connection ID is invalid. |
HV_STATUS_INVALID_PORT_ID |
The port associated with the specified connection has been deleted. |
The port associated with the specified connection belongs to a partition that is not in the “active” state. | |
The port associated with the specified connection is not a "message" type port. | |
HV_STATUS_INVALID_PARAMETER |
The most significant bit of the specified message type is set. |
The MessageType parameter specifies a value of zero. | |
The specified payload size exceeds 240 bytes. | |
HV_STATUS_INSUFFICIENT_BUFFERS |
The port has no available guest message buffers. |
HV_STATUS_INVALID_VP_INDEX |
The target VP no longer exists or there are no available VPs to which the message can be posted. |
HV_STATUS_INVALID_SYNIC_STATE |
The target VP’s SynIC is disabled and cannot accept posted messages. |
The target VP’s SIM page is disabled. |
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for