Pular para o conteúdo

MMCSS, DWM e perfil Games no Windows 11 25H2

Nesta página

O MMCSS dá a time-sensitive multimedia tasks acesso prioritário à CPU, sem transformá-las em realtime absoluto. Os perfis Window Manager e Games influenciam a classificação apenas dos threads registrados sob o nome de tarefa correspondente. Remover os valores padrão não restaura o perfil: isso ativa valores de fallback mais baixos do código.

Verificou-se como o MMCSS lê os perfis Window Manager e Games, quais valores valem na ausência de entradas e o que a alteração de prioridades e do lazy mode muda.

Windows 11 25H2 build 26200.9168, mmcss.sys e observação em boot-time. O workload específico, o driver de GPU e a latência física não foram medidos.

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 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 de 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 ceder a CPU

Valores do SystemProfile raiz:

Value Type Estado em 25H2 Papel confirmado
LazyModeTimeout REG_DWORD ausente, fallback 1000000 Timer do lazy mode em unidades de 100 ns
NoLazyMode REG_DWORD ausente, fallback 0 Desativação do idle detector

O mmcss.sys lê Scheduling Category, Priority e Priority When Yielded na inicialização dos perfis. Faixas ativas de categorias documentadas: Low — 8..15, Medium — 16..22, High — 23..26. Para High, o valor Priority na faixa ativa é sempre interpretado como 2, portanto 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, portanto aplicava-se 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 demoção após ceder a CPU em relação ao fallback 16.

Utilidade: o perfil descreve a scheduler policy para threads classificados. A mera elevação da categoria não prova melhoria do workload final; ela pode aumentar a competição pela CPU.

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 há clamp superior no reader verificado. NoLazyMode é booleano: 0 mantém o idle detector ativado, qualquer valor diferente de zero o desativa. Com NoLazyMode ativo, o caminho LazyModeTimeout é praticamente inalcançável, portanto essas configurações não podem ser avaliadas de forma independente.

Utilidade: reduzir o timeout acelera o período do lazy scheduler, e não eleva a prioridade dos threads ativos. NoLazyMode=1 remove o idle-demotion path, mas não cancela Priority When Yielded e mantém o MMCSS no ciclo completo, aumentando a atividade em segundo plano.

O mmcss.sys lê o root e os task profiles na inicialização do serviço/driver. No bootlog observaram-se acessos a NoLazyMode e aos perfis; para valores ausentes registrava-se NAME NOT FOUND, após o que se aplicava o default do código. Essa é a forma normal de funcionamento da configuração de Registry.

  • Valores Medium/5 para Window Manager e Medium/2 para Games na configuração limpa do 25H2.
  • Fallback Low/1 na ausência de Scheduling Category e Priority, bem como 16 para Priority When Yielded.
  • Limites das categorias e interpretação de Priority para High.
  • Unidades e fallback LazyModeTimeout, comportamento booleano de NoLazyMode.
  • Influência dos perfis em FPS, frametime e latência física.
  • Utilidade da alteração de prioridades para jogos e aplicativos específicos.

Para um sistema comum, mantenha os Medium/5 e Medium/2 padrão. Para um retorno preciso, não se pode remover Scheduling Category e Priority: o fallback na ausência é igual a Low/1, ou seja, o perfil ficará mais fraco que o padrão. O retorno é feito gravando explicitamente o par padrão e removendo o Priority When Yielded opcional.

O resultado refere-se ao Windows 11 25H2 build 26200.9168; o workload específico, o GPU driver e a latência física não foram medidos neste artigo.

Como repetir a parte dinâmica das observações — consulte Como verificar por conta própria.

O estudo e as ferramentas utilizadas pertencem ao desenvolvedor do BoosterX, portanto o desenvolvedor tem interesse direto nos resultados. A metodologia e os limites de aplicabilidade estão descritos acima, e as conclusões podem ser verificadas pelos dados abertos e pelas fontes públicas listadas.

Fontes públicas verificadas: 2026-09-02.

  • 2026-09-20: adicionado o disclaimer sobre conflito de interesses e o link para a verificação independente das observações dinâmicas na metodologia.
  • 2026-09-02: primeira publicação; confirmados a leitura dos perfis, os defaults e os valores de fallback, adicionados os limites do efeito prático.