EVT_VMB_CHANNEL_SUSPEND Rückruffunktion (vmbuskernelmodeclientlibapi.h)

[Einige Informationen beziehen sich auf die Vorabversion, die vor der kommerziellen Freigabe möglicherweise wesentlichen Änderungen unterliegt. Microsoft übernimmt für die hier bereitgestellten Informationen keine Gewährleistung, weder ausdrücklicher noch impliziter Art.]

Die Rückruffunktion EvtVmbChannelSuspend wird am Serverendpunkt aufgerufen, wenn der Kanal vom Clientendpunkt geschlossen oder gelöscht wird, wodurch der Server in den Status Beendet versetzt wird.

Syntax

EVT_VMB_CHANNEL_SUSPEND EvtVmbChannelSuspend;

void EvtVmbChannelSuspend(
  [in] VMBCHANNEL Channel
)
{...}

Parameter

[in] Channel

Der Kanal, der angehalten wird.

Rückgabewert

Keine

Bemerkungen

Nachdem ein Kanal erstellt wurde, kann ein Clienttreiber Rückruffunktionen für Zustandsänderungen, einschließlich EvtVmbChannelSuspend, mithilfe der VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT-Funktion angeben.

Wenn ein ausgeführter Kanal mithilfe der VmbChannelPause-Funktion angehalten oder mithilfe der VmbChannelDisable-Funktion oder durch den entgegengesetzten Endpunkt geschlossen wird, ruft die Kernel mode Client Library (KMCL) EvtVmbChannelSuspend auf. Dieser Rückruf garantiert, dass keine EvtVmbChannelProcessPacket-Rückrufe mehr ausgeführt werden oder in die Warteschlange gestellt werden.

EvtVmbChannelSuspend ist auch eine Benachrichtigung, dass der KMCL-Client schließlich alle ausstehenden Pakete abschließen muss, die mithilfe von EvtVmbChannelProcessPacket angegeben werden. Diese Pakete müssen nicht synchron abgeschlossen werden. KMCL blockiert, bis sie abgeschlossen sind.

Der KMCL-Client muss auch das Senden von Paketen mit den Funktionen VmbPacketSend, VmbPacketSendWithExternalMdl oder VmbPacketSendWithExternalPfns beenden.

Ein Aufruf von VmbChannelPause in einem aktiven Kanal blockiert, bis EvtVmbChannelSuspend aufgerufen wird und keine weiteren ausstehenden eingehenden Pakete vorhanden sind.
Ein Aufruf von VmbChannelDisable wird blockiert, bis der Kanal angehalten und geschlossen wird.

Diese Funktion garantiert den Abschluss ausstehender Transaktionen. Der Client kann fehlerhaft oder bösartig sein, oder der virtuelle Gastcomputer ist abgestürzt. Der Server muss alle ausstehenden Transaktionen außer Kraft setzen, wahrscheinlich durch den Abbruch.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile vmbuskernelmodeclientlibapi.h (einschließen VmbusKernelModeClientLibApi.h)
IRQL PASSIVE_LEVEL

Weitere Informationen

EvtVmbChannelProcessPacket

VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT

VmbChannelDisable

VmbChannelPause

VmbPacketSend

VmbPacketSendWithExternalMdl

VmbPacketSendWithExternalPfns