www.cendio.com
Bug 4702 - SeamlessRDP broken on Windows 2012 (incomplete fix)
: SeamlessRDP broken on Windows 2012 (incomplete fix)
Status: CLOSED FIXED
: ThinLinc
| rdesktop (deprecated)
: trunk
: PC Unknown
: P2 Normal
: 4.3.0
Assigned To:
:
:
:
: 4552
  Show dependency treegraph
 
Reported: 2013-06-13 12:55 by
Modified: 2014-10-08 17:55 (History)
Acceptance Criteria:


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From cendio 2013-06-13 12:55:44
SeamlessRDP doesn't work at all on Windows 2012. You just get a "Hook DLL
failed to initialize." when trying to start seamlessrdpshell.exe.

I did a quick debug of it, and the problem is that vchannel_open() in hookdll.c
fails. One possible reason for this is that you can't do multiple
WTSVirtualChannelOpen() anymore. Normally we prevent this by having a reference
counter in vchannel.c. Unfortunately it fails in this case because
seamlessrdpshell.exe and seamlessrdp??.dll have their own copies of vchannel.c.
------- Comment #1 From cendio 2014-06-23 14:54:25 -------
We need to remove a copy of vchannel and we do this from the exe file.

First we need to do some refactoring, eg. moving shared implementation into it
own library. There is also some unrelated function implementationt in
libvchannel that should be moved into the shared library.

Secondly, we need to remove the link with vchannel library from the exe file
and import the vchannel functions from the dll to be used.
------- Comment #2 From cendio 2014-06-23 15:15:31 -------
(In reply to comment #1)
> First we need to do some refactoring, eg. moving shared implementation into it
> own library. There is also some unrelated function implementationt in
> libvchannel that should be moved into the shared library.
> 

Upstream commits 1810, 1811 and 1812 include clean up of code and creation of a
library with shared helper functions.
------- Comment #3 From cendio 2014-06-23 16:52:46 -------
(In reply to comment #1)
> Secondly, we need to remove the link with vchannel library from the exe file
> and import the vchannel functions from the dll to be used.

Done in upstream commit 1813.

The above change has been tested on Window 2003 and works as expected.

However on 2012 platform it seems to raise a few other issues, seems like the
windows hook is not working as expected. Also the launch of the 32bit helper
application failed / timed out.
------- Comment #4 From cendio 2014-07-03 13:15:17 -------
(In reply to comment #3)
> (In reply to comment #1)
> > Secondly, we need to remove the link with vchannel library from the exe file
> > and import the vchannel functions from the dll to be used.
> 
> Done in upstream commit 1813.
> 

Brought to ctc with vendordrop commit 29162.
------- Comment #5 From cendio 2014-09-08 13:17:22 -------
(In reply to comment #3)
> However on 2012 platform it seems to raise a few other issues, seems like the
> windows hook is not working as expected. Also the launch of the 32bit helper
> application failed / timed out.

A new bug #5245 is created for the above issues.
------- Comment #6 From cendio 2014-09-08 13:19:45 -------
Commits 29328, 29330 and 29331 adds notes in documentation about Windows Server
2012/2012 R2 is not supporting SeamlessRDP.
------- Comment #7 From cendio 2014-09-25 16:33:43 -------
Documentation updates look good. Will verify that SeamlessRDP isn't broken on
Windows 2008 R2 server before closing.
------- Comment #8 From cendio 2014-10-08 17:55:21 -------
(In reply to comment #7)
> Documentation updates look good. Will verify that SeamlessRDP isn't broken on
> Windows 2008 R2 server before closing.

SeamlessRDP still works on windows 2008 r2.