Archive for 27. Dezember 2009

USB Probleme in Windows 7 analysieren und verstehen

27 Dezember 2009

Heutzutage kommen immer mehr und mehr Geräte mit USB-Anschluss daher. Mittlerweile ist auch schon USB 3.0 mit Superspeed spezifiziert wobei Windows 7 noch keine Unterstützung von Haus aus mitbringt. Hier einige Infos zu USB 3.0 und Windows 7: http://www.usb.org/developers/presentations/pres1108/
SuperSpeed_USB_DevCon_Windows_USB_Update_GiustiAull.pdf

Was aber kann man machen wenn Geräte nicht erkannt werden oder nicht wie erwartet reagieren?

Eine Hilfe sind die neuen Log Möglichkeiten die in Windows Vista eingeführt wurden: http://blogs.msdn.com/wndp/archive/2006/03/28/wininet-etw-tracing-support-in-windows-vista.aspx

Mit dem Befehl logman.exe kann man quasi Mitschnitte von Ereignissen und Vorgängen erstellen lassen. Mit dem Befehl tracerpt.exe kann man die Datei dann z. B. in eine XML-Datei überspielen.

Eine bessere Variante ist aber mitterlweile mit dem Microsoft Network Monitor zu arbeiten, da dieser ETL-Dateien auch lesen und darstellen kann: http://blogs.technet.com/netmon/archive/2009/05/13/event-tracing-for-windows-and-network-monitor.aspx

Eine Auflistung was für Provider zur Verfügung stehen von denen Ereignisse verarbeitet werden können erhält man durch Eingabe von:

logman query provider

Übrigens kann man per logman auch die möglichen Provider eines Prozesses abfragen, somit kann man schneller entscheiden welche Provider bei einem aktuellen Problem überhaupt Sinn machen, z. B.:

logman query provider –pid 6431

Listet alle möglichen Provider auf die von dem Prozess mit der ID 6431 verwendet werden. Näheres erklärt: http://blogs.msdn.com/ntdebugging/archive/2009/09/08/exploring-and-decoding-etw-providers-using-event-log-channels.aspx

Um nun also USB Vorgänge aufzeichnen zu können gibt man folgenden Befehl ein:

logman start usbtrace –p Microsoft-Windows-USB-USBPort –o usbtrace.etl –ets
logman update usbtrace –p Microsoft-Windows-USB-USBHub –ets

Aber Vorsicht, da in der Regel heute die meisten Tastaturen und Mäuse ebenfalls per USB angeschlossen sind, bekommt man gleich mal eine Ladung an Daten nur wegen des Auslösevorgangs gesammelt!

Mittels

logman stop usbtrace –ets

wird der Vorgang dann abgeschlossen und man findet seine Daten in usbtrace.etl.

Was nun mittels Netmon herausgefunden werden kann, beschreibt dieser Artikel: http://blogs.msdn.com/usbcoreblog/archive/2009/12/21/answering-the-question-what-s-wrong-with-my-device-using-usb-etw.aspx

Primär wendet man einen USBHub Filter an, der einen auf einen Fehler bringt und von dort schaut man dann rückwärts und versucht das Problem zu finden.

Momentan ist alles noch recht mühsam, aber da die entsprechende Technik nun mittels Windows 7 voll zur Verfügung steht ist es sicherlich nur eine Frage der Zeit bis mehr und mehr Filter bzw. auch irgendwann Expertenmodule für Netmon entwickelt werden, die dann schnell weiterhelfen können.

Werbeanzeigen