Skip to content

MMCSS, DWM and the Games profile in Windows 11 25H2

On this page

MMCSS gives time-sensitive multimedia tasks priority access to the CPU without turning them into absolute realtime. The Window Manager and Games profiles affect the classification only of those threads that are registered under the corresponding task name. Deleting the stock values does not restore the profile: it enables lower fallback values from the code.

We checked how MMCSS reads the Window Manager and Games profiles, which values apply when entries are absent, and what changing priorities and lazy mode does.

Windows 11 25H2 build 26200.9168, mmcss.sys and boot-time observation. The specific workload, GPU driver and physical latency were not measured.

Parsing mmcss.sys, observing profile reads in the bootlog, and checking normalization and fallback values.

Root path:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile

DWM profile:

...\Tasks\Window Manager

Games profile:

...\Tasks\Games

Value Type Window Manager in 25H2 Games in 25H2 Confirmed role
Scheduling Category REG_SZ Medium Medium Scheduler policy category
Priority REG_DWORD 5 2 Task priority in the range 1..8
Priority When Yielded REG_DWORD absent, fallback 16 absent, fallback 16 Ceiling after CPU yield

Root SystemProfile values:

Value Type State in 25H2 Confirmed role
LazyModeTimeout REG_DWORD absent, fallback 1000000 Lazy mode timer in 100-ns units
NoLazyMode REG_DWORD absent, fallback 0 Idle detector disable

mmcss.sys reads Scheduling Category, Priority and Priority When Yielded during profile initialization. Documented active category bands: Low — 8..15, Medium — 16..22, High — 23..26. For High, the value Priority in the active band is always treated as 2, so an entry of 6 or 8 does not raise the High profile the way the number suggests.

In the clean state of the build under study, the Games profile had Medium/2, and Window Manager had Medium/5. Priority When Yielded was absent in both, so the fallback 16 was applied. The combinations High/6/13 and High/8/13 are modified configurations, not Windows defaults. The value 13 strengthens the demotion after CPU yield relative to the fallback 16.

Usefulness: the profile describes the scheduler policy for classified threads. Raising the category by itself does not prove an improvement in the end workload; it may increase competition for the CPU.

LazyModeTimeout is measured in 100-ns units. The fallback 1000000 equals 100 ms; 10000 equals 1 ms. Zero is replaced by the fallback; there is no upper clamp in the reader under study. NoLazyMode is boolean: 0 leaves the idle detector enabled, any non-zero value disables it. With NoLazyMode active, the path LazyModeTimeout is practically unreachable, so these settings cannot be evaluated independently.

Usefulness: reducing the timeout speeds up the lazy scheduler period, not raises the priority of active threads. NoLazyMode=1 removes the idle-demotion path, but does not cancel Priority When Yielded and keeps MMCSS in a full cycle, increasing background activity.

mmcss.sys reads root and task profiles at service/driver start. In the bootlog, accesses to NoLazyMode and profiles were observed; for missing values, NAME NOT FOUND was recorded, after which the code default was applied. This is the normal way Registry configuration works.

  • The values Medium/5 for Window Manager and Medium/2 for Games in the clean 25H2 configuration.
  • The fallback Low/1 when Scheduling Category and Priority are absent, as well as 16 for Priority When Yielded.
  • The category boundaries and the treatment of Priority for High.
  • The units and fallback of LazyModeTimeout, the boolean behavior of NoLazyMode.
  • The effect of the profiles on FPS, frametime and physical latency.
  • The benefit of changing priorities for specific games and applications.

For a normal system, keep the stock Medium/5 and Medium/2. For an exact return, you must not delete Scheduling Category and Priority: the fallback when absent equals Low/1, meaning the profile becomes weaker than stock. The return is performed by explicitly writing the stock pair and deleting the optional Priority When Yielded.

The result applies to Windows 11 25H2 build 26200.9168; the specific workload, GPU driver and physical latency were not measured in this article.

For how to reproduce the dynamic part of the observations, see How to check it yourself.

The research and the tools used belong to the BoosterX developer, so the developer has a direct interest in the results. The methodology and scope of applicability are described above, and the conclusions can be verified against open data and the listed public sources.

Public sources checked: 2026-09-02.

  • 2026-09-20: added a conflict-of-interest disclaimer and a link to self-verification of dynamic observations in the methodology.
  • 2026-09-02: first publication; profile reads, defaults and fallback values confirmed, boundaries of the practical effect added.