Annulation d’appel
La notification d’annulation d’appel annule l’opération des 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, l’opération de service ou le rappel 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, l’opération de service ou le rappel 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 pendant la durée de vie des opérations de service côté serveur ou de la fonction de rappel.
L’annulation d’appel est disponible dans pour tous les rappels d’hôtes de service qui prennent WS_OPERATION_CONTEXT en tant que paramètre.
Les éléments d’API suivants concernent l’annulation d’appel.
Rappel | Description |
---|---|
WS_OPERATION_CANCEL_CALLBACK | Appelé par le modèle de service pour notifier une annulation d’une opération de service asynchrone à la suite d’un arrêt abandonné de l’hôte de service. |
WS_OPERATION_FREE_STATE_CALLBACK | Appelé par modèle de service pour permettre à une application de propre les données d’état inscrites avec le rappel d’annulation. |
Fonction | Description |
---|---|
WsRegisterOperationForCancel | Permet à une opération de service ou à un rappel de modèle de service de s’inscrire à une notification d’annulation. |