Partager via


Annulation d’appel

La notification d’annulation d’appel annule l’opération de opérations de service côté serveur et les rappels de modèle de service. Cette annulation peut être pour l’une des deux raisons suivantes :

  • L’hôte de service a arrêté les opérations en raison d’un appel à la fonction WsAbortServiceHost.
  • Le canal sous-jacent a déclenché une erreur.

Pour recevoir une notification d’annulation, le rappel de service ou de modèle de service doit inscrire un rappel WS_OPERATION_CANCEL_CALLBACK en appelant la fonction WsRegisterOperationForCancel.

Si vous le souhaitez, dans le cadre de l’inscription à la notification d’annulation, le rappel de service ou de modèle de service peut également inscrire des données d’état spécifiques à l’application et le rappel WS_OPERATION_FREE_STATE_CALLBACK.

Les données d’état sont mises à la disposition du rappel WS_OPERATION_CANCEL_CALLBACK. À la fin de l’appel, le rappel WS_OPERATION_FREE_STATE_CALLBACK est appelé pour permettre à l’application de libérer les données d’état.

Pour obtenir un exemple de code, consultez BlockingServiceExample.

Le rappel d’annulation n’est appelé qu’une seule fois pour la durée de vie des opérations de service côté serveur ou fonction de rappel.

L’annulation d’appel est disponible pour tous les rappels de l’hôte de service qui prennent WS_OPERATION_CONTEXT en tant que paramètre.

Les éléments d’API suivants sont liés à l’annulation des appels.

Rappel Description
WS_OPERATION_CANCEL_CALLBACK Appelé par le modèle de service pour notifier l’annulation d’une opération de service asynchrone suite à un arrêt abandonné de l’hôte de service.
WS_OPERATION_FREE_STATE_CALLBACK Appelé par le modèle de service pour permettre à une application de nettoyer les données d’état inscrites avec le rappel d’annulation.

 

Fonction Description
WsRegisterOperationForCancel Autorise une opération de service ou un rappel de modèle de service à s’inscrire à une notification d’annulation.