Scheduler, timers и foreground boost Windows 11 25H2
На этой странице
Короткий ответ
Заголовок раздела «Короткий ответ»Эти значения управляют планировщиком, разрешением таймеров, распределением тактовых прерываний и бюджетом DPC. По одному названию нельзя определить весь эффект: Windows применяет битовые маски и нормализует входные значения. Разные записи могут задавать одинаковый режим работы.
Что проверяли
Заголовок раздела «Что проверяли»Проверяли, какие параметры планировщика и таймеров читает ядро, как нормализуются значения и какие поля Win32PrioritySeparation за что отвечают.
Область исследования
Заголовок раздела «Область исследования»Windows 11 25H2 build 26200.9168, scheduler и timer paths ядра. Конкретные игры и приложения в измерения не входили.
Методика
Заголовок раздела «Методика»Мастер-таблица параметров ядра, наблюдение runtime-обращений к Registry и проверка битовых полей и нормализации значений.
Канонические параметры
Заголовок раздела «Канонические параметры»| Registry path | Value | Type | Default | Reader/timing |
|---|---|---|---|---|
HKLM\SYSTEM\CurrentControlSet\Control\PriorityControl |
Win32PrioritySeparation |
REG_DWORD |
0x02 |
ntoskrnl.exe, затем session initialization |
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel |
GlobalTimerResolutionRequests |
REG_DWORD |
0 |
kernel phase-0 |
| тот же путь | MaxDynamicTickDuration |
REG_DWORD |
0xFFFFFFFF |
dynamic tick duration limit |
| тот же путь | EnablePerCpuClockTickScheduling |
REG_DWORD |
0 |
phase-1 clock init |
| тот же путь | DisableLowQosTimerResolution |
REG_DWORD |
1 |
timer policy init |
| тот же путь | DpcCumulativeSoftTimeout |
REG_DWORD |
120000 |
DPC budget init |
| тот же путь | ForceForegroundBoostDecay |
REG_DWORD |
0 |
scheduler init |
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\I/O System |
PassiveIntRealTimeWorkerPriority |
REG_DWORD |
16 |
I/O worker init |
Win32PrioritySeparation
Заголовок раздела «Win32PrioritySeparation»Значение состоит из битовых полей. Ядро отдельно определяет усиление активного приложения (foreground boost), тип и длительность кванта. В исследованной сборке начальное значение клиентской Windows равно 0x02. К входному значению применяется маска 0x3F, поэтому разные записи могут задавать один режим планировщика.
Разбор битовых полей по битам, калькулятор эквивалентных значений и исторические измерения задержки и FPS вынесены в отдельное исследование «Win32PrioritySeparation: задержка и FPS при полной загрузке CPU». Пользовательскую сторону вопроса — выбор, эффект и возврат — закрывает страница настройки BoosterX.
Параметр меняет правила планирования. Для оценки пользы в конкретной задаче нужно повторить тест с нагрузкой CPU и измерить задержку; универсального ускорения настройка не гарантирует.
Timer policy
Заголовок раздела «Timer policy»GlobalTimerResolutionRequests и соседние параметры таймеров читаются из Session Manager\Kernel. Они влияют на область действия запросов разрешения таймера, локальную или общесистемную, и на распределение тактовых прерываний между CPU. На поддерживаемых платформах раздельное планирование тактов по CPU может работать и без принудительной настройки.
MaxDynamicTickDuration ограничивает длительность сна в простое без периодических тактов. Единица измерения составляет 100 наносекунд: 7500 означает 0.75 ms, а не 7.5 ms. Верхняя граница дополнительно ограничивается текущим разрешением таймера. 0xFFFFFFFF снимает дополнительный предел.
DisableLowQosTimerResolution меняет ограничение для низкоприоритетных запросов разрешения таймера. Постоянное высокое разрешение само по себе при этом не устанавливается.
Менять правила таймеров стоит только для нагрузки, которая действительно выполняет такие запросы. Постоянное высокое разрешение увеличивает число прерываний таймера и расход энергии.
DPC budget и boost decay
Заголовок раздела «DPC budget и boost decay»DpcCumulativeSoftTimeout задаёт бюджет суммарного времени выполнения DPC. Его границы нормализации, связь с DpcWatchdogPeriod и соседние параметры DPC и worker-лимиты разобраны в исследовании «DPC и Kernel Executive workers в Windows 11 25H2»; здесь они не пересказываются. ForceForegroundBoostDecay меняет правила затухания усиления активного приложения, а PassiveIntRealTimeWorkerPriority задаёт приоритет специального рабочего потока ввода-вывода. Для PassiveIntRealTimeWorkerPriority код принимает 17..21; при отсутствии записи используется 16. Значение 18 допустимо и повышает приоритет.
При сравнении учитывайте единицы измерения и ограничения диапазонов. Ядро нормализует неподдерживаемые значения, поэтому записанное число может отличаться от фактически применённого.
Эти параметры относятся к системному планированию и диагностике драйверов. Без трассы DPC/ISR нет надёжных оснований для их ручного изменения.
Результаты
Заголовок раздела «Результаты»- Чтение всех параметров таблицы подтверждено в
ntoskrnl.exeсборки26200.9168:Win32PrioritySeparationчитается при инициализации планировщика и session initialization, параметры таймеров — на фазах инициализации ядра. - Подтверждены начальные значения и нормализация: маска
0x3FдляWin32PrioritySeparation, диапазон17..21с резервным16дляPassiveIntRealTimeWorkerPriority, единица 100 нс уMaxDynamicTickDuration. - Сами наблюдения — качественные: значений задержки, FPS или фоновой нагрузки в этом исследовании не измерялось.
Что подтверждено
Заголовок раздела «Что подтверждено»- Readers и нормализация параметров в
ntoskrnl.exeисследованной сборки. - Начальное значение
0x02дляWin32PrioritySeparationи маска0x3F. - Смысл полей boost и квантов, единицы
MaxDynamicTickDuration. - Нормализация
PassiveIntRealTimeWorkerPriorityдо диапазона17..21при резервном16.
Что не подтверждено
Заголовок раздела «Что не подтверждено»- Влияние изменения на FPS, задержку или отзывчивость.
- Польза изменения без нагрузки, которая действительно использует таймеры и DPC.
Практический вывод
Заголовок раздела «Практический вывод»Оставьте штатные значения. Меняйте параметры только для нагрузки, которая действительно выполняет соответствующие запросы, и сравнивайте результаты в одинаковых прогонах.
Восстановление состояния
Заголовок раздела «Восстановление состояния»Верните штатные значения или удалите необязательные записи. Параметры ядра применяются при следующей загрузке Windows.
Ограничения
Заголовок раздела «Ограничения»Чтения на фазе 0 загрузки могут не попасть в интервал записи Procmon. Исследование подтверждает код чтения и нормализацию на сборке 26200.9168. Число независимых прогонов наблюдения (загрузок и трасс) в данных статьи не зафиксировано, поэтому повторяемость самих наблюдений читателей количественно не оценивалась. Универсальное влияние на производительность или задержку не установлено.
Исследование и использованные инструменты принадлежат разработчику BoosterX, поэтому у разработчика есть прямой интерес к результатам. Методика и границы применимости описаны выше, а выводы можно проверить по открытым данным и перечисленным публичным источникам.
Источники
Заголовок раздела «Источники»- Win32PrioritySeparation, Microsoft Learn, проверено 2026-09-01.
- Timer resolution, Microsoft Learn, проверено 2026-09-01.
Публичные источники проверены: 2026-09-02.
История изменений
Заголовок раздела «История изменений»- 2026-09-20: добавлен дисклеймер о конфликте интересов; согласованы даты reviewed/modified.
- 2026-09-19: добавлены раздел «Результаты», перекрёстные ссылки на исследования
Win32PrioritySeparationи DPC/worker-параметров и страница настройки BoosterX; зафиксировано отсутствие числа прогонов наблюдения. - 2026-09-02: первая публикация; подтверждены readers, нормализация и битовые поля, добавлены границы практической пользы.
