Регистрация подключаемого модуля DVC

Подключаемый модуль динамического виртуального канала (DVC) регистрируется для использования клиентом подключения к удаленному рабочему столу (RDC) одним из следующих методов:

  • Вызов метода IMsTscAdvancedSettings::p ut_PluginDlls элемента управления ActiveX по протоколу удаленного рабочего стола (RDP). Несколько записей должны быть разделены запятыми.

  • Запись подключаемого модуля в следующее расположение в реестре на компьютере, где запущен клиентский процесс подключения к удаленному рабочему столу (RDC):

    HKEY_CURRENT_USER\Программного обеспечения\Microsoft\Клиент сервера терминалов\По умолчанию\Надстройки\уникальное имя подключаемого модуля

    Примечание

    Если он не существует, необходимо создать уникальный подраздел имени подключаемого модуля . Уникальное имя подраздела имени подключаемого модуля — это произвольная строка, которая может идентифицировать подключаемый модуль. Строка может быть любым сочетанием символов.

     

    Под уникальным именем подключаемого модуля необходимо добавить запись, которая идентифицирует подключаемый модуль.

    Имя записи = Имя

    Тип данных = REG_SZ или REG_EXPAND_SZ

В обоих случаях значение записи должно соответствовать одному из следующих форматов:

"Plug-inDLLName:{CLSID}"

Подключаемый модуль не обязательно регистрируется в реестре Windows в качестве com-объекта, но библиотека DLL реализуется как внутрипроцессный COM-объект. Клиент RDC загружает библиотеку DLL, указанную в plug-inDLLName , и извлекает COM-объект непосредственно с помощью CLSID.

"Plug-inDLLName"

Библиотека DLL реализует функцию VirtualChannelGetInstance и экспортирует ее по имени. Клиент RDC будет использовать функцию VirtualChannelGetInstance для получения указателей интерфейса IWTSPlugin для всех подключаемых модулей, реализованных библиотекой DLL.

"{CLSID}"

Клиент RDC создаст экземпляр подключаемого модуля в виде обычного COM-объекта с помощью CoCreateInstance с CLSID.

Примечание

Plug-inDLLName представляет полный путь и имя файла .dll. Если тип данных REG_EXPAND_SZ, путь может содержать нерасширенные переменные среды, которые расширяются во время выполнения.

 

Когда клиент подключения к удаленному рабочему столу (RDC) завершит инициализацию, он будет выполнять следующие действия для каждого зарегистрированного подключаемого модуля:

  1. Получите экземпляр интерфейса IWTSPlugin для каждого подключаемого модуля, используя один из описанных выше методов.
  2. Вызовите метод Initialize каждого интерфейса IWTSPlugin .
  3. Если клиент подключается несколько раз к одному или к другому серверу, может быть несколько вызовов методов Connected и Disconnected .
  4. Последний вызов, который должен обрабатывать подключаемый модуль, — Terminated. Это сигнал о том, что клиент подключения к удаленному рабочему столу (RDC) вот-вот выгрузит подключаемый модуль.