2017-01-27 87 views
0

我有一個USB攝像頭(Dentamerica Cammy)(它不被識別爲HID設備),並帶有一個按鈕和應用程序(名爲vixwin),該應用程序應對此按鈕作出反應並製作圖片。問題是它沒有反應。設備驅動程序非常陳舊,不再受制造商的支持。我按下按鈕時唯一反應的應用程序是CD上的本機相機程序。我試圖用wireshark來嗅聽usb數據包,看看,當我按下按鈕時,相機會做什麼。當我在應用程序中啓動「捕捉」功能時,它顯示一個帶有視頻流的窗口,然後每按一次按鈕,相機就會生成一個USB中斷傳輸,以便應用程序生成一張照片。視頻流不工作時,相機不會將USB中斷傳輸發送到主機。如何在Windows 7中捕捉來自非HID設備的USB Interrput?

所以我的想法是做一個簡單的Windows服務,可以監聽USB流量,如果它看到從相機的USB中斷 - 它應該發送一個熱鍵到VIXWIN應用程序。 (Vixwin也使用相機的視頻流,所以我希望它能正常工作)。

請告訴我如何在不控制它的情況下掃描usb流量(在並行模式下,像wireshark一樣)並捕獲該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在後臺進程和解析輸出(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