我制作了一个 64 位 c++虚拟通道客户端 DLL
我使用虚拟通道客户端注册更新了我的注册表(我选择了Default\Addins
方式)
mstsc.exe
如果我启动 Remote Dekstop连接,一切都会正常:我的 DLL 加载到VirtualChannelEntry
名为拥有,在服务器会话中运行,并打开虚拟通道)。
我还能够打开到另一台服务器的第二个远程桌面连接。启动了第二个mstsc.exe
进程,它加载了我的 DLL,一切正常。
当我用两个“RemoteApps”(第一个服务器上的一个 RemoteApp,第二个服务器上的另一个)替换我的两个远程桌面时,我的问题就开始了。
当我启动第一个 RemoteApp 时,一切都很好(mstsc.exe
启动并加载我的 DLL)。
当我启动第二个 RemoteApp 时,没有 new mstsc.exe
,因此无法再次加载我的 DLL,但现有的mstsc.exe
不会调用我的 export VirtualChannelEntry
。我无法与第二台服务器建立虚拟通道。
顺序很重要,而不是 RemoteApps。只有第一个启动的 RemoteApp 会为其服务器提供一个虚拟通道。
如果我只启动一个RemoteApp,然后启动与另一台服务器的完整远程桌面连接,一切正常:两个mstsc.exe
加载我的 DLL,建立两个虚拟通道。
问题:
如何将虚拟通道与位于两个不同服务器上的两个 RemoteApp 一起使用?
为什么当我从两个服务器启动两个 RemoteApp 时只有一个mstsc.exe
,为什么那个不mstsc.exe
要求第二个连接?VirtualChannelEntry
我的客户端操作系统是 Windows 2012。使用 Windows 10 Pro 作为客户端重现问题。