C# 为什么WTSVirtualChannel OpenEx返回31“;连接到系统的设备不起作用。”;
我已经实现了一个远程桌面动态虚拟通道服务器和客户端,当我调用C# 为什么WTSVirtualChannel OpenEx返回31“;连接到系统的设备不起作用。”;,c#,com,remote-desktop,C#,Com,Remote Desktop,我已经实现了一个远程桌面动态虚拟通道服务器和客户端,当我调用WTSVirtualChannelOpenEx时,它返回false和GetLastError返回: 31 连接到系统的设备不工作 我正在OnNewChannelConnection中设置pAccept和pCallback,并返回S\u OK。我没有看到任何例外。使用的测试在同一客户机上完全可以打开 internal class DemoWtsListenerCallback : IWTSListenerCallback { pu
WTSVirtualChannelOpenEx
时,它返回false和GetLastError
返回:
31连接到系统的设备不工作 我正在
OnNewChannelConnection
中设置pAccept
和pCallback
,并返回S\u OK
。我没有看到任何例外。使用的测试在同一客户机上完全可以打开
internal class DemoWtsListenerCallback : IWTSListenerCallback
{
public void OnNewChannelConnection(IWTSVirtualChannel pChannel,
[MarshalAs(UnmanagedType.BStr)] string data,
out bool pAccept, out IWTSVirtualChannelCallback pCallback)
{
pAccept = true;
pCallback = new DemoWtsChannelCallback(pChannel);
}
}
为什么我的服务器会出错?
mstsc
希望pAccept
设置为1表示为真-默认的0xffffff
编组(根据BOOL
类型应该可以)不会被解释为真
使用[marshallas(UnmanagedType.Bool)]
返回1表示true
internal class DemoWtsListenerCallback : IWTSListenerCallback
{
public void OnNewChannelConnection(
IWTSVirtualChannel pChannel,
[MarshalAs(UnmanagedType.BStr)] string data,
[MarshalAs(UnmanagedType.Bool)] out bool pAccept,
out IWTSVirtualChannelCallback pCallback)
{
pAccept = true;
pCallback = new DemoWtsChannelCallback(pChannel);
}
}