Partager via


Fonction WsCloseChannel (webservices.h)

Ferme un canal spécifié.

Syntaxe

HRESULT WsCloseChannel(
  [in]           WS_CHANNEL             *channel,
  [in, optional] const WS_ASYNC_CONTEXT *asyncContext,
  [in, optional] WS_ERROR               *error
);

Paramètres

[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.

Valeur retournée

Si la fonction réussit, elle retourne NO_ERROR ; sinon, il retourne un code d’erreur HRESULT.

Code de retour Description
WS_S_ASYNC
L’opération asynchrone est toujours en attente.
WS_E_OPERATION_ABORTED
La fermeture du canal a été abandonnée par un appel à WsAbortChannel pendant la fermeture du canal.
WS_E_INVALID_OPERATION
Le canal était dans un état inapproprié (voir la section Remarques).
WS_E_ENDPOINT_DISCONNECTED
La connexion avec le point de terminaison distant a été interrompue.
WS_E_ENDPOINT_FAILURE
Le point de terminaison distant n’a pas pu traiter la demande.
WS_E_INVALID_FORMAT
Les données d’entrée n’étaient pas au format attendu ou n’avaient pas la valeur attendue.
WS_E_OPERATION_TIMED_OUT
L’opération ne s’est pas terminée dans le délai imparti.
WS_E_QUOTA_EXCEEDED
Un quota a été dépassé.
E_OUTOFMEMORY
Mémoire insuffisante pour terminer l’opération.
E_INVALIDARG
Un ou plusieurs arguments ne sont pas valides.
Autres erreurs
Cette fonction peut renvoyer d’autres erreurs non répertoriées ci-dessus.

Remarques

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).

Configuration requise

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