DVC 插件注册

动态虚拟通道 (DVC) 插件注册,供远程桌面连接 (RDC) 客户端使用以下方法之一使用:

  • 调用远程桌面协议 的 IMsTscAdvancedSettings::p ut_PluginDlls 方法 (RDP) ActiveX 控件。 多个条目必须以逗号分隔。

  • 将插件条目写入启动远程桌面连接 (RDC) 客户端进程的计算机上的注册表中的以下位置:

    \ HKEY_CURRENT_USER软件\微软\终端服务器客户端\默认\AddIns\唯一插件名称

    注意

    如果不存在,则必须创建 唯一的插件名称 子项。 唯一插件名称子项名称是可以标识插件的任意字符串。 字符串可以是字符的任意组合。

     

    唯一插件名称下,必须添加标识插件的条目。

    条目名称 = 名称

    数据类型 = REG_SZREG_EXPAND_SZ

在这两种情况下,条目值必须符合以下格式之一:

Plug-inDLLName:{CLSID}”

插件不一定在 Windows 注册表中注册为组件对象模型 (COM) 对象,但 DLL 作为进程内 COM 对象实现。 RDC 客户端将加载 Plug-inDLLName 指定的 DLL,并使用 CLSID 直接检索 COM 对象。

Plug-inDLLName

DLL 实现 VirtualChannelGetInstance 函数,并按名称导出它。 RDC 客户端将使用 VirtualChannelGetInstance 函数获取 DLL 实现的所有插件的 IWTSPlugin 接口指针。

“{CLSID}”

RDC 客户端将使用 CoCreateInstanceCLSID 将插件实例化为常规 COM 对象。

注意

Plug-inDLLName 表示.dll文件的完整路径和文件名。 如果数据类型 REG_EXPAND_SZ,则路径可以包含运行时扩展的未扩展环境变量。

 

远程桌面连接 (RDC) 客户端完成初始化后,它将为每个已注册的插件执行以下操作:

  1. 使用上述方法之一获取每个插件的 IWTSPlugin 接口的实例。
  2. 调用每个 IWTSPlugin 接口的 Initialize 方法。
  3. 如果客户端多次连接到相同或不同的服务器,则可能会多次调用 ConnectedDisconnected 方法。
  4. 插件应处理的最后一次调用是 Terminated。 这是远程桌面连接 (RDC) 客户端即将卸载插件的信号。