WsCloseChannel 函式 (webservices.h)

關閉指定的 通道

語法

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

參數

[in] channel

表示要關閉之通道 之WS_CHANNEL 結構的指標。

[in, optional] asyncContext

WS_ASYNC_CONTEXT數據結構的指標,其中包含異步叫用函式的資訊。 傳遞 NULL 值以同步呼叫函式。

[in, optional] error

如果函式失敗 ,則WS_ERROR 結構的指標,其中會儲存其他錯誤資訊。

傳回值

如果函式成功,它會傳回NO_ERROR;否則,它會傳回 HRESULT 錯誤碼。

傳回碼 Description
WS_S_ASYNC
異步操作仍然擱置中。
WS_E_OPERATION_ABORTED
通道關閉已由呼叫 WsAbortChannel 中止,而通道關閉。
WS_E_INVALID_OPERATION
通道處於不適當的狀態 (請參閱一節) 。
WS_E_ENDPOINT_DISCONNECTED
已終止與遠端端點的連線。
WS_E_ENDPOINT_FAILURE
遠端端點無法處理要求。
WS_E_INVALID_FORMAT
輸入數據的格式不正確,或沒有預期的值。
WS_E_OPERATION_TIMED_OUT
作業未在配置的時間內完成。
WS_E_QUOTA_EXCEEDED
超過配額。
E_OUTOFMEMORY
記憶體不足,無法完成作業。
E_INVALIDARG
一或多個引數無效。
其他錯誤
此函式可能會傳回上述未列出的其他錯誤。

備註

如果您開啟通道或成功接受通道,則必須在不再需要通道時將其關閉。 通道關閉之後,就可以安全地釋放相關聯的資源。

通道關閉程式會等候任何已起始、擱置的 I/O 完成。

如果通道目前沒有正在讀取或寫入的訊息,通道會嘗試正常關機。 否則,通道本身上仍擱置的所有 I/O 都會中止,而且通道會執行無理關機。

如果通道嘗試正常關機但發生錯誤, WsCloseChannel 會傳回錯誤,但通道仍會關閉。

只有在通道處於WS_CHANNEL_STATE_OPEN或WS_CHANNEL_STATE_FAULTED狀態時,才允許此作業。

關閉通道會自動解除任何正在讀取或寫入之訊息的關聯。 因此,呼叫 WsCloseChannel) 之前,不需要呼叫 WsAbandonMessage

規格需求

需求
最低支援的用戶端 Windows 7 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 R2 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 webservices.h
程式庫 WebServices.lib
Dll WebServices.dll