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 错误代码。
返回代码 | 说明 |
---|---|
|
异步操作仍处于挂起状态。 |
|
通道关闭是在通道关闭时通过调用 WsAbortChannel 中止的。 |
|
频道处于不适当的状态 (请参阅) “备注”部分。 |
|
与远程终结点的连接已终止。 |
|
远程终结点无法处理请求。 |
|
输入数据未采用预期格式或没有预期值。 |
|
操作未在分配的时间内完成。 |
|
超出配额。 |
|
内存不足,无法完成操作。 |
|
一个或多个参数无效。 |
|
此函数可能会返回上面未列出的其他错误。 |
注解
如果打开某个通道或成功接受某个通道,则必须在不再需要该通道时将其关闭。 关闭通道后,可以安全地释放关联的资源。
通道关闭过程将等待任何已启动的挂起 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 |
Library | WebServices.lib |
DLL | WebServices.dll |