EVT_VMB_CHANNEL_SUSPEND fonction de rappel (vmbuskernelmodeclientlibapi.h)
[Certaines informations portent sur la préversion du produit, qui est susceptible d’être en grande partie modifié avant sa commercialisation. Microsoft ne donne aucune garantie, expresse ou implicite, concernant les informations fournies ici.]
La fonction de rappel EvtVmbChannelSuspend est appelée au point de terminaison du serveur lorsque le canal est fermé ou supprimé par le point de terminaison client, ce qui place le serveur à l’état Arrêté.
Syntaxe
EVT_VMB_CHANNEL_SUSPEND EvtVmbChannelSuspend;
void EvtVmbChannelSuspend(
[in] VMBCHANNEL Channel
)
{...}
Paramètres
[in] Channel
Canal suspendu.
Valeur de retour
None
Remarques
Une fois qu’un canal est créé, un pilote client peut spécifier des fonctions de rappel pour les modifications d’état, y compris 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 rappel EvtVmbChannelProcessPacket n’est en cours d’exécution ou ne sera mis en file d’attente.
EvtVmbChannelSuspend est également une notification indiquant que le client KMCL doit terminer tous les paquets en attente indiqués à l’aide d’EvtVmbChannelProcessPacket Ces paquets n’ont pas besoin d’être terminés de manière synchrone. KmCL se bloque jusqu’à ce qu’ils soient terminés.
Le client KMCL doit également arrêter d’envoyer des paquets à l’aide des fonctions VmbPacketSend, VmbPacketSendWithExternalMdl ou VmbPacketSendWithExternalPfns .
Un appel à VmbChannelPause sur un canal actif se bloque jusqu’à ce que EvtVmbChannelSuspend soit appelé et qu’il n’existe plus de paquets entrants en attente.
Un appel au bloc VmbChannelDisable 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 s’être bloquée. Le serveur doit mettre hors service toutes les transactions en suspens, probablement en les annulant.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Windows |
En-tête | vmbuskernelmodeclientlibapi.h (incluez VmbusKernelModeClientLibApi.h) |
IRQL | PASSIVE_LEVEL |