Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Мэпинг USB устройств по сети


Автор: TommyAlice 21.12.2007, 14:37
Здравствуйте всё.

В написании драйверов полный ноль, но уже разбираюсь потихоньку.

Опишу задачу которую надо реализовать. Значит есть две машины в сети под управлнием Windows. Назовём из A и B. В машину A втыкаеться USB утройство. Нужно создать для системы на машине B впечатление того что это устройство там появилось. То есть как-то объявить на B устройство и транслировать команды посылаемые ему операционной системой в устройство на машине A. То есть ОС должна сама подбрать к эмулируемому утройству соответствующие драйвера. Заранее оговорюсь, что список версий windows таков, что можно использовать WDF(и KMDF, и UMDF).
Так же нужно сделать так, чтобы на машине A устройство было недоступно. 

В процессе копания остановились на таком подходе для эмуляции устройств на машине B:
решили написать драйвер шины который будет сообщать о появлении usb-устройства (создавать PDO), виндоус будет подбирать для него драйвер, а потом написанный мною драйвер шины будет отправлять и получать данные с реального устройства находящегося в сети и посылать его виртуально созданному устройству.

Одна проблема, в MSDN по поводу написания драйверов шины USB нет никакой инфорамции кроме как для Windows CE. Поэтому хочу услышать какие-нибудь предложения, наводки.
По мере чтения документов(MSDN) по написанию драйверов конкретных USB-устройств возникают всевозможные детали того, что там им посылает драйвер шины и т.п. Но ковыряясь таким образом конечно можно мало чего достичь, возможно есть какие-то примеры виртуальных шин именно USB или что-то такое. 

То есть то как всё должно функционировать на машине B. Однако не понятно с машиной A. Как перехватить момент подключения устройства, определить его тип и прочее? 
Возникло несколько предложений:
  • Сделать фильтр под драйвер устройства и перехватывать все пакеты.
  • Сделать фильтр над драйвером шины и отбирать нужные нам пакеты.

Буду рад любым предложениям, замечаниям.

Всем спасибо за внимание.

Автор: AVR32 22.12.2007, 00:57
Поставте DDK от MS. Там есть примемер usb драйвера, хоть и простой но для начала вполне достаточно.

Автор: TommyAlice 22.12.2007, 11:56
Цитата(AVR32 @  22.12.2007,  00:57 Найти цитируемый пост)
Поставте DDK от MS. Там есть примемер usb драйвера, хоть и простой но для начала вполне достаточно.

Извините, конечно, вы что, издеваетесь?

Автор: AVR32 22.12.2007, 17:13
Цитата(TommyAlice @ 22.12.2007,  11:56)
Извините, конечно, вы что, издеваетесь?

Что не нравится?
На B по любому придётся писать драйвер виртуального usb-устройства.

Автор: ctpahhik 18.1.2008, 01:17
А уже существующий подобный софт точно не подходит?
Например http://www.eltima.com/products/usb-over-ethernet/, http://www.usb-over-ethernet.com/ или http://www.fabulatech.com/usb-over-network.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)