如何从Windows 7中的非HID设备捕获USB中断?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从Windows 7中的非HID设备捕获USB中断?相关的知识,希望对你有一定的参考价值。

我有一个USB摄像头(Dentamerica Cammy)(它没有被识别为HID设备)带有一个按钮和应用程序(名为vixwin)应该对此按钮做出反应并制作图片。

他的问题是它没有反应。设备驱动程序非常陈旧,制造商不再支持。我按下按钮时唯一的反应是来自CD的原生相机程序。

我曾尝试使用wireshark来嗅探usb数据包,看看,当我按下按钮时相机会做什么。当我在应用程序中启动“捕获”功能时它会显示一个带有视频流的窗口,然后每次按下按钮时,摄像机都会生成一个usb中断传输,以便应用程序生成图片。当视频流不工作时,摄像机不会向主机发送usb中断传输。

所以我的想法是创建一个可以监听usb流量的简单Windows服务,如果它看到来自摄像头的usb中断 - 它应该发送一个热键到vixwin应用程序。 (Vixwin也使用来自摄像头的视频流,所以我希望它能正常工作)。

请告诉我如何在不控制它的情况下扫描usb流量(并行模式,如wireshark),并捕获usb中断传输(希望使用C#)?给出类似的代码示例可能是完美的。或者也许您可以建议其他解决方案?

附:主机使用Windows 7,暂时无法升级到更高版本的Windows。

Wireshark interrupt screenshot

答案

在USB协议中,主机必须请求中断,这意味着如果主机有中断挂起,则主机轮询该设备 Windows程序在https://msdn.microsoft.com/de-de/library/windows/hardware/dn303348%28v=vs.85%29.aspx中 - 实现USB中断事件处理程序

或者您可以使用tshark,wireshark或USBPcap的命令行界面在后台进程中嗅USB并解析输出(ifFINDSTR,...)如果来自您的凸轮的中断

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

以上是关于如何从Windows 7中的非HID设备捕获USB中断?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 USB HID 设备读取输入?

Windows与自定义USB HID设备通信说明.

从 GNU Octave 中与 USB HID 设备对话

如何定义STM32 USB HID设备缓冲区地址?请求帮助

USB HID多点触控串行报告

使用 Android 与 USB HID 设备通信