コンテンツにスキップ

MMCSS、DWM、Windows 11 25H2のGamesプロファイル

目次

MMCSSはtime-sensitive multimedia tasksにCPUへの優先アクセスを与えますが、それらを絶対的なrealtimeに変えるわけではありません。Window ManagerとGamesのプロファイルは、対応するタスク名で登録されたスレッドのみの分類に影響します。標準値を削除してもプロファイルは復元されません。削除すると、コード内のより低いfallback値が有効になります。

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の無効化

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は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をフルサイクルに保ち、バックグラウンド活動を増やします。

mmcss.sysはサービス/ドライバーの起動時にrootとtask profilesを読み取ります。bootlogではNoLazyModeとプロファイルへのアクセスが観測され、存在しない値についてはNAME NOT FOUNDが記録され、その後コードのdefaultが適用されました。これはRegistry構成の通常の動作方法です。

  • クリーンな25H2構成におけるWindow ManagerのMedium/5とGamesのMedium/2の値。
  • Scheduling CategoryとPriorityが存在しない場合のfallback Low/1、およびPriority When Yieldedの16。
  • カテゴリの境界とHighに対するPriorityの解釈。
  • LazyModeTimeoutの単位とfallback、NoLazyModeのブール動作。
  • プロファイルがFPS、frametime、物理的な遅延に与える影響。
  • 特定のゲームやアプリケーションに対する優先度変更の有用性。

通常のシステムでは、標準のMedium/5とMedium/2を保持してください。正確に戻すには、Scheduling CategoryとPriorityを削除してはいけません。存在しない場合のfallbackはLow/1に等しく、つまりプロファイルは標準より弱くなります。復元は標準のペアを明示的に書き込み、オプションのPriority When Yieldedを削除することで行います。

結果はWindows 11 25H2 build 26200.9168に関するものです。具体的なworkload、GPU driver、物理的な遅延はこの記事では測定していません。

観測の動的な部分を再現する方法については、自分で確認する方法を参照してください。

調査と使用したツールはBoosterXの開発者に帰属するため、開発者は結果に直接の利害関係を持ちます。手法と適用範囲は上記に記載されており、結論は公開データと列挙された公開ソースによって検証できます。

公開ソースの確認日: 2026-09-02。

  • 2026-09-20: 利害相反に関する免責事項と、手法における動的観測の自己検証へのリンクを追加。
  • 2026-09-02: 初回公開。プロファイルの読み取り、defaults、fallback値が確認され、実用的な効果の範囲が追加されました。