Grubix hat geschrieben:Von der Erklärung habe ich nun nicht viel verstanden.
Im Prinzip ganz einfach. Wenn der elektrische Verbraucher eingeschaltet wird, erzeugt er einen "Knacks" auf der Leitung. Dies wird als fehlerhafte Übertragung gedeutet und entweder der Hub auf halber Strecke oder der Root-Hub schalten das zugehörige USB-Gerät ab.
Damit es dennoch weitergehen kann, muss nun also per Software diese Verbindung wieder neu aufgebaut werden. Sprich irgendjemand muss dem Hub bzw. Root-Hub sagen, dass das Gerät doch bitte wieder in den aktiven Zustand übernommen wird, damit weiter gesendet werden kann.
Meine Überlegung war nun, wer das macht. Der USB-Treiber von Windows, der USB-Treiber der Hardware-Komponente oder der USB-Treiber von Topfield. Früher mussten das vielleicht die Applikationstreiber machen, wäre also eigentlich Aufgabe des Topfield-Treibers gewesen. Da nun aber zig Treiber immer das Gleiche implementieren mussten, war es vielleicht eine Verbesserung in WinXP, dass es der USB-Treiber von Windows schon selbst an einer zentralen Stelle macht. Ist doch sinnvoller, als dass zig Treiber unterschiedlicher Geräte das jeweils für sich machen müssen.
Wenn jetzt der Topfield-Treiber in einer Zeit von WinXP geschrieben wurde und davon ausgeht, dass dieser Windows-Treiber einen etwaigen Abbruch erkennt und die Verbindung wieder neu aufbaut, dann klappt das unter WinXP auch prima und entsprechende Routinen zum Wiederaufbau der Verbindung sind in der Topfield-DLL gar nicht implementiert. Wenn aber der gleiche Treiber nun unter Win9x benutzt wird, dann gibt es eigentlich niemand mehr, der diese Verbindung neu aufbaut. Der Windows-Treiber denkt, der Topfield-Treiber macht das und der Topfield-Treiber denkt, der Windows-Treiber macht das. Ergo: niemand macht es. Da hilft dann nur noch Gerät aus- und wieder einstecken oder -schalten. Denn dann wird garantiert neu aufgebaut, auch unter Win9x.
Gruß,
Hagge