Scheduler, timers y foreground boost en Windows 11 25H2
En esta página
Respuesta breve
Sección titulada «Respuesta breve»Estos valores controlan el planificador, la resolución de temporizadores, la distribución de interrupciones de reloj y el presupuesto de DPC. Por un solo nombre no se puede determinar todo el efecto: Windows aplica máscaras de bits y normaliza los valores de entrada. Distintas entradas pueden definir el mismo modo de funcionamiento.
Qué se comprobó
Sección titulada «Qué se comprobó»Se comprobó qué parámetros del planificador y de los temporizadores lee el kernel, cómo se normalizan los valores y qué campos de Win32PrioritySeparation responden a qué.
Ámbito del estudio
Sección titulada «Ámbito del estudio»Windows 11 25H2 build 26200.9168, scheduler y timer paths del kernel. Los juegos y aplicaciones concretos no se incluyeron en las mediciones.
Metodología
Sección titulada «Metodología»Tabla maestra de parámetros del kernel, observación de accesos en runtime al Registry y verificación de campos de bits y normalización de valores.
Parámetros canónicos
Sección titulada «Parámetros canónicos»| Registry path | Value | Type | Default | Reader/timing |
|---|---|---|---|---|
HKLM\SYSTEM\CurrentControlSet\Control\PriorityControl |
Win32PrioritySeparation |
REG_DWORD |
0x02 |
ntoskrnl.exe, luego session initialization |
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel |
GlobalTimerResolutionRequests |
REG_DWORD |
0 |
kernel phase-0 |
| la misma ruta | MaxDynamicTickDuration |
REG_DWORD |
0xFFFFFFFF |
dynamic tick duration limit |
| la misma ruta | EnablePerCpuClockTickScheduling |
REG_DWORD |
0 |
phase-1 clock init |
| la misma ruta | DisableLowQosTimerResolution |
REG_DWORD |
1 |
timer policy init |
| la misma ruta | DpcCumulativeSoftTimeout |
REG_DWORD |
120000 |
DPC budget init |
| la misma ruta | ForceForegroundBoostDecay |
REG_DWORD |
0 |
scheduler init |
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\I/O System |
PassiveIntRealTimeWorkerPriority |
REG_DWORD |
16 |
I/O worker init |
Win32PrioritySeparation
Sección titulada «Win32PrioritySeparation»El valor se compone de campos de bits. El kernel determina por separado el refuerzo de la aplicación activa (foreground boost), el tipo y la duración del cuanto. En la build estudiada, el valor inicial del cliente de Windows es 0x02. Al valor de entrada se le aplica la máscara 0x3F, por lo que distintas entradas pueden definir un mismo modo del planificador.
El desglose de los campos de bits bit a bit, la calculadora de valores equivalentes y las mediciones históricas de latencia y FPS se han trasladado a un estudio aparte «Win32PrioritySeparation: latencia y FPS con carga completa de CPU». El lado del usuario —elección, efecto y reversión— lo cubre la página de configuración de BoosterX.
El parámetro cambia las reglas de planificación. Para evaluar su utilidad en una tarea concreta hay que repetir la prueba con carga de CPU y medir la latencia; la configuración no garantiza una aceleración universal.
Timer policy
Sección titulada «Timer policy»GlobalTimerResolutionRequests y los parámetros de temporizadores vecinos se leen de Session Manager\Kernel. Influyen en el ámbito de acción de las solicitudes de resolución del temporizador, local o de todo el sistema, y en la distribución de las interrupciones de reloj entre las CPU. En las plataformas compatibles, la planificación separada de los tics por CPU puede funcionar también sin configuración forzada.
MaxDynamicTickDuration limita la duración del sueño en reposo sin tics periódicos. La unidad de medida es de 100 nanosegundos: 7500 significa 0.75 ms, no 7.5 ms. El límite superior se restringe además por la resolución actual del temporizador. 0xFFFFFFFF elimina el límite adicional.
DisableLowQosTimerResolution cambia la restricción para las solicitudes de resolución del temporizador de baja prioridad. Una resolución alta constante no se establece por sí misma en este caso.
Solo conviene cambiar las reglas de los temporizadores para una carga que realmente ejecute dichas solicitudes. Una resolución alta constante aumenta el número de interrupciones del temporizador y el consumo de energía.
DPC budget y boost decay
Sección titulada «DPC budget y boost decay»DpcCumulativeSoftTimeout define el presupuesto del tiempo total de ejecución de DPC. Sus límites de normalización, su relación con DpcWatchdogPeriod y los parámetros vecinos de DPC y los límites de workers se analizan en el estudio «DPC y Kernel Executive workers en Windows 11 25H2»; aquí no se repiten. ForceForegroundBoostDecay cambia las reglas de atenuación del refuerzo de la aplicación activa, y PassiveIntRealTimeWorkerPriority define la prioridad del hilo de trabajo especial de entrada/salida. Para PassiveIntRealTimeWorkerPriority el código acepta 17..21; si no existe la entrada se usa 16. El valor 18 es admisible y eleva la prioridad.
Al comparar, tenga en cuenta las unidades de medida y las restricciones de los rangos. El kernel normaliza los valores no compatibles, por lo que el número escrito puede diferir del aplicado realmente.
Estos parámetros pertenecen a la planificación del sistema y al diagnóstico de controladores. Sin una traza DPC/ISR no hay bases fiables para cambiarlos manualmente.
Resultados
Sección titulada «Resultados»- La lectura de todos los parámetros de la tabla se confirmó en
ntoskrnl.exede la build26200.9168:Win32PrioritySeparationse lee durante la inicialización del planificador y session initialization, los parámetros de temporizadores — en las fases de inicialización del kernel. - Se confirmaron los valores iniciales y la normalización: la máscara
0x3FparaWin32PrioritySeparation, el rango17..21con reserva16paraPassiveIntRealTimeWorkerPriority, la unidad de 100 ns enMaxDynamicTickDuration. - Las observaciones en sí son cualitativas: en este estudio no se midieron valores de latencia, FPS ni carga en segundo plano.
Qué se confirmó
Sección titulada «Qué se confirmó»- Los readers y la normalización de los parámetros en
ntoskrnl.exede la build estudiada. - El valor inicial
0x02paraWin32PrioritySeparationy la máscara0x3F. - El significado de los campos boost y cuantos, las unidades de
MaxDynamicTickDuration. - La normalización de
PassiveIntRealTimeWorkerPriorityhasta el rango17..21con reserva16.
Qué no se confirmó
Sección titulada «Qué no se confirmó»- La influencia del cambio en FPS, latencia o capacidad de respuesta.
- La utilidad del cambio sin una carga que realmente use temporizadores y DPC.
Conclusión práctica
Sección titulada «Conclusión práctica»Deje los valores predeterminados. Cambie los parámetros solo para una carga que realmente ejecute las solicitudes correspondientes, y compare los resultados en ejecuciones idénticas.
Restauración del estado
Sección titulada «Restauración del estado»Devuelva los valores predeterminados o elimine las entradas opcionales. Los parámetros del kernel se aplican en el siguiente arranque de Windows.
Limitaciones
Sección titulada «Limitaciones»Las lecturas en la fase 0 del arranque pueden no entrar en el intervalo de grabación de Procmon. El estudio confirma el código de lectura y la normalización en la build 26200.9168. El número de ejecuciones independientes de observación (arranques y trazas) no queda fijado en los datos del artículo, por lo que la repetibilidad de las propias observaciones de los readers no se evaluó cuantitativamente. No se estableció una influencia universal sobre el rendimiento o la latencia.
El estudio y las herramientas utilizadas pertenecen al desarrollador de BoosterX, por lo que el desarrollador tiene un interés directo en los resultados. La metodología y los límites de aplicabilidad se describen arriba, y las conclusiones se pueden verificar con los datos abiertos y las fuentes públicas enumeradas.
Fuentes
Sección titulada «Fuentes»- Win32PrioritySeparation, Microsoft Learn, verificado el 2026-09-01.
- Timer resolution, Microsoft Learn, verificado el 2026-09-01.
Fuentes públicas verificadas: 2026-09-02.
Historial de cambios
Sección titulada «Historial de cambios»- 2026-09-20: añadido el descargo de responsabilidad sobre el conflicto de intereses; armonizadas las fechas reviewed/modified.
- 2026-09-19: añadidas la sección «Resultados», las referencias cruzadas a los estudios
Win32PrioritySeparationy de parámetros DPC/worker y la página de configuración de BoosterX; fijada la ausencia del número de ejecuciones de observación. - 2026-09-02: primera publicación; confirmados los readers, la normalización y los campos de bits, añadidos los límites de la utilidad práctica.
