2011-11-27 2 views
0

У меня есть устройство USB, которое взаимодействует с моим приложением с помощью драйвера приложения. Я должен сделать приложение, которое на самом деле имитирует эту связь USB с драйвером приложения, так что мне не нужно подключать свое устройство к USB-связи.Hack USB-связь между устройством и драйвером приложения?

Короче говоря, мне нужно взломать USB-связь между драйвером приложения и устройством с помощью другого приложения. Следует отметить, что данные, необходимые для связи, будут содержаться в этом новом приложении.

Драйвер приложения не следует настраивать для связи с этим прокси-устройством USB. Драйвер разработан по некоторым международным стандартам и не будет изменен для таких приложений.

Назначение операционной системы будет Windows XP и Windows 7

Как я могу имитировать устройство USB, так что я могу проверить приложение без каких-либо реальных аппаратных средств?

+1

Что вы хотите сказать? что ты уже испробовал? –

+0

Что означает «ч/б»? Пропускная способность? Черное и белое? –

+0

это домашнее задание? – cpx

ответ

2

Эмуляция устройства устройства может быть выполнена на разных уровнях. Более низкий уровень - лучшая эмуляция, но обычно эмуляция низкого уровня трудноразвивается. Это может быть аппаратная эмуляция - аппаратное устройство, которое реализует тот же протокол связи, что и реальное устройство. Но давайте поговорим о эмуляции программного обеспечения.

Учитывайте следующую системную структуру: Hight level (UI) - доступ к аппаратным средствам Dll - драйвер - порт связи (USB и т. Д.) - аппаратное устройство. Можно эмулировать каждый уровень: от самого аппаратного устройства до доступа к аппаратным средствам Dll.

Чтобы эмулировать аппаратное устройство, вам следует поговорить с разработчиками аппаратного обеспечения (а не с вашим делом, я думаю). Вы хотите поймать вызовы драйверов, чтобы сделать это прозрачным для всей системы программного обеспечения. Я думаю, у вас больше шансов получить информацию об этом на osronline - на этом сайте нет экспертов по драйверам.

Вы можете эмулировать драйвер, предоставляя другой драйвер или даже библиотеку пользовательского режима, которая экспортирует DeviceIoControl, ReadFile, WriteFile. Это почти прозрачно для доступа к аппаратным средствам Dll - в режиме эмуляции он должен вызывать эмулированный DeviceIoControl вместо Win32 DeviceIoControl.

Наконец, вы можете эмулировать аппаратную доступность Dll, предоставляя функции эмуляции в самой Dll или записывая другую библиотеку с тем же интерфейсом.

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

Важно также, какая часть этой полной цепи (от UI до устройства) является вашей, а какая часть разработана вашим клиентом. Если клиент поставляет аппаратное устройство, драйвер и аппаратное обеспечение доступа к Dll (SDK), вполне достаточно, чтобы вы могли эмулировать этот SDK, не записывая сложный материал для подключения.

+0

Закрыто - Как вы видите, люди здесь даже не понимают, что вы говорите около. Неправильное место, чтобы задать вопросы о программировании оборудования и драйверов. –

Смежные вопросы