WsShutdownSessionChannel 函数 (webservices.h)

用于指示会话通道的消息结束。

语法

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

参数

[in] channel

要关闭的会话通道。

[in, optional] asyncContext

有关如何异步调用函数的信息;如果以同步方式调用,则为 NULL

[in, optional] error

指定函数失败时应存储其他错误信息的位置。

返回值

此函数可以返回其中一个值。

返回代码 说明
WS_E_INVALID_OPERATION
如果通道不处于 WS_CHANNEL_STATE_OPEN 状态,则返回此值。

注解

此函数将向远程方指示已为通道发送所有消息。

远程方可以通过在接收消息时查找 WS_S_END 返回值来检测通道上没有更多消息可用。 (请参阅 Windows Web Services 返回值。) 但是,如果通道筛选了非应用程序消息,则消息也可能变得不可用,如 通道层概述中所述。 可以通过跟踪是否收到以前的消息来区分会话关闭与消息筛选。 如果收到以前的消息,则会话已关闭。

此函数仅适用于使用支持消息发送的会话 的WS_CHANNEL_TYPE 创建的通道:

通道必须处于 WS_CHANNEL_STATE_OPEN 状态。

如果此函数成功,则 WS_CHANNEL_PROPERTY_IS_SESSION_SHUT_DOWN 属性的值将为 TRUE

关闭会话通道后,尝试在通道上发送消息或尝试关闭通道将返回 WS_E_INVALID_OPERATION

调用此函数是可选的。 在 WS_CHANNEL_STATE_OPEN 中使用 WsCloseChannel 关闭会话通道时,该通道会在关闭过程中自动关闭。

要求

要求
最低受支持的客户端 Windows 7 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2 [桌面应用 |UWP 应用]
目标平台 Windows
标头 webservices.h
Library WebServices.lib
DLL WebServices.dll