Partager via


EVT_VMB_CHANNEL_SUSPEND fonction de rappel (vmbuskernelmodeclientlibapi.h)

[Certaines informations concernent le produit préversion qui peut être sensiblement modifié avant sa publication commerciale. Microsoft n’offre aucune garantie, expresse ou implicite, en ce qui concerne les informations fournies ici.]

La fonction de rappel EvtVmbChannelSuspend est appelée sur le point de terminaison du serveur lorsque le canal est fermé ou supprimé par le point de terminaison client, ce qui déplace le serveur dans l’état Arrêté.

Syntaxe

EVT_VMB_CHANNEL_SUSPEND EvtVmbChannelSuspend;

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

Paramètres

[in] Channel

Canal suspendu.

Valeur de retour

Aucun

Remarques

Une fois qu’un canal est créé, un pilote client peut spécifier des fonctions de rappel pour les modifications d’état, notamment EvtVmbChannelSuspend, à l’aide de la fonction VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT.

Si un canal en cours d’exécution est suspendu à l’aide de la fonction VmbChannelPause ou fermé à l’aide de la fonction VmbChannelDisable ou par le point de terminaison opposé, la bibliothèque de client en mode noyau (KMCL) appelle EvtVmbChannelSuspend. Ce rappel garantit qu’aucun autre EvtVmbChannelProcessPacket rappels s’exécutent ou seront mis en file d’attente.

EvtVmbChannelSuspend est également une notification indiquant que le client KMCL doit finalement terminer tous les paquets en attente indiqués à l’aide de EvtVmbChannelProcessPacket Ces paquets n’ont pas besoin d’être terminés de manière synchrone. Blocs KMCL jusqu’à ce qu’ils soient terminés.

Le client KMCL doit également arrêter l’envoi de paquets à l’aide du VmbPacketSend, VmbPacketSendWithExternalMdlou fonctions VmbPacketSendWithExternalPfns.

Un appel à VmbChannelPause sur un canal actif bloque jusqu’à ce que EvtVmbChannelSuspend soit appelé et aucun paquet entrant en attente n’existe.
Un appel à VmbChannelDisable bloquer jusqu’à ce que le canal soit suspendu et fermé.

Cette fonction garantit l’achèvement des transactions en attente. Le client peut être buggy, malveillant ou la machine virtuelle invitée peut avoir bloqué. Le serveur doit mettre hors service toutes les transactions en attente, probablement en les annulant.

Exigences

Exigence Valeur
plateforme cible Windows
d’en-tête vmbuskernelmodeclientlibapi.h (include VmbusKernelModeClientLibApi.h)
IRQL PASSIVE_LEVEL

Voir aussi

EvtVmbChannelProcessPacket

VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT

VmbChannelDisable

VmbChannelPause

VmbPacketSend

VmbPacketSendWithExternalMdl

VmbPacketSendWithExternalPfns