Funzione WsCloseChannel (webservices.h)
Chiude un canale specificato.
Sintassi
HRESULT WsCloseChannel(
[in] WS_CHANNEL *channel,
[in, optional] const WS_ASYNC_CONTEXT *asyncContext,
[in, optional] WS_ERROR *error
);
Parametri
[in] channel
Puntatore a una struttura WS_CHANNEL che rappresenta il canale da chiudere.
[in, optional] asyncContext
Puntatore a una struttura di dati WS_ASYNC_CONTEXT contenente informazioni per richiamare la funzione in modo asincrono. Passare un valore NULL per chiamare la funzione in modo sincrono.
[in, optional] error
Puntatore a una struttura WS_ERROR in cui vengono archiviate informazioni di errore aggiuntive se la funzione ha esito negativo.
Valore restituito
Se la funzione ha esito positivo, restituisce NO_ERROR; in caso contrario, restituisce un codice di errore HRESULT.
Codice restituito | Descrizione |
---|---|
|
L'operazione asincrona è ancora in sospeso. |
|
La chiusura del canale è stata interrotta da una chiamata a WsAbortChannel mentre il canale è stato chiuso. |
|
Il canale era in uno stato inappropriato (vedere la sezione Osservazioni). |
|
La connessione con l'endpoint remoto è stata terminata. |
|
L'endpoint remoto non è riuscito a elaborare la richiesta. |
|
I dati di input non erano nel formato previsto o non hanno il valore previsto. |
|
L'operazione non è stata completata entro il tempo assegnato. |
|
È stata superata una quota. |
|
Memoria insufficiente per completare l'operazione. |
|
Uno o più argomenti non sono validi. |
|
Questa funzione può restituire altri errori non elencati sopra. |
Commenti
Se si apre un canale o si accetta correttamente un canale, è necessario chiuderlo quando non è più necessario. Dopo la chiusura di un canale, le risorse associate possono essere liberate in modo sicuro.
Il processo di chiusura del canale attende il completamento di eventuali operazioni di I/O già avviate.
Se non sono presenti messaggi attualmente letti o scritti per il canale, il canale tenta un arresto normale. In caso contrario, tutte le operazioni di I/O ancora in sospeso sul canale stesso vengono interrotte e il canale esegue un arresto rude.
Se il canale tenta un arresto normale ma rileva un errore, WsCloseChannel restituirà un errore, ma il canale verrà comunque chiuso.
Questa operazione è consentita solo se il canale si trova in WS_CHANNEL_STATE_OPEN o WS_CHANNEL_STATE_FAULTED stati.
La chiusura di un canale impedisce automaticamente l'accesso a tutti i messaggi che si trovano nel processo di lettura o scrittura. Pertanto, non è necessario chiamare WsAbandonMessage prima di chiamare WsCloseChannel.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 7 [app desktop | App UWP] |
Server minimo supportato | Windows Server 2008 R2 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | webservices.h |
Libreria | WebServices.lib |
DLL | WebServices.dll |