3D3 设备和 RDP window 的远程桌面行为最小化
Remote desktop behavior with 3D3 Device and RDP window minimize
在我们的 C# WPF 中,我们使用显示地图的第 3 方(非托管)库。
我们使用 System.Windows.Interop.D3DImage class.
第 3 方库使用 Direct3D 作为 IntPtr32 表面位置 属性。
当我从另一台计算机打开远程桌面并尝试查看 WPF 客户端时,我们看到了地图。
一旦 WPF UI 客户端启动,并且我最小化 RDP 会话或关闭 RDP,我将得到异常:
Direct3D device is lost
根据我使用视频流应用程序的经验,当 window 最小化时,它会停止渲染图像以节省带宽。
我猜 rdp 是一样的吗?它是可配置的吗?即使 window 被最小化,我也希望继续流式传输。
我知道有additional settings in the .RDP file as mentioned here.
directx 设置为:redirectdirectx:i:1
目前的部分答案:
RDP客户端应用连接RDP服务时,显示window时为GUI模式,最小化时为GUI-LESS模式,Direct 3D 组件真的丢失了。为了在最小化期间让它们保持活动状态,必须打开注册表项 (RemoteDesktop_SuppressWhenMinimized)
Use this key for 1 particular user (use HKLM for all users):
HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\RemoteDesktop_SuppressWhenMinimized
type = DWORD
Values:
0 = SUPPRESS_WHEN_MINIMIZED_AUTO
1 = SUPPRESS_WHEN_MINIMIZED_ENABLE
2 = SUPPRESS_WHEN_MINIMIZED_DISABLED
在我们的 C# WPF 中,我们使用显示地图的第 3 方(非托管)库。
我们使用 System.Windows.Interop.D3DImage class.
第 3 方库使用 Direct3D 作为 IntPtr32 表面位置 属性。
当我从另一台计算机打开远程桌面并尝试查看 WPF 客户端时,我们看到了地图。
一旦 WPF UI 客户端启动,并且我最小化 RDP 会话或关闭 RDP,我将得到异常:
Direct3D device is lost
根据我使用视频流应用程序的经验,当 window 最小化时,它会停止渲染图像以节省带宽。
我猜 rdp 是一样的吗?它是可配置的吗?即使 window 被最小化,我也希望继续流式传输。
我知道有additional settings in the .RDP file as mentioned here.
directx 设置为:redirectdirectx:i:1
目前的部分答案:
RDP客户端应用连接RDP服务时,显示window时为GUI模式,最小化时为GUI-LESS模式,Direct 3D 组件真的丢失了。为了在最小化期间让它们保持活动状态,必须打开注册表项 (RemoteDesktop_SuppressWhenMinimized)
Use this key for 1 particular user (use HKLM for all users):
HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\RemoteDesktop_SuppressWhenMinimized
type = DWORD
Values:
0 = SUPPRESS_WHEN_MINIMIZED_AUTO
1 = SUPPRESS_WHEN_MINIMIZED_ENABLE
2 = SUPPRESS_WHEN_MINIMIZED_DISABLED