Partager via


EVT_VMB_CHANNEL_STARTED 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 EvtVmbChannelStarted est appelée au niveau de l’un ou l’autre point de terminaison lorsqu’un canal est entièrement configuré, mais avant la remise des paquets. Cela se produit lorsque le point de terminaison opposé a ouvert le canal ou l’a rouvert après sa fermeture.

Syntaxe

EVT_VMB_CHANNEL_STARTED EvtVmbChannelStarted;

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

Paramètres

[in] Channel

Canal démarré.

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, notamment EvtVmbChannelStarted, à l’aide de la fonction VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT .

Si un canal suspendu est ouvert ou qu’un canal ouvert est démarré, la bibliothèque cliente en mode noyau (KMCL) appelle EvtVmbChannelStarted après avoir appelé le rappel EvtVmbChannelOpened . EvtVmbChannelStarted peut appeler les fonctions VmbPacketSend, VmbPacketSendWithExternalMdl et VmbPacketSendWithExternalPfns pour mettre en file d’attente les paquets sortants. Étant donné que la file d’attente entrante n’est pas en cours d’exécution à ce stade, ce rappel ne doit pas bloquer les paquets entrants ou les achèvements.

La plupart des pilotes utilisant KMCL n’implémentent pas ce rappel. Une alternative est la fonction de rappel EvtVmbChannelPostStarted .

L’attente de la fin d’un paquet envoyé, par exemple par la fonction VmbChannelSendSynchronousRequest , ne retourne jamais, car les paquets ne circulent pas lorsque ce rappel est appelé.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête vmbuskernelmodeclientlibapi.h (inclure VmbusKernelModeClientLibApi.h)
IRQL PASSIVE_LEVEL

Voir aussi

EvtVmbChannelOpened

EvtVmbChannelPostStarted

VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT

VmbChannelSendSynchronousRequest

VmbPacketSend

VmbPacketSendWithExternalMdl

VmbPacketSendWithExternalPfns