应用程序兼容性层

若要在远程桌面服务环境中运行旧版应用程序,可以使用远程桌面服务应用程序兼容性层。 当远程桌面会话主机 (RD 会话主机) 服务器加载无法识别远程桌面服务的应用程序时,它还会加载包含兼容性代码的 DLL。 若要使用远程桌面服务应用程序兼容性层,可以在编译应用程序时设置 NOT TSAWARE 标志。

如果应用程序可识别远程桌面服务,则可以避免加载此额外 DLL 和运行兼容性代码的开销。

若要指示应用程序可识别远程桌面服务,请在可选标头中设置 IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 标志。 如果使用Microsoft Visual C++附带的链接器,可以使用 TSAWARE 链接器选项设置此标志。 Microsoft Visual C++ 附带的 DUMPBIN 工具提供 /HEADERS 选项来确定 TSAWARE 标志的状态。 有关使用 DUMPBIN 工具的详细信息,请参阅 DUMPBIN 参考

使用 TSAWARE 标志时请小心,因为它使应用程序能够绕过任何远程桌面服务兼容性优化。 仅当确定应用程序专为远程桌面服务环境设计时,才应使用 TSAWARE 标志。 如果应用程序满足以下条件,则可以安全地使用 IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 标志。

  • 应用程序不使用.ini文件。
  • 在安装过程中,应用程序不会写入 HKEY_CURRENT_USER 。 有关详细信息,请参阅 存储User-Specific信息
  • 应用程序不作为系统服务运行, (LUID=System) 。
  • 应用程序不需要对 Windows 或其他系统目录进行独占访问。 这意味着应用程序不会将每个用户的临时数据或配置数据存储在 Windows 或其他系统目录中。
  • 对于用户特定的数据或配置,应用程序不会写入 HKEY 本地计算机 注册表配置单元。
  • 该应用程序遵循本文档中提到的其他远程桌面服务兼容性准则。