2017-01-27 2 views
0

Ich habe eine USB-Kamera (Dentamerica Cammy) (es ist nicht als HID-Gerät identifiziert) mit einer Schaltfläche und die Anwendung (genannt Vixwin), die auf diese Schaltfläche reagieren und ein Bild machen sollte. Das Problem ist, dass es nicht reagiert. Der Gerätetreiber ist sehr alt und wird vom Hersteller nicht mehr unterstützt. Die einzige Anwendung, die reagiert, wenn ich den Knopf drücke, ist das native Kameraprogramm von der CD. Ich habe versucht, wireshark zu verwenden, um usb-Pakete zu schnüffeln und zu sehen, was die Kamera macht, wenn ich den Knopf drücke. Wenn ich die "capture" -Funktion in der App starte, zeigt es ein Fenster mit einem Video-Stream und danach jedes Mal, wenn ich den Knopf drücke, erzeugt die Kamera einen USB-Interrupt-Transfer, so dass die App ein Bild macht. Die Kamera sendet keine USB-Interrupt-Übertragungen an den Host, wenn der Videostream nicht funktioniert.Wie fängt man USB-Interrput von nicht-HID-Gerät in Windows 7?

Also meine Idee war es, einen einfachen Windows-Dienst zu machen, der USB-Verkehr hören kann und wenn er einen USB-Interrupt von der Kamera sieht - er sollte einen Hotkey an die vixwin App senden. (Vixwin verwendet auch einen Videostream von der Kamera, also hoffe ich, dass es gut funktionieren sollte).

Bitte sagen Sie mir, wie kann ich USB-Verkehr (im Parallel-Modus, wie wireshark) scannen, ohne die Kontrolle über sie und fangen Sie diese USB-Interrupt-Übertragung (hoffentlich mit C#)? Ein ähnliches Codebeispiel zu geben könnte perfekt sein. Oder vielleicht können Sie andere Lösung beraten?

p.s. Der Host verwendet Windows 7 und kann nicht gleichzeitig auf höhere Windows-Versionen aktualisiert werden.

Wireshark interrupt screenshot

+0

verfügbar Capture-Schnittstellen erhalten. Können Sie Absätze hinzufügen, indem Sie sie in leeren Zeilen bearbeiten, damit der Text logischer strukturiert ist? –

+0

Ich weiß nicht, ob dies Ihnen helfen kann, aber Sie sollten einen Blick auf http://www.icsharpcode.net/OpenSource/SharpUSBLib/ –

Antwort

0

in USB-Protokoll hat der Host bedeutet die Unterbrechung zu beantragen, dass die Host fragt das Gerät, wenn es einen Interrupt anhängig
die Windows-Prozedur für diese hat, ist in https://msdn.microsoft.com/de-de/library/windows/hardware/dn303348%28v=vs.85%29.aspx-Ereignishandler USB-Interrupt Implementierung

alternativ können Sie tshark verwenden, das Kommandozeilen-Interface zu wireshark oder USBPcap USB in einem Hintergrundprozess zu schnuppern und analysieren den Ausgang (if, FINDSTR, ...), wenn die Interrupt kam aus dem Nocken

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 - Das ist extrem ermüdend zu lesen

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