WTSVirtualChannelOpenEx 函数 (wtsapi32.h)

以类似于 WTSVirtualChannelOpen 的方式创建虚拟通道。

此 API 支持静态虚拟通道 (SVC) 和动态虚拟通道 (DVC) 创建。 如果 flags 参数为零,则其行为与 WTSVirtualChannelOpen 相同。 可以通过指定适当的标志来打开 DVC。 创建 DVC 后,可以对读取、写入、查询或关闭使用与 SVC 相同的函数。

语法

HANDLE WTSVirtualChannelOpenEx(
  [in] DWORD SessionId,
  [in] LPSTR pVirtualName,
  [in] DWORD flags
);

参数

[in] SessionId

远程桌面服务会话标识符。 若要指示当前会话,请指定 WTS_CURRENT_SESSION。 可以使用 WTSEnumerateSessions 函数检索指定 RD 会话主机服务器上所有会话的标识符。

若要能够在其他用户的会话上打开虚拟通道,必须具有虚拟通道权限。 有关详细信息,请参阅 远程桌面服务权限。 若要修改会话的权限,请使用远程桌面服务配置管理工具。

[in] pVirtualName

对于 SVC, 指向包含虚拟通道名称的以 null 结尾的字符串。 SVC 名称的长度限制为 CHANNEL_NAME_LEN 个字符,不包括终止 null。

对于 DVC, 指向一个以 null 结尾的字符串,其中包含侦听器的终结点名称。 DVC 名称的长度限制为 MAX_PATH 个字符。

[in] flags

若要以 SVC 的形式打开通道,请为此参数指定零。 若要以 DVC 的形式打开通道,请指定 WTS_CHANNEL_OPTION_DYNAMIC

打开 DVC 时,可以通过将 WTS_CHANNEL_OPTION_DYNAMIC_PRI_XXX 值与 WTS_CHANNEL_OPTION_DYNAMIC 值一起指定为要传输的数据指定优先级设置。

WTS_CHANNEL_OPTION_DYNAMIC_NO_COMPRESS

禁用此 DVC 的压缩。 必须结合 WTS_CHANNEL_OPTION_DYNAMIC 值指定此值。

WTS_CHANNEL_OPTION_DYNAMIC_PRI_LOW (默认)

低优先级。 数据将以低优先级在双方发送。 将此优先级用于所有大小的块传输,其中传输速度并不重要。 在几乎所有 (95% ) 的情况下,通道都应使用此标志打开。

WTS_CHANNEL_OPTION_DYNAMIC_PRI_MED

中等优先级。 使用此优先级发送短控制消息,这些消息必须优先于低优先级通道中的数据。

WTS_CHANNEL_OPTION_DYNAMIC_PRI_HIGH

高优先级。 将此优先级用于关键且直接影响用户体验的数据。 传输大小可能会有所不同。 显示数据属于此类别。

WTS_CHANNEL_OPTION_DYNAMIC_PRI_REAL

实时优先级。 仅当数据传输绝对关键时,才使用此优先级。 数据传输大小应限制为每条消息几百个字节。

返回值

设置 GetLastError 时出错时为 NULL

要求

要求
最低受支持的客户端 Windows Vista
最低受支持的服务器 Windows Server 2008
目标平台 Windows
标头 wtsapi32.h
Library Wtsapi32.lib
DLL Wtsapi32.dll
API 集 在 Windows 8) 中引入的 ext-ms-win-session-wtsapi32-l1-1-0 (

另请参阅

DVC 服务器 API

动态虚拟通道参考

WTSVirtualChannelOpen