我有一个USB摄像头(Dentamerica Cammy)(它没有被识别为HID设备)带有一个按钮和应用程序(名为vixwin)应该对此按钮做出反应并制作图片。
他的问题是它没有反应。设备驱动程序非常陈旧,制造商不再支持。我按下按钮时唯一的反应是来自CD的原生相机程序。
我曾尝试使用wireshark来嗅探usb数据包,看看,当我按下按钮时相机会做什么。当我在应用程序中启动“捕获”功能时它会显示一个带有视频流的窗口,然后每次按下按钮时,摄像机都会生成一个usb中断传输,以便应用程序生成图片。当视频流不工作时,摄像机不会向主机发送usb中断传输。
所以我的想法是创建一个可以监听usb流量的简单Windows服务,如果它看到来自摄像头的usb中断 - 它应该发送一个热键到vixwin应用程序。 (Vixwin也使用来自摄像头的视频流,所以我希望它能正常工作)。
请告诉我如何在不控制它的情况下扫描usb流量(并行模式,如wireshark),并捕获usb中断传输(希望使用C#)?给出类似的代码示例可能是完美的。或者也许您可以建议其他解决方案?
附:主机使用Windows 7,暂时无法升级到更高版本的Windows。
在USB协议中,主机必须请求中断,这意味着如果主机有中断挂起,则主机轮询该设备 Windows程序在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 - 获得可用的捕获接口