Fonction WsCloseChannel (webservices.h)
Ferme un canal spécifié.
HRESULT WsCloseChannel(
[in] WS_CHANNEL *channel,
[in, optional] const WS_ASYNC_CONTEXT *asyncContext,
[in, optional] WS_ERROR *error
);
[in] channel
Pointeur vers une structure WS_CHANNEL représentant le canal à fermer.
[in, optional] asyncContext
Pointeur vers une structure de données WS_ASYNC_CONTEXT contenant des informations pour appeler la fonction de manière asynchrone. Transmettez une valeur NULL pour appeler la fonction de manière synchrone.
[in, optional] error
Pointeur vers une structure WS_ERROR où des informations d’erreur supplémentaires sont stockées en cas d’échec de la fonction.
Si la fonction réussit, elle retourne NO_ERROR ; sinon, il retourne un code d’erreur HRESULT.
Code de retour | Description |
---|---|
|
L’opération asynchrone est toujours en attente. |
|
La fermeture du canal a été abandonnée par un appel à WsAbortChannel pendant la fermeture du canal. |
|
Le canal était dans un état inapproprié (voir la section Remarques). |
|
La connexion avec le point de terminaison distant a été interrompue. |
|
Le point de terminaison distant n’a pas pu traiter la demande. |
|
Les données d’entrée n’étaient pas au format attendu ou n’avaient pas la valeur attendue. |
|
L’opération ne s’est pas terminée dans le délai imparti. |
|
Un quota a été dépassé. |
|
Mémoire insuffisante pour terminer l’opération. |
|
Un ou plusieurs arguments ne sont pas valides. |
|
Cette fonction peut renvoyer d’autres erreurs non répertoriées ci-dessus. |
Si vous ouvrez un canal ou acceptez un canal, vous devez le fermer quand il n’est plus nécessaire. Une fois qu’un canal a été fermé, les ressources associées peuvent être libérées en toute sécurité.
Le processus de fermeture du canal attend que toutes les E/S déjà lancées se terminent.
S’il n’y a aucun message en cours de lecture ou d’écriture pour le canal, le canal tente un arrêt gracieux. Sinon, toutes les E/S en attente sur le canal lui-même sont abandonnées et le canal effectue un arrêt brutal.
Si le canal tente un arrêt normal mais rencontre une erreur, WsCloseChannel retourne une erreur, mais le canal est toujours fermé.
Cette opération n’est autorisée que si le canal est dans des états WS_CHANNEL_STATE_OPEN ou WS_CHANNEL_STATE_FAULTED.
La fermeture d’un canal dissocie automatiquement tous les messages en cours de lecture ou d’écriture. Par conséquent, il n’est pas nécessaire d’appeler WsAbandonMessage avant d’appeler WsCloseChannel).
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 7 [applications de bureau | Applications UWP] |
Serveur minimal pris en charge | Windows Server 2008 R2 [applications de bureau | Applications UWP] |
Plateforme cible | Windows |
En-tête | webservices.h |
Bibliothèque | WebServices.lib |
DLL | WebServices.dll |