MMCSS, DWM e perfil Games no Windows 11 25H2
Nesta página
Resposta curta
Seção intitulada “Resposta curta”O MMCSS dá às time-sensitive multimedia tasks acesso prioritário ao CPU, sem as transformar em realtime absoluto. Os perfis Window Manager e Games influenciam a classificação apenas dos threads registados sob o nome de tarefa correspondente. Remover os valores predefinidos não restaura o perfil: ativa valores de fallback mais baixos provenientes do código.
O que foi verificado
Seção intitulada “O que foi verificado”Verificou-se como o MMCSS lê os perfis Window Manager e Games, que valores se aplicam na ausência de entradas e o que altera a mudança de prioridades e do lazy mode.
Âmbito do estudo
Seção intitulada “Âmbito do estudo”Windows 11 25H2 build 26200.9168, mmcss.sys e observação em boot-time. O workload concreto, o driver GPU e a latência física não foram medidos.
Metodologia
Seção intitulada “Metodologia”Análise de mmcss.sys, observação da leitura dos perfis no bootlog e verificação da normalização e dos valores de fallback.
Caminho canónico
Seção intitulada “Caminho canónico”Caminho raiz:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile
Perfil DWM:
...\Tasks\Window Manager
Perfil de jogos:
...\Tasks\Games
| Value | Type | Window Manager em 25H2 |
Games em 25H2 |
Papel confirmado |
|---|---|---|---|---|
Scheduling Category |
REG_SZ |
Medium |
Medium |
Categoria scheduler policy |
Priority |
REG_DWORD |
5 |
2 |
Prioridade da tarefa no intervalo 1..8 |
Priority When Yielded |
REG_DWORD |
ausente, fallback 16 |
ausente, fallback 16 |
Teto após cedência de CPU |
Valores da raiz SystemProfile:
| Value | Type | Estado em 25H2 | Papel confirmado |
|---|---|---|---|
LazyModeTimeout |
REG_DWORD |
ausente, fallback 1000000 |
Temporizador do lazy mode em unidades de 100 ns |
NoLazyMode |
REG_DWORD |
ausente, fallback 0 |
Desativação do idle detector |
Perfil DWM e Games
Seção intitulada “Perfil DWM e Games”mmcss.sys lê Scheduling Category, Priority e Priority When Yielded durante a inicialização dos perfis. Faixas de categorias ativas documentadas: Low — 8..15, Medium — 16..22, High — 23..26. Para High, o valor Priority na faixa ativa é sempre interpretado como 2, pelo que a entrada 6 ou 8 não eleva o perfil High como o número sugere.
No estado limpo da build estudada, o perfil Games tinha Medium/2, e Window Manager — Medium/5. Priority When Yielded estava ausente em ambos, pelo que se aplicava o fallback 16. As combinações High/6/13 e High/8/13 são configurações alteradas, e não Windows defaults. O valor 13 reforça a demotion após cedência de CPU relativamente ao fallback 16.
Utilidade: o perfil descreve a scheduler policy para threads classificados. A própria elevação da categoria não prova uma melhoria do workload final; pode aumentar a competição pelo CPU.
LazyModeTimeout e NoLazyMode
Seção intitulada “LazyModeTimeout e NoLazyMode”LazyModeTimeout é medido em unidades de 100 ns. O fallback 1000000 é igual a 100 ms; 10000 é igual a 1 ms. O zero é substituído pelo fallback, não existe clamp superior no reader verificado. NoLazyMode é booleano: 0 mantém o idle detector ativo, qualquer valor não nulo desativa-o. Com NoLazyMode ativo, o caminho LazyModeTimeout é praticamente inatingível, pelo que estas definições não podem ser avaliadas de forma independente.
Utilidade: reduzir o timeout acelera o período do lazy scheduler, mas não aumenta a prioridade dos threads ativos. NoLazyMode=1 remove o idle-demotion path, mas não anula Priority When Yielded e mantém o MMCSS no ciclo completo, aumentando a atividade em segundo plano.
Timing e evidências
Seção intitulada “Timing e evidências”mmcss.sys lê o root e os task profiles no arranque do serviço/driver. No bootlog observaram-se acessos a NoLazyMode e aos perfis; para os valores ausentes registava-se NAME NOT FOUND, após o que se aplicava o default do código. Esta é a forma normal de funcionamento da configuração do Registry.
O que foi confirmado
Seção intitulada “O que foi confirmado”- Valores
Medium/5paraWindow ManagereMedium/2paraGamesna configuração limpa do 25H2. - Fallback
Low/1na ausência deScheduling CategoryePriority, bem como16paraPriority When Yielded. - Limites das categorias e interpretação de
PriorityparaHigh. - Unidades e fallback
LazyModeTimeout, comportamento booleano deNoLazyMode.
O que não foi confirmado
Seção intitulada “O que não foi confirmado”- O impacto dos perfis nos FPS, frametime e latência física.
- A utilidade de alterar prioridades para jogos e aplicações concretos.
Conclusão prática
Seção intitulada “Conclusão prática”Para um sistema normal, mantenha os Medium/5 e Medium/2 predefinidos. Para um regresso exato, não se podem remover Scheduling Category e Priority: o fallback na ausência é igual a Low/1, ou seja, o perfil ficará mais fraco do que o predefinido. O regresso é feito escrevendo explicitamente o par predefinido e removendo o Priority When Yielded opcional.
Fontes e limitações
Seção intitulada “Fontes e limitações”- Multimedia Class Scheduler Service, Microsoft Learn, verificado em 2026-09-01.
- MMCSS task profiles, descrição das task categories e do SystemProfile.
O resultado refere-se ao Windows 11 25H2 build 26200.9168; o workload concreto, o GPU driver e a latência física não foram medidos neste artigo.
Para saber como repetir a parte dinâmica das observações — ver Como verificar por conta própria.
O estudo e as ferramentas utilizadas pertencem ao desenvolvedor do BoosterX, pelo que o desenvolvedor tem um interesse direto nos resultados. A metodologia e os limites de aplicabilidade estão descritos acima, e as conclusões podem ser verificadas através dos dados abertos e das fontes públicas enumeradas.
Fontes públicas verificadas: 2026-09-02.
Histórico de alterações
Seção intitulada “Histórico de alterações”- 2026-09-20: adicionado o aviso sobre o conflito de interesses e a ligação para a verificação independente das observações dinâmicas na metodologia.
- 2026-09-02: primeira publicação; confirmadas a leitura dos perfis, os defaults e os valores de fallback, adicionados os limites do efeito prático.
