WSManDisconnectShell 函数 (wsman.h)
断开活动 shell 及其关联命令的网络连接。
语法
void WSManDisconnectShell(
[in, out] WSMAN_SHELL_HANDLE shell,
DWORD flags,
[in] WSMAN_SHELL_DISCONNECT_INFO *disconnectInfo,
[in] WSMAN_SHELL_ASYNC *async
);
参数
[in, out] shell
指定调用 WSManCreateShell 函数返回的句柄。 此参数不能为 NULL。
flags
可以是 WSMAN_FLAG_SERVER_BUFFERING_MODE_DROP 标志或 WSMAN_FLAG_SERVER_BUFFERING_MODE_BLOCK 标志。
[in] disconnectInfo
指向 WSMAN_SHELL_DISCONNECT_INFO 结构的指针,该结构指定服务器会话可能强制实施的空闲超时。 如果此参数为 NULL,则不会更改服务器会话空闲超时。
[in] async
定义异步结构以包含可选用户上下文和强制回调函数。 有关详细信息,请参阅 WSMAN_SHELL_ASYNC。 此参数不能为 NULL。
返回值
无
备注
此函数挂起与主动连接的服务器会话的网络连接。 在 shell 实例上执行的任何操作(如 WSManRunShellCommand、 WSManSendShellInput 或 WSManSignalShell)在断开连接之前必须完成。 这可确保在 shell 断开连接之前,服务器会话接收通过 WSManSendShellInput 发送的任何数据。 客户端可以选择使用 标志来修改服务器缓冲模式。 观察到以下行为:
- WSMAN_FLAG_SERVER_BUFFERING_MODE_DROP – 当缓冲区已满时,服务器会删除响应流缓冲区中的早期数据,以确保相应的命令操作继续运行。
-
WSMAN_FLAG_SERVER_BUFFERING_MODE_BLOCK – 当响应流缓冲区已满时,服务器将阻止命令执行。 如果未指定标志,服务器将继续使用已配置的模式或创建 shell 时指定的模式。 如果发生网络故障,如果客户端无法联系会话以断开 shell 的连接,则返回以下错误:
ERROR_WINRS_SHELL_DISCONNECT_OPERATION_NOT_GRACEFUL
客户端会话仍会进入断开连接状态,但不能保证在断开会话之前已完成任何以前的操作。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 |
最低受支持的服务器 | Windows Server 2012 |
目标平台 | Windows |
标头 | wsman.h |
Library | WsmSvc.lib |
DLL | WsmSvc.dll |