Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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. |