2017-01-27 20 views
0

У меня есть USB-камера (Dentamerica Cammy) (она НЕ идентифицирована как устройство HID) с кнопкой и приложением (по имени vixwin), которое должно реагировать на эту кнопку и делать снимок. Проблема в том, что она не реагирует. Драйвер устройства очень старый и больше не поддерживается производителем. Единственное приложение, которое реагирует, когда я нажимаю кнопку, является встроенной программой камеры с компакт-диска. Я попытался использовать wirehark для обнюхивания пакетов USB и посмотреть, что делает камера, когда я нажимаю кнопку. Когда я запускаю функцию «захвата» в приложении, он показывает окно с видеопотоком, после чего каждый раз, когда я нажимаю кнопку, камера генерирует передачу прерывания USB, поэтому приложение делает снимок. Камера не отправляет передачу прерываний USB на хост, когда поток видео не работает.Как перехватить USB-интерфейс из не-HID-устройства в Windows 7?

Итак, моя идея состояла в том, чтобы сделать простую службу Windows, которая может прослушивать трафик usb, и если он видит прерывание USB с камеры - он должен отправить горячую клавишу в приложение vixwin. (Vixwin также использует видеопоток с камеры, поэтому надеюсь, что он будет работать нормально).

Скажите, пожалуйста, как я могу сканировать трафик usb (в параллельном режиме, например, wirehark), не беря под свой контроль и не поймать передачу прерывания USB (надеюсь, используя C#)? Приведение аналогичного примера кода может быть идеальным. Или, может быть, вы можете посоветовать другое решение?

p.s. хост использует Windows 7 и не может быть обновлен до более высоких версий Windows.

Wireshark interrupt screenshot

+0

Это очень утомительно читать. Можете ли вы добавить абзацы путем редактирования в пустых строках, чтобы текст был более логически структурирован, пожалуйста? –

+0

Я не знаю, поможет ли это вам, но вы должны взглянуть на http://www.icsharpcode.net/OpenSource/SharpUSBLib/ –

ответ

0

в протоколе USB хост должен запросить прерывание означает, что хост опрашивает устройство, если оно имеет прерывание ожидающего
процедура окна для этого в https://msdn.microsoft.com/de-de/library/windows/hardware/dn303348%28v=vs.85%29.aspx - реализации прерываний USB обработчика событий

в качестве альтернативы вы можете использовать tshark, интерфейс командной строки для Wireshark или USBPcap нюхать USB в фоновом процессе и анализировать выход (if, FINDSTR, ...), если прерывание пришло от вашего кулачка

http://www.superuser.com/questions/873896/wireshark-usb-traces-explanations

https://ask.wireshark.org/questions/48789/usbpcap-tutorial

https://ask.wireshark.org/questions/20545/right-interface-to-use-with-tshark-under-windows - получить доступные интерфейсы захвата

https://ask.wireshark.org/questions/53919/how-can-i-precisely-specify-a-usb-device-to-capture-with-tshark

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

  • Нет связанных вопросов^_^