MMCSS、DWM、Windows 11 25H2のGamesプロファイル
目次
MMCSSはtime-sensitive multimedia tasksにCPUへの優先アクセスを与えますが、それらを絶対的なrealtimeに変えるわけではありません。Window ManagerとGamesのプロファイルは、対応するタスク名で登録されたスレッドのみの分類に影響します。標準値を削除してもプロファイルは復元されません。削除すると、コード内のより低いfallback値が有効になります。
何を確認したか
Section titled “何を確認したか”MMCSSがWindow ManagerとGamesのプロファイルをどのように読み取るか、エントリが存在しない場合にどの値が有効になるか、優先度とlazy modeの変更が何を変えるかを確認しました。
Windows 11 25H2 build 26200.9168、mmcss.sysおよびboot-time観測。具体的なworkload、GPUドライバー、物理的な遅延は測定していません。
mmcss.sysの解析、bootlogでのプロファイル読み取りの観測、正規化とfallback値の検証。
ルートパス:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile
DWMプロファイル:
...\Tasks\Window Manager
ゲームプロファイル:
...\Tasks\Games
| Value | Type | 25H2でのWindow Manager |
25H2でのGames |
確認された役割 |
|---|---|---|---|---|
Scheduling Category |
REG_SZ |
Medium |
Medium |
scheduler policyのカテゴリ |
Priority |
REG_DWORD |
5 |
2 |
1..8の範囲におけるタスク優先度 |
Priority When Yielded |
REG_DWORD |
存在せず、fallback 16 |
存在せず、fallback 16 |
CPU譲渡後の上限 |
ルートSystemProfileの値:
| Value | Type | 25H2での状態 | 確認された役割 |
|---|---|---|---|
LazyModeTimeout |
REG_DWORD |
存在せず、fallback 1000000 |
100-нс単位のlazy modeタイマー |
NoLazyMode |
REG_DWORD |
存在せず、fallback 0 |
idle detectorの無効化 |
DWMプロファイルとGames
Section titled “DWMプロファイルとGames”mmcss.sysはプロファイルの初期化時にScheduling Category、Priority、Priority When Yieldedを読み取ります。文書化されているアクティブなカテゴリ帯: Low — 8..15、Medium — 16..22、High — 23..26。Highの場合、アクティブ帯の値Priorityは常に2として解釈されるため、6または8を書き込んでも、数値が示唆するようにはHighプロファイルを引き上げません。
調査したビルドのクリーンな状態では、プロファイルGamesはMedium/2を、Window ManagerはMedium/5を持っていました。Priority When Yieldedは両方に存在しなかったため、fallback 16が適用されました。High/6/13とHigh/8/13の組み合わせは変更された構成であり、Windowsのデフォルトではありません。値13は、fallback 16に対してCPU譲渡後の降格を強めます。
有用性: プロファイルは分類されたスレッドのscheduler policyを記述します。カテゴリの引き上げ自体は最終的なworkloadの改善を証明しません。CPUをめぐる競合を増やす可能性があります。
LazyModeTimeoutとNoLazyMode
Section titled “LazyModeTimeoutとNoLazyMode”LazyModeTimeoutは100-нс単位で測定されます。fallback 1000000は100 ms、10000は1 msです。ゼロはfallbackに置き換えられ、検証したreaderには上限clampがありません。NoLazyModeはブール値です。0はidle detectorを有効のままにし、任意の非ゼロ値はそれを無効にします。NoLazyModeが有効な場合、パスLazyModeTimeoutは実質的に到達不能であるため、これらの設定を独立に評価することはできません。
有用性: timeoutの短縮はlazy schedulerの周期を速めるのであって、アクティブなスレッドの優先度を上げるのではありません。NoLazyMode=1はidle-demotion pathを除去しますが、Priority When Yieldedを無効にせず、MMCSSをフルサイクルに保ち、バックグラウンド活動を増やします。
Timingと証拠
Section titled “Timingと証拠”mmcss.sysはサービス/ドライバーの起動時にrootとtask profilesを読み取ります。bootlogではNoLazyModeとプロファイルへのアクセスが観測され、存在しない値についてはNAME NOT FOUNDが記録され、その後コードのdefaultが適用されました。これはRegistry構成の通常の動作方法です。
確認されたこと
Section titled “確認されたこと”- クリーンな25H2構成における
Window ManagerのMedium/5とGamesのMedium/2の値。 Scheduling CategoryとPriorityが存在しない場合のfallbackLow/1、およびPriority When Yieldedの16。- カテゴリの境界と
Highに対するPriorityの解釈。 LazyModeTimeoutの単位とfallback、NoLazyModeのブール動作。
確認されていないこと
Section titled “確認されていないこと”- プロファイルがFPS、frametime、物理的な遅延に与える影響。
- 特定のゲームやアプリケーションに対する優先度変更の有用性。
実用的な結論
Section titled “実用的な結論”通常のシステムでは、標準のMedium/5とMedium/2を保持してください。正確に戻すには、Scheduling CategoryとPriorityを削除してはいけません。存在しない場合のfallbackはLow/1に等しく、つまりプロファイルは標準より弱くなります。復元は標準のペアを明示的に書き込み、オプションのPriority When Yieldedを削除することで行います。
- Multimedia Class Scheduler Service, Microsoft Learn, 確認日 2026-09-01。
- MMCSS task profiles, task categoriesとSystemProfileの説明。
結果はWindows 11 25H2 build 26200.9168に関するものです。具体的なworkload、GPU driver、物理的な遅延はこの記事では測定していません。
観測の動的な部分を再現する方法については、自分で確認する方法を参照してください。
調査と使用したツールはBoosterXの開発者に帰属するため、開発者は結果に直接の利害関係を持ちます。手法と適用範囲は上記に記載されており、結論は公開データと列挙された公開ソースによって検証できます。
公開ソースの確認日: 2026-09-02。
- 2026-09-20: 利害相反に関する免責事項と、手法における動的観測の自己検証へのリンクを追加。
- 2026-09-02: 初回公開。プロファイルの読み取り、defaults、fallback値が確認され、実用的な効果の範囲が追加されました。
