Compartir a través de


HvCallPostMessage

La hiperllamada HvCallPostMessage intenta publicar (es decir, enviar de forma asincrónica) un mensaje a la conexión especificada, que tiene un puerto de destino asociado. Si el mensaje se publica correctamente, se pondrá en cola para su entrega a un procesador virtual dentro de la partición asociada al puerto.

Interfaz

HV_STATUS
HvCallPostMessage(
   _In_ HV_CONNECTION_ID ConnectionId,
   _In_ HV_MESSAGE_TYPE MessageType,
   _In_ UINT32 PayloadSize,
   _In_reads_bytes_(PayloadSize) PCVOID Message
   );

Código de llamada

0x005C (Simple)

Parámetros de entrada

Nombre Offset Size Información proporcionada
ConnectionId 0 4 Especifica el identificador de la conexión.
RsvdZ 4 4
MessageType 8 4 Especifica el tipo de mensaje que aparecerá en el encabezado del mensaje. El autor de la llamada puede especificar cualquier tipo de mensaje de 32 bits cuyo bit más significativo se borra, a excepción de cero.
PayloadSize 12 4 Especifica el número de bytes que se incluyen en el mensaje.
Message 16 240 Secifies la carga del mensaje, hasta 240 bytes en total. Solo los primeros n bytes se envían realmente a la partición de destino, donde n se proporciona en el parámetro PayloadSize.

Valores devueltos

status code Condición de error
HV_STATUS_ACCESS_DENIED La partición del autor de la llamada no posee el privilegio PostMessages.
HV_STATUS_INVALID_CONNECTION_ID El identificador de conexión especificado no es válido.
HV_STATUS_INVALID_PORT_ID Se ha eliminado el puerto asociado a la conexión especificada.
El puerto asociado a la conexión especificada pertenece a una partición que no está en estado "activo".
El puerto asociado a la conexión especificada no es un puerto de tipo "mensaje".
HV_STATUS_INVALID_PARAMETER Se establece el bit más significativo del tipo de mensaje especificado.
El parámetro MessageType especifica un valor de cero.
El tamaño de carga especificado supera los 240 bytes.
HV_STATUS_INSUFFICIENT_BUFFERS El puerto no tiene búferes de mensajes de invitado disponibles.
HV_STATUS_INVALID_VP_INDEX El VP de destino ya no existe o no hay ninguna VP disponible en la que se pueda publicar el mensaje.
HV_STATUS_INVALID_SYNIC_STATE El SynIC del VP de destino está deshabilitado y no puede aceptar mensajes publicados.
La página SIM del VP de destino está deshabilitada.