Zum Inhalt springen

DPC und Kernel Executive Workers in Windows 11 25H2

Auf dieser Seite

Die Gruppe der DpcQueueDepth, Worker-Limits und Watchdog-Parameter wird oft als Satz universeller Latency-Tweaks wahrgenommen. Tatsächlich handelt es sich um interne Limits und Schutzmechanismen des Kernels. Ihre Wirkung zeigt sich nur bei einer konkreten DPC-Queue, einer bestimmten Prozessoranzahl, einem bestimmten Treibertyp oder einem Worker-Fehler.

Geprüft wurde, welche Limits für DPC, Worker-Threads und Watchdog der Kernel liest, wie die Werte normalisiert werden und wo diese Mechanismen tatsächlich angewendet werden.

Windows 11 25H2 build 26200.9168, Zweige Session Manager\Kernel und Session Manager\Executive. Hardwareabhängige Funktionen und konkrete Treiber waren nicht Teil der Messungen.

Statische Analyse von ntoskrnl.exe: Suche nach Readern und Konsumenten, Prüfung von Wertebereichen und Normalisierung der Werte; Abgleich mit der öffentlichen Dokumentation von Microsoft.

Pfad für DPC und Watchdog:

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel

Value Type Default/normalization Was gesteuert wird
DpcQueueDepth REG_DWORD 4 Tiefe der DPC-Queue
MinimumDpcRate REG_DWORD 3 minimale Frequenz der DPC-Verarbeitung
IdealDpcRate REG_DWORD 20 Ziel-DPC-Rate
AdjustDpcThreshold REG_DWORD 20 Anpassungsschwelle der DPC-Policy
ThreadDpcEnable REG_DWORD 1 Thread-DPC-Verarbeitung
DpcWatchdogPeriod REG_DWORD 120000 DPC-Watchdog-Periode
DpcCumulativeSoftTimeout REG_DWORD 120000 im untersuchten Build akkumuliertes Soft-Budget
PassiveWatchdogTimeout REG_DWORD 300 Sekunden Passive-Level-Watchdog bei KD
ForceIdleGracePeriod REG_DWORD 5 Sekunden Force-Idle-Grace-Period
PerfIsoEnabled REG_DWORD 0 Performance-Isolation
CacheIsoBitmap REG_DWORD 0 Intel-CAT-L3-Maske
SchedulerAssistThreadFlagOverride REG_DWORD 0 Scheduler-Assist-Override
VpThreadSystemWorkPriority REG_DWORD 30, Bereich 1..31 Arbeitspriorität virtueller Prozessoren
AlwaysTrackIoBoosting REG_DWORD 0 diagnostisches I/O-Boost-Tracking

Pfad für Kernel Executive workers:

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Executive

Value Type Default/normalization Was gesteuert wird
AdditionalCriticalWorkerThreads REG_DWORD 0, Clamp 0..100 zusätzliche Critical-Worker
AdditionalDelayedWorkerThreads REG_DWORD 0, Clamp 0..100 Delayed-Worker
MaximumKernelWorkerThreads REG_DWORD 4096, 32..16384 Obergrenze der Kernel-Worker
ForceEnableMutantAutoboost REG_DWORD 0 Mutant-Autoboost
WorkerThreadTimeoutInSeconds REG_DWORD 600, 60..3600 Worker-Timeout

Session Manager\Kernel und Session Manager\Executive sind unterschiedliche Konfigurationszweige. Für jeden Wert ist der Pfad wichtig, den der Kernel-Reader im jeweiligen Build öffnet.

Der Kernel verwendet DpcQueueDepth, MinimumDpcRate, IdealDpcRate und AdjustDpcThreshold zur Steuerung der Queue und zur Anpassung der DPC-Verarbeitung. Die geprüften Defaults 4/3/20/20 stimmen bereits mit dem regulären Zustand von Windows 11 25H2 überein; ein erneutes Schreiben dieser Zahlen ändert nichts.

Nutzen: Diese Parameter können bei der Analyse eines konkreten DPC-Backlogs nützlich sein, doch ohne ETW/WPR-Trace diagnostiziert eine Änderung blind nicht die Ursache. Eine große Queue kann die Verarbeitung verzögern und den Latenz-Schwanz vergrößern.

ThreadDpcEnable=1 aktiviert die Threaded-DPC-Infrastruktur, 0 führt die Arbeit in den normalen DIRQL-Pfad zurück und kann Interrupt-off-Fenster verlängern. MaximumKernelWorkerThreads begrenzt den gemeinsamen Pool der Kernel-Worker. AdditionalCriticalWorkerThreads und AdditionalDelayedWorkerThreads werden zu den Basispools addiert: unter Client-Windows sind das entsprechend 5 Critical- und 7 Delayed-Worker vor Anwendung des Overrides.

Mehr Threads bedeuten nicht weniger Latenz: zusätzliche Worker verbrauchen Stack, Scheduler-Zeit und Cache-Ressourcen, und die Queue kann durch eine andere Komponente begrenzt sein. AdditionalDelayedWorkerThreads=32 fügt tatsächlich Delayed-Worker hinzu, doch es gibt keinen gemessenen universellen Gewinn.

DpcCumulativeSoftTimeout begrenzt die akkumulierte DPC-Zeit. DpcWatchdogPeriod=0 ist zulässig und deaktiviert diesen Watchdog; jeder von null verschiedene Wert unter 2000 wird zu 2000 ms. PassiveWatchdogTimeout wird nur bei aktiviertem Kernel-Debugger verwendet, daher ist dieser Timer auf einem normalen System selbst bei regulären 300 Sekunden nicht aktiv. WorkerThreadTimeoutInSeconds begrenzt das Hängenbleiben einer Worker-Operation.

DpcCumulativeSoftTimeout hat eine Untergrenze von 2000 ms und kann DpcWatchdogPeriod nicht überschreiten. Um den Wert 240000 zu erhalten, muss die Watchdog-Periode ebenfalls 240000 betragen. WorkerThreadTimeoutInSeconds wird in den Bereich 60..3600 Sekunden normalisiert; das Schreiben von 0 deaktiviert den Timeout nicht, sondern führt zum Minimalwert.

Das Deaktivieren des Schutz-Timeouts entfernt die Diagnose, behebt aber nicht die Ursache der Blockierung. Für ein Produktionssystem ist der Watchdog Teil des Mechanismus zur Erkennung fehlerhafter Treiber.

ForceEnableMutantAutoboost befindet sich im Zweig Executive, während ForceIdleGracePeriod, PerfIsoEnabled, CacheIsoBitmap, SchedulerAssistThreadFlagOverride, VpThreadSystemWorkPriority und AlwaysTrackIoBoosting aus dem Zweig Kernel gelesen werden. Dieser Unterschied ist kritisch: Ein gleichnamiger Eintrag im benachbarten Unterschlüssel wird nicht angewendet.

CacheIsoBitmap wird nur bei Unterstützung von Intel Resource Director/CAT verwendet; ohne CAT erzeugt der Wert keine Isolation. SchedulerAssistThreadFlagOverride=0 und 1 belassen die automatische Aktivierung, 2 deaktiviert den Zweig zwangsweise. VpThreadSystemWorkPriority erlaubt 1..31, andernfalls wird auf 1 zurückgesetzt; Default ist 30, und 31 ist lediglich die Obergrenze. AlwaysTrackIoBoosting=1 aktiviert diagnostische Allocation und Stack-Capture auf Boost-Pfaden und hält die I/O-Priorität nicht erhöht.

Nutzen: Ohne bestätigten Consumer-Effekt ist die Wirkung meist absent oder zu klein für eine praktische Entscheidung. Solche Werte sind als Gegenstand einer separaten Kernel-Diagnose nützlich, nicht als allgemeiner Optimierungssatz.

Die geprüften Defaults 4/3/20/20 stimmen mit dem regulären Zustand von Windows 11 25H2 überein. Zusätzliche Worker sind standardmäßig gleich null, die Obergrenze der Kernel-Worker beträgt 4096 mit einem Bereich von 32..16384. Watchdog-Parameter werden normalisiert: Ein Wert unter 2000 ms wird zu 2000, und DpcCumulativeSoftTimeout überschreitet die Watchdog-Periode nicht. Die Zweige Kernel und Executive sind nicht austauschbar.

  • Reader und Konsumenten der Parameter in ntoskrnl.exe des untersuchten Builds.
  • Standardwerte und Normalisierungsgrenzen, einschließlich der Abhängigkeiten zwischen Watchdog-Parametern.
  • Die Trennung der Zweige Kernel und Executive: Ein gleichnamiger Eintrag im benachbarten Unterschlüssel wird nicht angewendet.
  • Der Einfluss einer Änderung der Parameter auf FPS, Latenz oder Reaktionsfähigkeit.
  • Der Nutzen einer Änderung der Limits ohne bestätigtes Problem mit der DPC-Queue oder einem Worker.

Ändern Sie diese Parameter nicht blind: Ohne ETW/WPR-Trace lässt sich die Ursache des Backlogs nicht feststellen. Für ein Arbeitssystem halten Sie den Watchdog aktiviert, und verwenden Sie die Parameter zur Diagnose, nicht als Optimierungssatz.

Stellen Sie die regulären Werte wieder her oder löschen Sie die optionalen Einträge. Kernel-Parameter werden beim nächsten Start von Windows angewendet.

Reader und Consumer wurden in ntoskrnl.exe Windows 11 25H2 build 26200.9168 geprüft. Offsets oder Pseudocode werden nicht veröffentlicht. Endnutzer-Metriken waren nicht Teil dieser Serie.

Wie der dynamische Teil der Beobachtungen wiederholt werden kann — siehe Wie man selbst prüft.

Die Untersuchung und die verwendeten Werkzeuge gehören dem Entwickler von BoosterX, daher hat der Entwickler ein direktes Interesse an den Ergebnissen. Methodik und Anwendungsgrenzen sind oben beschrieben, und die Schlussfolgerungen lassen sich anhand offener Daten und der aufgeführten öffentlichen Quellen überprüfen.

Öffentliche Quellen geprüft: 2026-09-02.

  • 2026-09-20: Der Abschnitt „Ergebnisse“ wurde an die verpflichtende Stelle vor „Wiederherstellung des Zustands“ verschoben; ein Disclaimer zum Interessenkonflikt und ein Link zur selbstständigen Prüfung der dynamischen Beobachtungen in der Methodik wurden hinzugefügt.
  • 2026-09-02: Erste Veröffentlichung; Reader, Defaults und Clamps bestätigt, Grenzen des praktischen Nutzens hinzugefügt.