Du hast die Liste durch. Es läuft nichts, die Temperaturen sind in Ordnung, die Platte ist schnell, das Spiel liegt auf einer SSD — und die Maschine ruckt trotzdem. Der Task-Manager zeigt ein untätiges System. Das Frame-Time-Diagramm zeigt das verspätete Frame, sagt aber nichts darüber, warum es zu spät war.
Es gibt eine Ursache, die genau diese Form erklärt, und sie ist in jedem Werkzeug unsichtbar, zu dem die meisten greifen — weil sie darunter passiert.
Zuerst der ehrliche Satz. Die Lösung für einen Treiber, der einen Kern hält, ist dieser Treiber, von seinem Hersteller. Der Teil von w0a ist die Messung, der Dateiname und die Reparatur von Werten, die ältere Werkzeuge hinterlassen haben. Der einzige Schalter, den es in diesem Umfeld früher anbot, die Interrupts eines Geräts auf ausgewählte Kerne zu lenken, ist seit dem 8. Oktober 2026 nur noch lesend, weil kein A/B-Test in einem Spiel je ein dadurch gewonnenes Frame gezeigt hat.
Was da wirklich passiert
Ein Gerät — eine Netzwerkkarte, ein Plattencontroller, ein Soundchip, ein USB-Controller — braucht die Aufmerksamkeit des Prozessors. Es löst einen Interrupt aus, und Windows führt sofort die Interrupt-Serviceroutine (ISR) des Treibers aus. Diese Routine läuft über jeder Thread-Priorität, die es gibt: nicht „hohe Priorität“, sondern vollständig außerhalb des Thread-Schedulers. Auf diesem Kern kann nichts anderes eingeplant werden, bis sie zurückkehrt.
Weil das ein teurer Ort ist, sollen Treiber dort das Nötigste tun und den Rest auf einen verzögerten Prozeduraufruf (DPC) verschieben, der einen Moment später läuft — immer noch vor jedem Thread auf diesem Kern.
Solange eines von beiden läuft, zeichnet dieser Kern nichts und liest keine Eingabe. Lag dein Render-Thread darauf, kommt dein Frame zu spät. Stand dein Maus-Report dahinter in der Warteschlange, kommt deine Eingabe zu spät. Und keines der beiden Ereignisse taucht in einem Task-Manager auf, weil es keinen Prozess gibt, dem man es zurechnen könnte.
Warum eine Millisekunde hier viel ist
Erst die Rechnung macht klar, warum es sich lohnt, dem nachzugehen:
- Bei 1000 Hz Polling kommt jede Millisekunde ein Report. Eine Haltezeit von 1 ms kostet einen Report.
- Bei 240 Hz dauert ein Frame 4,2 ms. Eine Haltezeit von 1 ms ist etwa ein Viertel des Budgets eines Frames, und zwar für nichts.
- Ab 4 ms kann die Maschine keine gleichmäßige Frametime mehr halten, egal was du sonst änderst — und deshalb gehört das vor jeden anderen Punkt auf deiner Liste und nicht dahinter.
Es messen — und die zwei Arten, wie die Messung scheitert
Der Latenztest in w0a öffnet eine Kernel-Tracing-Sitzung und hält über zwölf Sekunden echter Mausbewegung fest, wie lange jeder Treiber einen Kern gehalten hat. Er braucht Administratorrechte. Warum der Test zwölf Sekunden verlangt erklärt die Länge, den Latenztest lesen die Farben.
Zwei Ergebnisse sind keine Antworten, und beide werden auch so gemeldet, statt zu „sauber“ abgerundet zu werden:
- Die Sitzung ließ sich nicht öffnen. Ein Anti-Cheat-Treiber hat das Kernel-Tracing womöglich für sich beansprucht. Schließ das Spiel und miss erneut.
- Die Sitzung öffnete und lieferte nichts. Kein laufendes Windows hat in zwölf Sekunden null Treiberausführungen, das ist also eine Messung, die nicht stattgefunden hat. Lass sie noch einmal laufen.
Es gibt einen dritten, feineren Fall: Eine Sitzung, die Ereignisse verloren hat, kann die schlimmste Ausführung komplett verpasst haben — deshalb sagt die Seite, dass die Zahl vielleicht nicht der wahre Höchstwert ist. Das ist dasselbe Prinzip, das der Ruckler-Scan überall anwendet: Eine Regel, die nicht laufen konnte, gilt als nicht geprüft, nie als sauber.
Die Zahlen, genau
| Zahl | Die Regel |
|---|---|
| Testdauer | Standardmäßig zwölf Sekunden: lang genug, um einen Treiber zu erwischen, der sich einmal pro Sekunde danebenbenimmt, und kurz genug, dass du die Maus wirklich die ganze Zeit bewegst. |
| Genug Mausdaten | Zwei Sekunden der eigenen Berichte des Geräts, und nie weniger als 250 Messwerte; bei einer Maus mit 1000 Hz sind das 2.000. Darunter ist das 99. Perzentil der zweit- oder drittschlechteste Messwert, keine Statistik. |
| Urteil über den Treiber | Die schlechteste einzelne Ausführung eines Treibers wird ab 1 ms als Warnung und ab 4 ms als kritisch markiert. Das sind die Grenzen, die dieses Fachgebiet seit zwei Jahrzehnten verwendet; sie sind eine Konvention, keine Messung, die w0a auf deiner Maschine gemacht hat. |
| Eine vollständige Messung | Die Treiberzahlen gelten nur dann als vollständig, wenn die Kernel-Tracing-Sitzung gelaufen ist und dabei kein Ereignis verloren hat. Ein Zähler, der die Antwort verweigert, wird wie ein Durchlauf mit Verlusten behandelt, nicht wie ein sauberer. |
| System-Untergrenze | Das 99. Perzentil der Maus, plus ein halbes Bildwiederholintervall, plus die schlechteste Ausführung eines Treibers — Letztere nur, wenn die Kernel-Seite gemessen wurde, denn für einen nicht gemessenen Kernel null zu addieren, würde genau dann eine schönere Zahl ausgeben, wenn das Werkzeug am wenigsten weiß. Sie ist eine Untergrenze, nie ein Gesamtwert: Die eigene Eingabeabtastung des Spiels, seine Renderwarteschlange, die Arbeit der GPU und die Reaktion des Panels liegen alle außerhalb. Die Latenz, die keine Software behebt ist der Rest der Kette. |
Die Liste lesen
Jeder Treiber steht dort mit seinem Dateinamen, seiner längsten einzelnen Haltezeit, seinem Anteil an der gemessenen Zeit und der Anzahl seiner Ausführungen. Sortier nach der längsten Haltezeit; das ist die Zahl, die dich ein Frame kostet.
Zwei Dinge, die man falsch liest:
- Eine gelbe Zeile ist kein Problem, das du beheben musst. Sie ist ein Kandidat. Ohne Symptom erklärt sie nichts, und viele einwandfreie Maschinen haben eine.
- Eine lange Interrupt-Behandlung ist schlimmer als ein gleich langer verzögerter Aufruf. Während eines verzögerten Aufrufs können andere Interrupts noch bedient werden; während einer Interrupt-Behandlung kommt auf diesem Kern überhaupt nichts dazwischen. Die Seite markiert es, wenn der schlimmste Fall eines Treibers ein Interrupt war.
Welche Datei zu welchem Gerät gehört, und was jeweils hilft
Der Dateiname ist der ganze Hinweis, und die Familie, zu der er gehört, entscheidet über die Lösung:
| Familie | Was es ist | Was tatsächlich hilft |
|---|---|---|
| WLAN | Der Treiber des WLAN-Adapters | Der Treiber des Herstellers statt des generischen aus Windows Update. Ein Kabel lässt die Zeile ganz verschwinden. |
| Kabelnetzwerk | Netzwerkchip des Mainboards oder Steckkarte | Der Treiber des Board-Herstellers. Die Interrupt-Moderation abzuschalten behebt diese Zeile nicht: Ohne sie werden Pakete nicht mehr gebündelt, jedes empfangene Paket löst seinen eigenen Interrupt aus, und der Treiber läuft nicht seltener, sondern öfter. Deshalb lässt die Seite Internet die Interrupt-Moderation auf Maschinen mit weniger als sechs physischen Kernen unangetastet — siehe Netzwerk-Tweaks. |
| Speicher | Der Controller im Pfad zu deiner Platte | Bei NVMe probier den Windows-eigenen Treiber und den des Herstellers aus und behalte den, bei dem der Latenztest den niedrigeren Wert zeigt. Einen Speichertreiber von Dritten lohnt es sich zu entfernen. |
| USB | Host-Controller | Chipsatztreiber, und die Maus an einen Anschluss am Board statt hinter einen Hub stecken. |
| Audio | Der Codec und alles, was darüber liegt | Der Treiber des Herstellers; hält es an, senkt der generische Audiotreiber von Windows die Haltezeit meist. RGB- und Audiowerkzeuge laufen über diesen Pfad. |
| Anzeige | Grafiktreiber | Die Seite des Herstellers selbst. Hat es nach einem Update angefangen, geh auf die vorherige Version zurück. |
| Windows-eigene Komponenten | Zeit, die stellvertretend für einen anderen Treiber anfällt | Für sich genommen gibt es hier nichts zu „aktualisieren“ — die Treiber oben zu reparieren senkt auch diese Zeile. |
| Energieverwaltung | Der Pfad, der Takt- und Ruhezustände ändert | Beides — den Mindestzustand des Prozessors anheben und die C-State-Tiefe in der Firmware verringern — verkürzt diese Zeit, und beides erhöht die Leistungsaufnahme im Leerlauf. Das ist ein Handel, keine Lösung. |
Ein Filtertreiber verdient hier eine eigene Zeile. Werkzeuge zur Verkehrsformung und zur Routenwahl von Verbindungen schicken jedes Paket durch einen eigenen Treiber, und Netzwerkhänger von mehreren Sekunden sind ihre bekannteste Nebenwirkung; der Ruckler-Scan benennt sie, wenn er sie findet. Dasselbe gilt für Makro-Suiten und Beleuchtungswerkzeuge, die einen Filter in den Maus- und Tastaturpfad einbauen.
Die Lösung, und die Nicht-Lösungen
Die Lösung ist, genau diesen einen Treiber zu aktualisieren, beim Hardware-Hersteller. Nicht das ganze System, nicht über ein Treiber-Update-Tool und nicht durch eine Neuinstallation von Windows. Die Seite nennt die Datei genau, damit du nachschlagen kannst, zu welchem Gerät sie gehört.
Was das nicht behebt und deshalb hier abgelehnt wird: Überschreibungen der Timer-Auflösung, Werte der Kernel-Speicherverwaltung (DisablePagingExecutive, LargeSystemCache) und die Registry-Listen, die unter dem Wort „Latenz“ kursieren. Keiner dieser Werte ändert, wie lange ein Treiber einen Kern hält, denn es ist der Code des Treibers, der ihn hält. Geräte wahllos abzuschalten ist auch keine Diagnose — ein Gerät versuchsweise abzuschalten, mit einer Messung davor und danach, ist dagegen ein völlig brauchbares Experiment. Dasselbe gilt für die Werte auf Geräteebene, die zusammen mit diesen Listen kursieren: MSISupported schaltet den Interrupt-Modus eines Geräts um, und falsch gesetzt kann das Ergebnis ein schwarzer Bildschirm sein, deshalb schreibt w0a ihn nie, und die Reparaturkarte für die Interruptsteuerung weiter unten lässt ihn in Ruhe.
Die zwei Einstellungen in der Nähe, die w0a berührt
Interrupt-Richtlinie des Geräts: nur lesend, mit einer Reparaturkarte
Wo Windows sie aufbewahrt: pro Gerät, unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCI\<device>\<instance>\Device Parameters\Interrupt Management\Affinity Policy. DevicePolicy (DWORD) bestimmt, wie die Interrupts des Geräts verteilt werden; steht er auf 4, „angegebene Prozessoren“, ist AssignmentSetOverride die Maske der Prozessoren, die sie verwenden dürfen.
Windows-Standard: Keiner der beiden Werte ist vorhanden. Windows berechnet die Verteilung dann selbst, und Microsoft empfiehlt die Standardrichtlinie überall, wo sie anwendbar ist.
Was w0a tut: Es liest diese Werte und schreibt sie nicht. Seit dem 8. Oktober 2026 gibt es die Lenkung, die es früher auf der Seite Latenztest anbot, nicht mehr, aus drei Gründen: Kein A/B-Test in einem Spiel hat ein dadurch gewonnenes Frame gezeigt, Microsoft empfiehlt die Verteilung, die Windows berechnet, und eine falsche Maske ist ein Gerät, das nicht startet.
Weg zurück: Hat ein Werkzeug die Interrupts eines Geräts festgenagelt und ist dabei etwas kaputtgegangen — eine Maus, die aussetzt, ein „Code 10“ im Geräte-Manager —, löscht die Karte Geräte-Interruptsteuerung beide Werte bei jedem PCI-Gerät, auch die Lenkung, die ältere Versionen von w0a hinterlassen haben. Sie verlangt nur dann einen Neustart, wenn sie wirklich etwas entfernt hat, und sie lässt MSISupported in Ruhe.
„Unter Last: Flusssteuerung, Interrupt-Moderation, Segment-Coalescing aus“ (Seite Internet)
Was es schreibt: 0 in das Schlüsselwort *FlowControl des Netzwerkadapters, bei jedem Adapter, der es angibt. *InterruptModeration, *RscIPv4 und *RscIPv6 werden nur auf Maschinen mit mindestens sechs physischen Kernen geschrieben, und nur bei Adaptern, von denen bekannt ist, dass sie unter 2,5 Gbit/s laufen; auf diesen Maschinen schaltet das Kästchen außerdem das Segment-Coalescing auf der Ebene des Netzwerkstapels ab, sofern es nicht schon aus ist.
Warum die Moderation auf kleineren Maschinen an bleibt: Sind Moderation und Coalescing beide aus, wird jedes empfangene Paket zu einem eigenen Interrupt statt einem pro Moderationsintervall, und die Last der verzögerten Aufrufe landet auf dem Kern, der empfängt. Die Moderation abzuschalten ist also kein Weg, die Zeile des Netzwerktreibers im Latenztest zu verkürzen: Nach der eigenen Beschreibung von w0a nimmt es die Wartezeit von einigen zehn bis einigen hundert Mikrosekunden weg, die ein Paket im Adapter verbringt, bis der Timer des Stapels abläuft, und fügt einen Interrupt pro Paket hinzu. Die Wirkung auf die Treiberliste ist nicht gemessen. Ist der Netzwerktreiber deine Zeile, führ den Test mit angewendetem Kästchen und ohne es aus.
Was das Kästchen selbst verspricht: Mikrosekunden, beim Ping unter Last. Seine Meldung sagt, dass sich der durchschnittliche Ping nicht ändert.
Wann es greift: wenn der Adapter neu startet; w0a verlangt einen Neustart, sobald es etwas geschrieben hat.
Weg zurück: Die Karte Netzwerkadapter-Offloads setzt Hardware-Offloads, Interrupt-Moderation, Energy Efficient Ethernet, selektives Energiesparen und Empfangspuffer auf die Standardwerte des Treibers selbst zurück, so wie der Treiber sie angibt.
Prüf es selbst
Diese Befehle lesen nur. In der Eingabeaufforderung oder in PowerShell:
reg query "HKLM\SYSTEM\CurrentControlSet\Enum\PCI" /s /v DevicePolicy
reg query "HKLM\SYSTEM\CurrentControlSet\Enum\PCI" /s /v AssignmentSetOverride
Eine Antwort, die sagt, dass die Suche ohne einen einzigen Treffer endete (in einem englischsprachigen Windows End of search: 0 match(es) found.), bedeutet, dass kein Gerät eine Überschreibung trägt: der Windows-Standard. Ein Treffer wird unter dem Schlüssel aufgeführt, in dem er gefunden wurde, und der PCI-Teil dieses Pfads bestimmt das Gerät.
In PowerShell, für den Netzwerkadapter:
Get-NetAdapterAdvancedProperty -Name "*" -RegistryKeyword "*FlowControl","*InterruptModeration","*RscIPv4","*RscIPv6" -AllProperties
Das listet für jeden Adapter die aktuelle Einstellung der vier Schlüsselwörter auf, die das Kästchen auf der Seite Internet schreiben kann. Ein Adapter, der für ein Schlüsselwort nicht erscheint, gibt es nicht an, und das Kästchen schreibt dort nichts.
Dann noch einmal messen
Gleiche Methode, gleiche zwölf Sekunden, gleiche Maschine. Die Seite vergleicht mit deinem vorherigen Durchlauf und meldet eine Änderung unter 5 % als keine Änderung statt als Verbesserung, denn zwei Durchläufe auf einer unangetasteten Maschine unterscheiden sich ohnehin um ein paar Prozent — eine Hand bewegt sich jedes Mal anders.
Ist die Treiberzeile heruntergegangen und der Ruckler nicht, hast du etwas Echtes gelernt: Das war nicht deine Ursache, und Warum Spiele unter Windows 11 ruckeln hat den Rest der Liste. Hast du eine Bildrate, die fällt und unten bleibt, statt eines Rucks, war es nie das hier — dann ist Plötzliche FPS-Einbrüche in Spielen die passende Liste.
Verwandt
- Den Latenztest lesen
- Warum Spiele unter Windows 11 ruckeln
- Input Lag verringern: was Software verkürzen kann und was nicht
- Wonach der Ruckler-Scan sucht
- Warum der Test zwölf Sekunden Mausbewegung verlangt
- Netzwerk-Tweaks
Du spielst CS2? Welche Startoptionen noch etwas bewirken und wo im Grafikmenü die Frames tatsächlich liegen: Wenig FPS und Ruckler in CS2 trotz gutem PC: eine gemessene Checkliste
Hat diese Seite geholfen?
Was hat gefehlt, oder was hat nicht funktioniert? Wir lesen jede einzelne Rückmeldung.
Wenn diese Seite das Problem nicht gelöst hat, schreib uns — nenne den Artikel, den du gelesen hast, und wir bessern ihn nach.