100% CPU-Nutzung, wenn ein neues USB-Gerät angeschlossen wird - services.exe / Windows Server 2003

3659
Will3265

Auf meinem Server versuche ich, ein neues USB-Laufwerk zu installieren, aber alles, was passiert, ist, dass das System anfängt, riesige Mengen von Prozessorzyklen mit services.exe zu verwenden. Bei genauerer Betrachtung mit Process Explorer gibt es einen Thread mit dem Namen umpnpmgr.dll, der die meiste Prozessorzeit von services.exe verwendet.

Ich verließ es für eine halbe Stunde und es ist immer noch nichts passiert.

Rebooted und erneut versucht, das gleiche Ergebnis.

Versucht ein anderes USB-Laufwerk, dann ein Flash-Laufwerk, aber immer noch das gleiche Problem.

Versuchte das Aktualisieren des Treibers, aber die Update-Funktion war bereits in Aktion.

Ich habe den Prozess-Explorer verwendet, um den Thread jetzt zu beenden, damit der Server seine beabsichtigten Funktionen noch ausführen kann.

Alle Geräte, die zuvor installiert wurden, funktionieren noch, jedoch keine neuen Geräte im System.

Meine Frage (n) ist / sind:

Gibt es eine Möglichkeit, das Gerät manuell in der Registrierung zu installieren, sodass Windows denkt, dass es sich um ein zuvor installiertes Gerät handelt?

Oder kann dieses Problem durch eine Neuinstallation behoben werden? Eine Neuinstallation würde bedeuten, große Datenmengen zu sichern, was mit einem USB-Laufwerk schwer ist und auf allen anderen Netzwerkmaschinen nicht genügend Speicherplatz zur Verfügung steht.

Jede Hilfe wäre sehr dankbar.

Wilhelm

4

6 Antworten auf die Frage

5
Ian Boyd

Update : Windows 7 Service Pack 1 enthält einen Hotfix:

KB981214: Bei Verwendung eines USB-Audiogeräts, das an einen USB 2.0-EHCI-Hostcontroller angeschlossen ist, ist die CPU-Auslastung hoch

In diesem Szenario stellen Sie fest, dass auf dem Computer etwa alle 15 Sekunden eine hohe CPU-Auslastung vorliegt. Darüber hinaus können Sie bei der Audiowiedergabe vom Audiogerät überspringen, wenn die CPU-Gesamtauslastung 100% erreicht.

Überprüfen Sie, ob SP1 das Problem behebt.


Verwenden Sie Process Explorer, um einen Blick auf den laufenden Thread zu werfen und die Stack-Ablaufverfolgung anzuzeigen. Zumindest können Sie die Dienste sehen, die in services.exe gehostet werden.

Alt-Text

Ich gehe davon aus, dass die Maschine während dieser Zeit CPU-gebunden ist und nicht IO-gebunden. Wenn es E / A-gebunden ist, können Sie sehen, was mit Process Monitor gemacht wird. Dies kann zu einigen Erkenntnissen führen.


Ich sehe in Ihrem Screenshot von Process Explorer, dass der Prozess 50% der CPU beansprucht. Ich gehe davon aus, dass es sich um eine Dual-Core-Maschine handelt, die einen ganzen Kern beansprucht. Also steckt die CPU etwas fest.

Betrachten der Stack-Trace:

Alt-Text

Die Dinge, i auf Taste (ich bin kein Experte, sie mein Interesse nur pikiert) sind:

  • VerifyCatalogFile
  • Setup FindNextMatchLine W
  • SetupDi EnumDeviceInterfaces

Aus dem Begriff "Katalogdatei" klingt für mich, als würde er alle installierten INFs durchlaufen. Ich weiß nicht, was diese Funktionen tun, aber ich kann Folgendes prüfen:

VerifyCatalogFile

Überprüft eine einzelne Katalogdatei.

SetupFindNextMatchLine

Die Funktion SetupFindNextMatchLine gibt die Position der nächsten Zeile in einer INF-Datei relativ zu ContextIn.Line zurück, die einem angegebenen Schlüssel entspricht.

SetupDiEnumDeviceInterfaces

Die Funktion SetupDiEnumDeviceInterfaces listet die Geräteschnittstellen auf, die in einem Geräteinformationssatz enthalten sind.

Es klingt also so, als würde er alle INF- Dateien durchgehen, jede durchblättern und dann Dinge tun, die auf dem basieren, was sie finden.

Die nächste Frage ist, ob sie in einer INF-Datei hängen geblieben ist oder nur eine große Anzahl von ihnen enthält, oder wiederholt sie sich selbst, oder hat sie keinen Zugriff auf eine Datei oder ... wer weiß.

Das nächste, was ich tun würde, ist, Process Monitor zu laden und so einzustellen, dass nur die Dateiaktivität von services.exe angezeigt wird . Dann können Sie sehen, wie es durch alle inf-Dateien zoomt. Hoffentlich kann man dann die sehen, auf der es feststeckt (hoffentlich hängt es einfach an einem fest). Dann können Sie die betreffende INF-Datei möglicherweise umbenennen / ausblenden.


Aktualisieren Sie zwei

Process Monitor Primer.

Deaktivieren Sie in der Symbolleiste die Optionen mit Ausnahme von Dateisystemaktivität :

Alt-Text

Dann füge einen Filter hinzu:

Process Name is services.exe Include 

und klicken Sie auf Hinzufügen:

Alt-Text

Ich habe versucht, mit Prozessmonitor nach etwas zu suchen. Anregungen nach was ich suche? Unten ist ein Screener aus dem Prozess-Explorer. http://img694.imageshack.us/img694/3026/servicesumpnpmgrdllscre.jpg Will3265 vor 14 Jahren 0
Leider wiederholt services.exe den gleichen öffnenden Thread / schließenden Thread immer wieder, ohne dass mir weitere Details angezeigt werden. Irgendeine Idee, wie man herausfindet, welche inf-Datei es jedes Mal liest? Will3265 vor 14 Jahren 0
Updates in Antwort Ian Boyd vor 14 Jahren 0
1
Breakthrough

Überprüfen Sie, ob USB-Abrufleerlauf aktiviert ist. Weitere Informationen finden Sie unter http://www.pctools.com/guides/registry/detail/1210/ . Wenn Sie den HID-Benutzereingabedienst nicht benötigen (sehen Sie Ihre Dienste über Start -> Ausführen -> services.msc), möchten Sie ihn möglicherweise deaktivieren.

0

Keine Lösung für das Problem, aber um fehlerhafte Hardware auszuschließen, schließen Sie ein USB-Flashlaufwerk an, booten Sie eine Linux-Distribution von CD und prüfen Sie, ob das USB-Flashlaufwerk erkannt wird und normal funktioniert.

Sie arbeiten. versuchte eine Wiederherstellungsdiskette und eine Ubuntu-Diskette Will3265 vor 14 Jahren 0
0
Am1rr3zA

Installieren Sie Ihr Laufwerk besser, bevor Sie es an Ihr System anschließen. In einigen Fällen müssen Sie die Antivirus- oder Firewall-Software schließen, dann den Treiber installieren und das Gerät anschließen. und manchmal müssen Sie für eine bessere Arbeit im Safemode installieren. aber der Ratschlag lautet: Gerät nicht zuerst stecken und danach Treiber installieren.

0
dlamblin

Könnte es sein, dass AutoRun Ihnen in die Quere kommt? Versuchen Sie es zu deaktivieren oder zu halten, shiftwährend das Gerät zum ersten Mal verbunden ist.

0
harrymc

Einige Ideen:

  1. Prüfen Sie im Geräte-Manager unter Eigenschaften des USB-Geräts, ob Windows dem Rollback-Treiber zustimmen soll.
  2. Versuchen Sie, das USB-Gerät aus dem Geräte-Manager zu löschen und einen Neustart durchzuführen (besser ein System-Backup zuerst).
  3. Versuchen Sie auch, den USB-Controller zu deaktivieren, um zu sehen, ob die Treiberaktualisierung dadurch angehalten wird.
  4. Haben Sie versucht, das USB-Gerät herauszunehmen und neu zu starten? Es kann einfach sein, dass das neue Gerät defekt ist. Sie könnten es auf einem anderen Computer und einem neueren Betriebssystem als W2K3 versuchen.