Bug 4702 - SeamlessRDP broken on Windows 2012 (incomplete fix)
Summary: SeamlessRDP broken on Windows 2012 (incomplete fix)
Status: CLOSED FIXED
Alias: None
Product: ThinLinc
Classification: Unclassified
Component: | rdesktop (deprecated) (show other bugs)
Version: trunk
Hardware: PC Unknown
: P2 Normal
Target Milestone: 4.3.0
Assignee: Henrik Andersson
URL:
Keywords: prosaic, samuel_tester
Depends on:
Blocks: 4552
  Show dependency treegraph
 
Reported: 2013-06-13 12:55 CEST by Pierre Ossman
Modified: 2014-10-08 17:55 CEST (History)
1 user (show)

See Also:
Acceptance Criteria:


Attachments

Description Pierre Ossman cendio 2013-06-13 12:55:44 CEST
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 Henrik Andersson cendio 2014-06-23 14:54:25 CEST
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 Henrik Andersson cendio 2014-06-23 15:15:31 CEST
(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 Henrik Andersson cendio 2014-06-23 16:52:46 CEST
(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 Henrik Andersson cendio 2014-07-03 13:15:17 CEST
(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 Henrik Andersson cendio 2014-09-08 13:17:22 CEST
(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 Henrik Andersson cendio 2014-09-08 13:19:45 CEST
Commits 29328, 29330 and 29331 adds notes in documentation about Windows Server 2012/2012 R2 is not supporting SeamlessRDP.
Comment 7 Samuel Mannehed cendio 2014-09-25 16:33:43 CEST
Documentation updates look good. Will verify that SeamlessRDP isn't broken on Windows 2008 R2 server before closing.
Comment 8 Samuel Mannehed cendio 2014-10-08 17:55:21 CEST
(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.

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