DPC y workers de Kernel Executive en Windows 11 25H2
En esta página
Respuesta breve
Sección titulada «Respuesta breve»El grupo de DpcQueueDepth, worker limits y parámetros de watchdog a menudo se percibe como un conjunto de latency tweaks universales. En realidad, son límites internos y mecanismos de protección del kernel. Su efecto se manifiesta solo ante una cola DPC concreta, una cantidad de procesadores, un tipo de controlador o un error de worker.
Qu\u00e9 se comprob\u00f3
Sección titulada «Qu\u00e9 se comprob\u00f3»Se comprob\u00f3 qu\u00e9 l\u00edmites de DPC, worker threads y watchdog lee el kernel, c\u00f3mo se normalizan los valores y d\u00f3nde se aplican realmente estos mecanismos.
\u00c1mbito del estudio
Sección titulada «\u00c1mbito del estudio»Windows 11 25H2 build 26200.9168, ramas Session Manager\Kernel y Session Manager\Executive. Las funciones dependientes del hardware y los controladores concretos no se incluyeron en las mediciones.
Metodolog\u00eda
Sección titulada «Metodolog\u00eda»An\u00e1lisis est\u00e1tico de ntoskrnl.exe: b\u00fasqueda de readers y consumidores, verificaci\u00f3n de rangos y normalizaci\u00f3n de valores; contraste con la documentaci\u00f3n p\u00fablica de Microsoft.
Ruta can\u00f3nica y valores
Sección titulada «Ruta can\u00f3nica y valores»Ruta de DPC y watchdog:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel
| Value | Type | Default/normalization | Qu\u00e9 controla |
|---|---|---|---|
DpcQueueDepth |
REG_DWORD |
4 |
profundidad de la cola DPC |
MinimumDpcRate |
REG_DWORD |
3 |
frecuencia m\u00ednima de procesamiento DPC |
IdealDpcRate |
REG_DWORD |
20 |
DPC rate objetivo |
AdjustDpcThreshold |
REG_DWORD |
20 |
umbral de adaptaci\u00f3n de la pol\u00edtica DPC |
ThreadDpcEnable |
REG_DWORD |
1 |
procesamiento de thread-DPC |
DpcWatchdogPeriod |
REG_DWORD |
120000 |
per\u00edodo del DPC watchdog |
DpcCumulativeSoftTimeout |
REG_DWORD |
120000 en la build investigada |
soft budget acumulado |
PassiveWatchdogTimeout |
REG_DWORD |
300 segundos |
watchdog de nivel pasivo con KD |
ForceIdleGracePeriod |
REG_DWORD |
5 segundos |
per\u00edodo de gracia de force-idle |
PerfIsoEnabled |
REG_DWORD |
0 |
aislamiento de rendimiento |
CacheIsoBitmap |
REG_DWORD |
0 |
m\u00e1scara Intel CAT L3 |
SchedulerAssistThreadFlagOverride |
REG_DWORD |
0 |
override de asistencia del planificador |
VpThreadSystemWorkPriority |
REG_DWORD |
30, rango 1..31 |
prioridad de trabajo del procesador virtual |
AlwaysTrackIoBoosting |
REG_DWORD |
0 |
seguimiento de boost de I/O de diagn\u00f3stico |
Ruta de Kernel Executive workers:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Executive
| Value | Type | Default/normalization | Qu\u00e9 controla |
|---|---|---|---|
AdditionalCriticalWorkerThreads |
REG_DWORD |
0, clamp 0..100 |
critical workers adicionales |
AdditionalDelayedWorkerThreads |
REG_DWORD |
0, clamp 0..100 |
delayed workers |
MaximumKernelWorkerThreads |
REG_DWORD |
4096, 32..16384 |
l\u00edmite superior de kernel workers |
ForceEnableMutantAutoboost |
REG_DWORD |
0 |
autoboost de mutantes |
WorkerThreadTimeoutInSeconds |
REG_DWORD |
600, 60..3600 |
timeout de worker |
Session Manager\Kernel y Session Manager\Executive son ramas de configuraci\u00f3n distintas. Para cada valor es importante la ruta que abre el reader del kernel en esta build.
Cola DPC y rates
Sección titulada «Cola DPC y rates»El kernel usa DpcQueueDepth, MinimumDpcRate, IdealDpcRate y AdjustDpcThreshold para controlar la cola y la adaptaci\u00f3n del procesamiento DPC. Los defaults verificados 4/3/20/20 ya coinciden con el estado est\u00e1ndar de Windows 11 25H2; reescribir estos n\u00fameros no cambia nada.
Utilidad: estos par\u00e1metros pueden ser \u00fatiles al analizar un DPC backlog concreto, pero sin una traza ETW/WPR el cambio a ciegas no diagnostica la causa. Una cola grande puede posponer el procesamiento y aumentar la cola de latencia.
Thread DPC y worker limits
Sección titulada «Thread DPC y worker limits»ThreadDpcEnable=1 activa la infraestructura de threaded-DPC, 0 devuelve el trabajo a la ruta DIRQL normal y puede alargar las ventanas de interrupt-off. MaximumKernelWorkerThreads limita el pool com\u00fan de kernel workers. AdditionalCriticalWorkerThreads y AdditionalDelayedWorkerThreads se suman a los pools base: en Windows de cliente esto es respectivamente 5 critical y 7 delayed workers antes de aplicar el override.
M\u00e1s hilos no significa menos latencia: los workers adicionales consumen stack, tiempo del planificador y recursos de cach\u00e9, y la cola puede estar limitada por otro componente. AdditionalDelayedWorkerThreads=32 s\u00ed a\u00f1ade delayed workers, pero no hay una ganancia universal medida.
Watchdog y timeout
Sección titulada «Watchdog y timeout»DpcCumulativeSoftTimeout limita el tiempo acumulado de DPC. DpcWatchdogPeriod=0 es admisible y desactiva este watchdog; cualquier valor distinto de cero inferior a 2000 pasa a ser 2000 ms. PassiveWatchdogTimeout se usa solo con el kernel debugger activado, por lo que en un sistema normal este timer no est\u00e1 activo incluso con los 300 segundos est\u00e1ndar. WorkerThreadTimeoutInSeconds limita el bloqueo de una operaci\u00f3n de worker.
DpcCumulativeSoftTimeout tiene un l\u00edmite inferior de 2000 ms y no puede superar DpcWatchdogPeriod. Para obtener el valor 240000, el per\u00edodo del watchdog tambi\u00e9n debe ser 240000. WorkerThreadTimeoutInSeconds se normaliza al rango 60..3600 segundos; escribir 0 no desactiva el timeout, sino que da el valor m\u00ednimo.
Desactivar el timeout de protecci\u00f3n elimina el diagn\u00f3stico, pero no corrige la causa del bloqueo. Para un sistema de producci\u00f3n, el watchdog es parte del mecanismo de detecci\u00f3n de controladores defectuosos.
Pol\u00edtica de Kernel Executive
Sección titulada «Pol\u00edtica de Kernel Executive»ForceEnableMutantAutoboost est\u00e1 en la rama Executive, mientras que ForceIdleGracePeriod, PerfIsoEnabled, CacheIsoBitmap, SchedulerAssistThreadFlagOverride, VpThreadSystemWorkPriority y AlwaysTrackIoBoosting se leen de la rama Kernel. Esta diferencia es cr\u00edtica: una entrada con el mismo nombre en la subclave vecina no se aplica.
CacheIsoBitmap se usa solo con soporte de Intel Resource Director/CAT; sin CAT el valor no crea aislamiento. SchedulerAssistThreadFlagOverride=0 y 1 dejan la activaci\u00f3n autom\u00e1tica, 2 desactiva la rama de forma forzada. VpThreadSystemWorkPriority admite 1..31, de lo contrario se restablece a 1; el default es 30, y 31 es solo el l\u00edmite superior. AlwaysTrackIoBoosting=1 activa la asignaci\u00f3n de diagn\u00f3stico y la captura de stack en las rutas de boost, y no mantiene elevada la prioridad de I/O.
Utilidad: sin un consumidor confirmado, el efecto suele estar ausente o ser demasiado peque\u00f1o para una decisi\u00f3n pr\u00e1ctica. Estos valores son \u00fatiles como objeto de un diagn\u00f3stico de kernel aparte, no como un conjunto general de optimizaci\u00f3n.
Resultados
Sección titulada «Resultados»Los defaults verificados 4/3/20/20 coinciden con el estado est\u00e1ndar de Windows 11 25H2. Los workers adicionales por defecto son iguales a cero, el l\u00edmite superior de kernel workers es 4096 con un rango de 32..16384. Los par\u00e1metros de watchdog se normalizan: un valor inferior a 2000 ms pasa a ser 2000, y DpcCumulativeSoftTimeout no supera el per\u00edodo del watchdog. Las ramas Kernel y Executive no son intercambiables.
Qu\u00e9 se confirm\u00f3
Sección titulada «Qu\u00e9 se confirm\u00f3»- Readers y consumidores de los par\u00e1metros en
ntoskrnl.exede la build investigada. - Valores por defecto y l\u00edmites de normalizaci\u00f3n, incluidas las dependencias entre par\u00e1metros de watchdog.
- Separaci\u00f3n de las ramas
KernelyExecutive: una entrada con el mismo nombre en la subclave vecina no se aplica.
Qu\u00e9 no se confirm\u00f3
Sección titulada «Qu\u00e9 no se confirm\u00f3»- El impacto de cambiar los par\u00e1metros sobre FPS, latencia o capacidad de respuesta.
- La utilidad de cambiar los l\u00edmites sin un problema confirmado de cola DPC o worker.
Conclusi\u00f3n pr\u00e1ctica
Sección titulada «Conclusi\u00f3n pr\u00e1ctica»No cambie estos par\u00e1metros a ciegas: sin una traza ETW/WPR no se puede establecer la causa del backlog. Para un sistema en uso, mantenga el watchdog activado y use los par\u00e1metros para diagn\u00f3stico, no como un conjunto de optimizaci\u00f3n.
Restauraci\u00f3n del estado
Sección titulada «Restauraci\u00f3n del estado»Devuelva los valores est\u00e1ndar o elimine las entradas opcionales. Los par\u00e1metros del kernel se aplican en el siguiente arranque de Windows.
Fuentes y limitaciones
Sección titulada «Fuentes y limitaciones»Los readers y consumers se verificaron en ntoskrnl.exe Windows 11 25H2 build 26200.9168. No se publican offsets ni pseudoc\u00f3digo. Las m\u00e9tricas finales de usuario no se incluyeron en esta serie.
- DPCs and threads, Microsoft Learn, verificado el 2026-09-01.
- Bug checks 0x133 DPC_WATCHDOG_VIOLATION, Microsoft Learn, verificado el 2026-09-01.
C\u00f3mo repetir la parte din\u00e1mica de las observaciones: consulte C\u00f3mo verificar por su cuenta.
La investigaci\u00f3n y las herramientas utilizadas pertenecen al desarrollador de BoosterX, por lo que el desarrollador tiene un inter\u00e9s directo en los resultados. La metodolog\u00eda y los l\u00edmites de aplicabilidad se describen arriba, y las conclusiones se pueden verificar con los datos abiertos y las fuentes p\u00fablicas enumeradas.
Fuentes p\u00fablicas verificadas: 2026-09-02.
Historial de cambios
Sección titulada «Historial de cambios»- 2026-09-20: la secci\u00f3n «Resultados» se movi\u00f3 al lugar obligatorio antes de «Restauraci\u00f3n del estado»; se a\u00f1adieron el descargo de responsabilidad sobre el conflicto de intereses y el enlace a la verificaci\u00f3n independiente de las observaciones din\u00e1micas en la metodolog\u00eda.
- 2026-09-02: primera publicaci\u00f3n; se confirmaron readers, defaults y clamps, se a\u00f1adieron los l\u00edmites de utilidad pr\u00e1ctica.
