Копаясь в NetMeeting я обнаружил, что начиная с WinXP в системе всегда стоит mirror driver: mnmdd.dll, mnmdd.sys, и работает соотв. служба "mnmdd". Собсно, этот mirror driver и используется нетмитингом, мс-мессенджером и другими конференционными тулзами от MS.
Как с ним работать? Как с обычным Mirror Driver из SDK?
Кто-нибудь пробовал его юзать?
V>Копаясь в NetMeeting я обнаружил, что начиная с WinXP в системе всегда стоит mirror driver: mnmdd.dll, mnmdd.sys, и работает соотв. служба "mnmdd". Собсно, этот mirror driver и используется нетмитингом, мс-мессенджером и другими конференционными тулзами от MS.
V>Как с ним работать? Как с обычным Mirror Driver из SDK? V>Кто-нибудь пробовал его юзать?
Например, при помощи Netmeeting API. Вдаваться в детали реализации (тем более, что она изменяется, судя по всему, от версии к версии) и завязываться на них я бы не советовал.
Здравствуйте, Andrew S, Вы писали:
V>>Как с ним работать? Как с обычным Mirror Driver из SDK? V>>Кто-нибудь пробовал его юзать?
AS>Например, при помощи Netmeeting API.
Это API не открывает доступа к драйверу, оно даже не открывает доступа к API AppShare плагина.
AS>Вдаваться в детали реализации (тем более, что она изменяется, судя по всему, от версии к версии) и завязываться на них я бы не советовал.
V>>>Как с ним работать? Как с обычным Mirror Driver из SDK? V>>>Кто-нибудь пробовал его юзать?
AS>>Например, при помощи Netmeeting API.
V>Это API не открывает доступа к драйверу, оно даже не открывает доступа к API AppShare плагина.
И не должно. Драйвер никоим образом не является публичным интерфейсом. Да, вы можете попробовать его реверсировать и использовать в своих целях (хотя это и будет сложно по некоторым _нетехническим_ причинам, например, по лицензионным). Но смысла в этом я не нахожу — если только писать под определенную версию системы, сервис пака и т.п. А на 9х вообще пользуется не драйвер, а DDI hook. В этом и смысл upper интерфейса — абстрагироваться от деталей. Хотя, конечно, в случае нетмитинга там все несколько... неудобно, что ли. Уж слишком оно все именно на конференции заточено. Поэтому если нужен драйвер — возьмите доступный, от tight или ultra vnc. Там свои особенности (не всегда корректно отрабатывает переключение сессий, разрешения и т.п.), но тем не менее, все уже готово — и минимальная обвязка, доступная в исходниках, и сам драйвер с инсталлером.
Ну, 9x нам не нужен, под NT2000 есть инсталляхи этого драйвера прямо от MS, но не суть. Странная ситуация с этими виртуальными девайсами как таковая. Получается, что начиная с версии WinXP в системе стоит сразу 2 mirror-driver, один для RDP и другой для месенджеров (MS Messanger, Office LiveMeeting, MS NetMeeting, etc). Функциональность у них весьма близкая, и нахрена тогда держать дублирующуя ф-сть и лишние, постоянно работающие службы?
V>Ну, 9x нам не нужен, под NT2000 есть инсталляхи этого драйвера прямо от MS, но не суть. Странная ситуация с этими виртуальными девайсами как таковая. Получается, что начиная с версии WinXP в системе стоит сразу 2 mirror-driver, один для RDP и другой для месенджеров (MS Messanger, Office LiveMeeting, MS NetMeeting, etc). Функциональность у них весьма близкая, и нахрена тогда держать дублирующуя ф-сть и лишние, постоянно работающие службы?
Ну я бы не сказал, что близкая. Все-таки нетмитинг не использует для себя отдельную терминальную сессию, да и RDP несколько посложнее нетмитинга (по-крайней мере, я сделал для себя такой вывод, когда разбирался в этом). Кстати, по поводу отдельной терминальной сессии — на самом деле несколько непонятно, я в свое время пробовал воспроизвести функциональность rdp в миррор драйвере, однако получалось аттачится только к консольной сессии. А вот RDP работает в отдельной сессии вполне успешно.
Здравствуйте, Andrew S, Вы писали:
AS>Ну я бы не сказал, что близкая. Все-таки нетмитинг не использует для себя отдельную терминальную сессию, да и RDP несколько посложнее нетмитинга (по-крайней мере, я сделал для себя такой вывод, когда разбирался в этом).
На самом деле он немного проще .
Проще в том смысле, что не отслеживает отдельные окошки, вместо этого отслеживает десктоп целиком, т.е. мне, как программисту видится примерно вдвое проще код отслеживания изменений экрана. Опять же, протокол RDP и функциональность виртуального дисплейного девайса — это как бы разные вещи (хотя никто не мешает их сбилдить в один бинарный образ, не суть).
AS>Кстати, по поводу отдельной терминальной сессии — на самом деле несколько непонятно, я в свое время пробовал воспроизвести функциональность rdp в миррор драйвере, однако получалось аттачится только к консольной сессии. А вот RDP работает в отдельной сессии вполне успешно.
Да, проблема известная. Но у меня подозрения на некие недокументированные API виндов всвязи с этим. Ведь CITRIX подписал DNA и получил исходники винды в свое время для разработки терминала под винду.
Собственно, меня раздражает больше сама мышиная возня вокруг этого как таковая. Чи ни Большой Технический Секрет, в плане достоверного получения изменений экрана. Практически все остальные графические ОС (или оболочки) имеют встроенные ср-ва для этого, или же дают легкую аналогичную возможность, в отличие от виндов.
AS>>Ну я бы не сказал, что близкая. Все-таки нетмитинг не использует для себя отдельную терминальную сессию, да и RDP несколько посложнее нетмитинга (по-крайней мере, я сделал для себя такой вывод, когда разбирался в этом).
V>На самом деле он немного проще .
Вы ошибаетесь.
V>Проще в том смысле, что не отслеживает отдельные окошки, вместо этого отслеживает десктоп целиком, т.е. мне, как программисту видится примерно вдвое проще код отслеживания изменений экрана.
Это мелочи, которые реализуются очень просто.
V>Опять же, протокол RDP и функциональность виртуального дисплейного девайса — это как бы разные вещи (хотя никто не мешает их сбилдить в один бинарный образ, не суть).
Ну-ну. А об организации взаимодействия вы подумали? С учетом, что в RDP это все практически полностью (включая транспорт и кодирование) живет в кернеле... Да что говорить — просто сравните размеры драйверов. Косвенный, конечно, но показатель. В общем, RDP _значительно_ сложнее нетмитинга и функциональность у них прилично различается. Точка.
V>Собственно, меня раздражает больше сама мышиная возня вокруг этого как таковая. Чи ни Большой Технический Секрет, в плане достоверного получения изменений экрана. Практически все остальные графические ОС (или оболочки) имеют встроенные ср-ва для этого, или же дают легкую аналогичную возможность, в отличие от виндов.
Ничего. Зато повышается порог входа А то понаписали сначала всяких VNC на хуках...