I have built a Dynamic Virtual Channel for RDP and it works fantastic in most cases, but there are some cases that I cannot get it to work and I am out of ideas as to why.
Here is what I have tried and what works:
- Running the DVC plugin in proc on a 64 bit client connecting to a 64 bit server
- Running the DVC plugin Out of Proc in a 64 bit COM server with a 64 bit client connecting to a 64 bit server
Here is what I have tried and fails:
- Running the DVC plugin in proc in a 32 bit client connecting to a 64 bit server
- Running the DVC plugin out of proc in a 32 bit COM server with a 32 bit client connecting to a 64 bit server
- Running the DVC plugin out of proc in a 32 bit COM server with a 64 bit client connecting to a 64 bit server.
In all cases of failure, the plugin is loaded by the RDP client OK and I get all of the standard calls (Initialize, Connected, Disconnected, Terminate), I can even successfully call IWTSVirtualChannelManager.CreateListener OK (meaning no exceptions), but the IWTSListener is always null when it returns.
Does anyone have any ideas why IWTSVirtualChannelManager.CreateListener would not create a new listener and still return S_OK?