Я сделал 64 бита с ++ Клиентская DLL виртуального канала
Я обновил свой реестр, используя Регистрация клиента виртуального канала (Я выбрал Default\Addins
путь)
Если я запускаю подключение Remote Dekstop, все идет хорошо: моя DLL загружается в процесс с именем mstsc.exe
Мое вывезено VirtualChannelEntry
вызывается обратный вызов, и, пропуская детали, я могу отправлять / получать байты (с небольшой помощью моего собственного процесса, выполняющегося в сеансе сервера и открывающего виртуальный канал).
Я также могу открыть второе подключение к удаленному рабочему столу другой Сервер. Второй mstsc.exe
процесс запущен, он загружает мою DLL, все ок.
Мои проблемы начинаются, когда я заменяю два своих удаленных рабочих стола двумя «RemoteApps» (один RemoteApp на первом Сервере, другой на втором Сервере).
Когда я запускаю первый RemoteApp, все в порядке ( mstsc.exe
запускается и загружается моя DLL).
Когда я запускаю второй RemoteApp, нет нового mstsc.exe
, так что нет никакой возможности для моей загрузки DLL снова, но существующие mstsc.exe
НЕ вызывает мой экспорт VirtualChannelEntry
, Я не могу установить виртуальный канал со вторым сервером.
Порядок имеет значение, а не RemoteApps. Только первый Запущенное RemoteApp даст виртуальный канал с его сервером.
Если я запускаю только один RemoteApp, а затем запустите полное подключение к удаленному рабочему столу Другой Сервер, все ок: два mstsc.exe
загрузка моей DLL, два виртуальных канала установлены.
Вопросы:
Как использовать виртуальные каналы с двумя удаленными приложениями, расположенными на двух разных серверах?
Почему там только один mstsc.exe
когда я запускаю два RemoteApps, с двух серверов, и почему этот единственный mstsc.exe
делает не вызов VirtualChannelEntry
для второго соединения?
мой клиент ОС — это Windows 2012.
Проблема воспроизведена с Windows 10 Pro в качестве клиента.
Я получил ответ на Microsoft Technet. Я воспроизвожу это здесь, возможно, помогая будущему читателю.
Добавьте следующую строку в ваши файлы RDP RemoteApps:
disableconnectionsharing:i:1
Тогда будет один случай mstsc.exe
для каждого запущенного RemoteApps, и все они будут вызывать ваши экспортированные VirtualChannelEntry
Перезвоните.
Осторожно, это ответ на заданный вопрос, в котором говорится, что «два удаленных приложения, расположенных на двух разные Серверы».
Вышеуказанный вариант конфигурации может иметь некоторые плохие последствия, если вы не в этом случае.
Если вы являетесь экспертом в этом вопросе, не стесняйтесь улучшить этот ответ.
Других решений пока нет …