Windows 10: Nicht genügend USB Controllerressourcen

[English]Beim Anschließen von USB-Geräten erleben einige Windows 10-Nutzer eine unangenehme Überraschung. Windows meldet ‘Nicht genügend USB Controllerressourcen’. Hier einige Hinweise zum Hintergrund dieses Fehlers.


Anzeige

Eine Fehlerbeschreibung

Ich gestehe, diesen Fehler hatte ich bisher nicht auf dem Radar. Zufällig ist man dann ein englischsprachiger Tweet unter die Augen gekommen.

Zac Bowden hat die englischsprachige Fassung der Meldung beim Einstecken eines USB-C-Headsets an einem Surface Book 2 mit Windows 10 erhalten. Aber eine Suche nach der deutschsprachigen Fehlermeldung bringt weitere Treffer. Der Treffer aus dem Microsoft Answers-Forum stammt aus 2015 und beschreibt das Problem folgendermaßen:

Windows 10 – Nicht genügend USB Ressourcen

Hallo, ein seltsamer Fehler ist kürzlich aufgetaucht.

Wenn ich versuche, ein Programm zu starten, welches ein  Mikrophon verwendet (Mumble, Skype) , erhalte ich unter Win10 die Meldung: Nicht genügend USB Ressourcen verfügbar.

Im Gerätemanager wird nichts gemeldet. Die Meldung ist auch erstaunlich: Ich nutze ein Asus Ramage Extreme V Board mit unsinnigen Mengen an USB Ports. Angeschlossen sind auch nur relativ wenige Geräte.

Diese Meldung ist erst aufgetaucht, nachdem ich einen schadhaften PSU gewechselt hatte (von Corsair 1200axi zum 1500i). Intern war bereits eine Verbindung zu einem USB 2 Port (einer der wenigen, die überhaupt verbaut sind). Die neue PSU hat ebenfalls sowas.

Diese habe ich mittlerweile entfernt um zu sehen ob das das Problem war. Leider keine Änderung. Der Fixit von MS um USB Konflikte aufzudecken geht leider nicht bei Win 10.

Der Nutzer fragt, ob jemand eine Idee hat, wie man das Problem identifizieren und lösen kann. Die Antworten im Thread sind aber wenig zielführend, die Stromversorgung dürfte es nicht sein. Der Nutzer konnte das Problem über eine BIOS-Einstellung lösen. Der zweite Treffer aus dem Microsoft Answers-Forum stammt ebenfalls aus 2015 und beschreibt das Problem folgendermaßen:

Nicht genügend USB-Controllerressourcen verfügbar

Ich habe ein Headset bekommen wollte dieses anschließen (turtlebeach i60), und nun kommt immer wenn ich es benutzen will die Fehlermeldung: Nicht genügend USB-Controllerressourcen verfügbar’. Selber habe ich noch nichts unternommen. Zudem benutze ich windows10 (pro 64-bit), die Fehlermeldung tritt auf, seitdem ich versuche das Headset zu benutzen, und ausserdem benutze ich den CCleaner. Ich bitte um eine verständliche Antwort, schon mal danke.

Auch hier keine wirkliche Lösung in Sicht. In diesem Thread aus 2018 tritt die Meldung auf, wenn ein Synthesizer am Windows 10-System angeschlossen wird. Der Thread hier stammt aus 2019 und tritt bei einem Mikrofon auf, und in diesem Thread aus 2019 geht es um einen Kopfhörer.

Die Meldung gibt es aber auch in ähnlicher Form zu Windows 8.1 (hier)

Der technische Hintergrund

Bei meinen Recherchen bin ich auf diesen reddit.com-Post gestoßen, der eine ganz gute Erklärung liefert. Ein Nutzer, der wohl auch eine Oculus-Rift VR-Brille besitzt, hatte sich mit verschiedenen USB-Erweiterungskabeln und –Hubs befasst. Dabei stieß er auch auf den obigen Fehler und begann sich durch die USB-Spezifikationen zu wühlen. Der Fehler, dass nicht genügend Ressourcen für den USB-Anschluss verfügbar seien, hat nicht mit der Stromversorgung, wie oft gemutmaßt wird, zu tun. Hier die Erklärungen, die ich aus seinem Text deriviert habe.

  • Ein USB-Anschluss kann ja (per Hub) mit mehreren Geräten kommunizieren. USB ist dabei ein Bussystem, an dem m.W. bis zu 127 Geräte theoretisch angeschlossen werden können.
  • Wie viele USB-Geräte und welche Geräte ein USB-Anschluss betreiben kann, wird einmal von der Stromversorgung bestimmt. Aber wenn man das mal außer Acht lässt, gibt es weitere Kriterien für die Kommunikation
  • Für jeden sogenannten Endpunkt (also ein angeschlossenes Gerät wie eine USB-Maus) muss eine gewisse Bandbreite reserviert werden.

Der Autor des reddit-Posts hat dabei herausgefunden, dass es zwei Situationen für den Anschluss des USB-Geräts an die USB-Buchse gibt.

  • Wenn ein USB-Gerät eine Verbindung herstellt, erstellt es eine Anzahl von Endpunkten (EndPoints), d.h. Kanäle, die kommunikationsmäßig zu dem Gerät hin, oder vom Gerät zum Controller zurück verlaufen. Ein Flash-Laufwerk kann 3 Endpunkte, einen IN und OUT und einen Steuerkanal erzeugen. Die Sensoren einer Oculus Rift VR-Brille scheinen 7 und ein USB-Headset mindestens 10 Endpunkte zu verwenden.
  • Das erste Problem ist, dass USB 3.0-Controller ein Limit von 96 EndPoints pro Controller haben (ist ein Hardware-Limit von Intel XHCI Controller, AMD-Controller können 254 Endpunkte, siehe 2. Post hier). Wenn der Benutzer genügend Geräte anschließt, erscheint die obige Meldung, dass nicht genügend USB-Ressourcen vorhanden sind. Dann werden USB-Geräte getrennt, wenn diese um die begrenzte Anzahl von Endpunkten kämpfen.
  • Die zweite Restriktion ist, dass jeder USB 3.0-Anschluss auf 2×16 Endpunkte begrenzt ist (je 16 IN und 16 OUT, siehe auch, aber fast alle Geräte verwenden die IN-Einstellung für die Kommunikationskanäle).

Anzeige

Wenn ein HUB den Anschluss von 2 bis 4 Rift-Sensoren physikalisch unterstützt und jeder Rift-Sensor 7 IN-Endpunkte verwendet, lassen sich bestenfalls 2 Sensoren an einen USB 3.0-Hub anschließen. Dann ist beim dritten Sensor das Limit von 16 Endpunkten überschritten. Wird ein Headset an einen Hub angeschlossen, wird schon das Hinzufügen eines weiteren USB-Geräts zum Glücksspiel. Je nach Gerät ist die Zahl der 16 Endpunkte überschritten.

Der Autor sieht es so, dass in der Praxis sich maximal 2 Ocolus-Rift USB-VR-Brillen an einen Post anschließen lassen. Bei anderen Geräten lassen sich mehr oder weniger Geräte per Hub betreiben.

Das Ganze ist nicht wirklich ein Bandbreitenproblem, da USB 3.0 eine weitaus größere Bandbreite besitzt, als für die Sensordaten benötigt wird. Es ist nur, dass USB 3.0 die Hälfte der Kanäle zulässt, die unter USB 2.möglich sind, schreibt der Autor des reddit-Beitrags. Wer also zu wenige USB-Anschlüsse hat, kommt unter Umständen mit einem USB-Hub, selbst wenn dieser eine Stromversorgung besitzt, nicht weit. Doof ist das für Geräte, die mit nur einer USB-C-Buchse kommen.

Was kann man tun?

Leider gibt es kein Dienstprogramm, welches angeben kann, wie viele EndPoints ein Gerät verwendet. Dienstprogramme wie der USB Device Tree Viewer von Uwe Sieber können zwar anzeigen, wie viele Controller verfügbar sind und welche Ports wohin gehen. Das Tool kann auch EndPoint-Konfigurationen anzeigen. Aber eine saubere Kalkulation, wie viele USB-Geräte am Port betrieben werden können, ist wohl nicht möglich.

Manchmal liest man (wie hier), dass man xHCI im BIOS abschalten solle. Das Deaktivieren von xHCI im BIOS zwingt alle USB 3.0-Ports in den 2.0-Modus. Damit ist aber das Problem, dass pro USB-Port nur 15 Endpunkte unterstützt werden, nicht weg. In diesem reddit.com-Post wird ein USB-Switcher-Tool erwähnt, mit dem sich USB 2.0-Posts auf andere Controller umschalten lassen. Möglicherweise hilft das, genügend Bandbreite zu reservieren. 

Troubleshooter, wie sie auf einigen Webseiten zur automatischen Reparatur angeboten werden, sollte man tunlichst meiden. Man kann zwar die in Windows integrierten Assistenten zur Problembehebung verwenden. Ich bin aber skeptisch, dass diese das Problem lösen. Das Gleiche gilt für die De- und Neuinstallation von USB-Treibern – wenn kein neuer Treiber vorhanden ist.

Möglicherweise kann man USBDeView verwenden, um die früher verwendeten USB-Geräte zu entfernen und bekommt so den Fehler weg. Dieser Ansatz wird auch in diesem Forenthread erwähnt. Vielleicht hilft es weiter – falls jemand eine weitere Lösung kennt, kann er ja einen Kommentar hinterlassen.


Anzeige


Dieser Beitrag wurde unter Windows 10 abgelegt und mit Problem, Windows 10 verschlagwortet. Setze ein Lesezeichen auf den Permalink.

7 Antworten zu Windows 10: Nicht genügend USB Controllerressourcen


  1. Anzeige
  2. Martin Feuerstein sagt:

    > falls jemand eine weitere Lösung kennt, kann er ja einen Kommentar hinterlassen.

    an einer Kommandozeile erst eine Umgebungsvariable setzen, anschliessend aus derselben Kommandozeile den Geraete-Manager aufrufen und die ausgeblendeten Geraete anzeigen (und ggf. loeschen):
    set devmgr_show_nonpresent_devices=1
    start devmgmt.msc

    –> ggf. auch einfach mal etwas mehr/alle USB-Komponenten im Geraete-Manager loeschen und neu erkennen lassen (sofern nicht gerade Tastatur/Maus davon betroffen sind ;-) – hier falls noetig per VNC/RDP/TeamViewer eine Verbindung zum Zielsystem herstellen)

  3. wufuc_MaD sagt:

    derart probleme sind noch weitaus mehr zu erwarten dank dem schrittweisen rollout der neusten usb spezifikation (wie auf usb.org zu finden).

    was ich als “lösung” hier anfügen will hat mir kürzlich fast die sprache verschlagen, genauer die ansage die der entwickler von “rufus” gegen den platform betreiber (microsoft) richtet :-)
    hp://github.com/pbatard/libwdi/releases
    damit kann man sein system unbedienbar machen oder z.b. einem hub einen eindeutigen bezeichner (uuid) und treiber (winusb libusb u.s.w.) zuweisen, was ich bis vor wenigen tagen nicht für möglich gehalten hätte.

    die veränderungen bezüglich “drahtloskonnektivität” wird jedoch auch das nicht aufhalten nehme ich an. man betrachte nur den schleichenden wandel des ehemaligen windows ereignisprotokolls, wo man zunehmend nur noch bahnhof versteht.. .. ..

  4. Anzeige

  5. 1ST1 sagt:

    Das bedeutet auch, dass PCs weiterhin USB 2.0 Ports behalten müssen, die man tunlichst für langsame Geräte nutzt, denn diese Ports haben mehr Ressourcen. Oder Intel muss dieses Nadelöhr beim USB 3 Root Hub aufweiten. Gleichzeitig erklärt es, warum man im Handel immer noch so schwierig USB 3.x Hubs bekommt. USB 3 scheint darauf augelegt zu sein, dass man an einen USB Root Hub nur 1 Gerät (Platte, Sticks, etc.) anschließen soll.

  6. Henry Barson sagt:

    xHCI im BIOS deaktivieren? Klingt doch eher nach einem Enumerationsproblem, das gab es ja unter 1510 (oder so) und eine Zeit lang unter diversen Linux-Distributionen ebenfalls (dort war die Lösung der Bootparameter iommu=soft), aber im BIOS/UEFI auf jeden Fall OHCI, EHCI und xHCI aktiv lassen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Hinweis: Bitte beachtet die Regeln zum Kommentieren im Blog (Erstkommentare und Verlinktes landet in der Moderation, gebe ich alle paar Stunden frei, SEO-Posts/SPAM lösche ich rigoros). Kommentare abseits des Themas bitte unter Diskussion.