Freigeben über


HvCallPostMessage

Der HvCallPostMessage-Hypercall versucht, eine Nachricht an die angegebene Verbindung zu senden (d. h. asynchron zu senden), die über einen zugeordneten Zielport verfügt. Wenn die Nachricht erfolgreich gesendet wurde, wird sie für die Übermittlung an einen virtuellen Prozessor innerhalb der Partition, die dem Port zugeordnet ist, in die Warteschlange gestellt.

Schnittstelle

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

Aufrufcode

0x005C (Einfach)

Eingabeparameter

Name Offset Size Informationen bereitgestellt
ConnectionId 0 4 Gibt die ID der Verbindung an.
RsvdZ 4 4
MessageType 8 4 Gibt den Nachrichtentyp an, der im Nachrichtenheader angezeigt wird. Der Aufrufer kann einen beliebigen 32-Bit-Nachrichtentyp angeben, dessen wichtigstes Bit mit Ausnahme von 0 (null) klar ist.
PayloadSize 12 4 Gibt die Anzahl der Bytes an, die in der Nachricht enthalten sind.
Message 16 240 Sekifiziert die Nutzlast der Nachricht – insgesamt bis zu 240 Bytes. Nur die ersten n Bytes werden tatsächlich an die Zielpartition gesendet, wobei n im PayloadSize-Parameter angegeben wird.

Rückgabewerte

Statuscode Fehlerbedingung
HV_STATUS_ACCESS_DENIED Die Partition des Aufrufers verfügt nicht über die PostMessages-Berechtigung.
HV_STATUS_INVALID_CONNECTION_ID Die angegebene Verbindungs-ID ist ungültig.
HV_STATUS_INVALID_PORT_ID Der Port, der der angegebenen Verbindung zugeordnet ist, wurde gelöscht.
Der Port, der der angegebenen Verbindung zugeordnet ist, gehört zu einer Partition, die sich nicht im "aktiven" Zustand befindet.
Der Port, der der angegebenen Verbindung zugeordnet ist, ist kein Port vom Typ "Nachricht".
HV_STATUS_INVALID_PARAMETER Das wichtigste Bit des angegebenen Nachrichtentyps wird festgelegt.
Der MessageType-Parameter gibt den Wert 0 (null) an.
Die angegebene Nutzlastgröße überschreitet 240 Bytes.
HV_STATUS_INSUFFICIENT_BUFFERS Der Port verfügt über keine verfügbaren Gastnachrichtenpuffer.
HV_STATUS_INVALID_VP_INDEX Der Ziel-VP ist nicht mehr vorhanden, oder es sind keine VPs verfügbar, an die die Nachricht gesendet werden kann.
HV_STATUS_INVALID_SYNIC_STATE SynIC des Ziel-VP ist deaktiviert und kann keine geposteten Nachrichten akzeptieren.
Die SIM-Seite des Ziel-VP ist deaktiviert.