DPC e workers do Kernel Executive no Windows 11 25H2
Nesta página
Resposta curta
Seção intitulada “Resposta curta”O grupo DpcQueueDepth, os worker limits e os parâmetros de watchdog costumam ser vistos como um conjunto de latency tweaks universais. Na prática, são limites internos e mecanismos de proteção do kernel. Seu efeito só se manifesta diante de uma fila DPC específica, de uma determinada quantidade de processadores, de um tipo de driver ou de um erro de worker.
O que foi verificado
Seção intitulada “O que foi verificado”Verificou-se quais limites de DPC, worker threads e watchdog o kernel lê, como os valores são normalizados e onde esses mecanismos realmente se aplicam.
Escopo da pesquisa
Seção intitulada “Escopo da pesquisa”Windows 11 25H2 build 26200.9168, branches Session Manager\Kernel e Session Manager\Executive. Funções dependentes de hardware e drivers específicos não fizeram parte das medições.
Metodologia
Seção intitulada “Metodologia”Análise estática de ntoskrnl.exe: busca de readers e consumidores, verificação de faixas e normalização de valores; conferência com a documentação pública da Microsoft.
Caminho canônico e valores
Seção intitulada “Caminho canônico e valores”Caminho de DPC e watchdog:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel
| Value | Type | Default/normalization | O que controla |
|---|---|---|---|
DpcQueueDepth |
REG_DWORD |
4 |
profundidade da DPC queue |
MinimumDpcRate |
REG_DWORD |
3 |
frequência mínima de processamento de DPC |
IdealDpcRate |
REG_DWORD |
20 |
DPC rate alvo |
AdjustDpcThreshold |
REG_DWORD |
20 |
limiar de adaptação da DPC policy |
ThreadDpcEnable |
REG_DWORD |
1 |
processamento de thread-DPC |
DpcWatchdogPeriod |
REG_DWORD |
120000 |
período do DPC watchdog |
DpcCumulativeSoftTimeout |
REG_DWORD |
120000 na build pesquisada |
soft budget acumulado |
PassiveWatchdogTimeout |
REG_DWORD |
300 segundos |
watchdog de passive-level em KD |
ForceIdleGracePeriod |
REG_DWORD |
5 segundos |
force-idle grace period |
PerfIsoEnabled |
REG_DWORD |
0 |
performance isolation |
CacheIsoBitmap |
REG_DWORD |
0 |
máscara Intel CAT L3 |
SchedulerAssistThreadFlagOverride |
REG_DWORD |
0 |
override do scheduler assist |
VpThreadSystemWorkPriority |
REG_DWORD |
30, faixa 1..31 |
prioridade de trabalho do virtual processor |
AlwaysTrackIoBoosting |
REG_DWORD |
0 |
rastreamento diagnóstico de I/O boost |
Caminho dos Kernel Executive workers:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Executive
| Value | Type | Default/normalization | O que controla |
|---|---|---|---|
AdditionalCriticalWorkerThreads |
REG_DWORD |
0, clamp 0..100 |
workers críticos adicionais |
AdditionalDelayedWorkerThreads |
REG_DWORD |
0, clamp 0..100 |
delayed workers |
MaximumKernelWorkerThreads |
REG_DWORD |
4096, 32..16384 |
limite superior de kernel workers |
ForceEnableMutantAutoboost |
REG_DWORD |
0 |
mutant autoboost |
WorkerThreadTimeoutInSeconds |
REG_DWORD |
600, 60..3600 |
worker timeout |
Session Manager\Kernel e Session Manager\Executive são branches de configuração diferentes. Para cada valor, importa o caminho que o reader do kernel abre nessa build.
DPC queue e rates
Seção intitulada “DPC queue e rates”O kernel usa DpcQueueDepth, MinimumDpcRate, IdealDpcRate e AdjustDpcThreshold para controlar a fila e a adaptação do processamento de DPC. Os defaults verificados 4/3/20/20 já coincidem com o estado padrão do Windows 11 25H2; regravar esses números não muda nada.
Utilidade: esses parâmetros podem ser úteis na análise de um DPC backlog específico, mas sem uma traço ETW/WPR a alteração às cegas não diagnostica a causa. Uma fila grande pode adiar o processamento e aumentar a cauda da latência.
Thread DPC e worker limits
Seção intitulada “Thread DPC e worker limits”ThreadDpcEnable=1 habilita a infraestrutura de threaded-DPC, 0 devolve o trabalho ao caminho DIRQL normal e pode alongar as janelas de interrupt-off. MaximumKernelWorkerThreads limita o pool geral de kernel workers. AdditionalCriticalWorkerThreads e AdditionalDelayedWorkerThreads são somados aos pools base: no Windows cliente, são respectivamente 5 critical e 7 delayed workers antes da aplicação do override.
Mais threads não significa menos latência: workers adicionais consomem stack, tempo de scheduler e recursos de cache, e a fila pode estar limitada por outro componente. AdditionalDelayedWorkerThreads=32 de fato adiciona delayed workers, mas não há ganho universal medido.
Watchdog e timeout
Seção intitulada “Watchdog e timeout”DpcCumulativeSoftTimeout limita o tempo acumulado de DPC. DpcWatchdogPeriod=0 é aceitável e desliga esse watchdog; qualquer valor diferente de zero abaixo de 2000 torna-se 2000 ms. PassiveWatchdogTimeout é usado apenas com o kernel debugger habilitado, portanto em um sistema comum esse timer não fica ativo mesmo com os 300 segundos padrão. WorkerThreadTimeoutInSeconds limita o travamento de uma worker operation.
DpcCumulativeSoftTimeout tem limite inferior de 2000 ms e não pode exceder DpcWatchdogPeriod. Para obter o valor 240000, o watchdog period também deve ser 240000. WorkerThreadTimeoutInSeconds é normalizado para a faixa de 60..3600 segundos; gravar 0 não desliga o timeout, mas leva ao valor mínimo.
Desligar o timeout de proteção remove o diagnóstico, mas não corrige a causa do bloqueio. Para um sistema de produção, o watchdog faz parte do mecanismo de detecção de drivers defeituosos.
Kernel Executive policy
Seção intitulada “Kernel Executive policy”ForceEnableMutantAutoboost está no branch Executive, enquanto ForceIdleGracePeriod, PerfIsoEnabled, CacheIsoBitmap, SchedulerAssistThreadFlagOverride, VpThreadSystemWorkPriority e AlwaysTrackIoBoosting são lidos do branch Kernel. Essa diferença é crítica: uma entrada de mesmo nome na subchave vizinha não é aplicada.
CacheIsoBitmap é usado apenas com suporte a Intel Resource Director/CAT; sem CAT, o valor não cria isolamento. SchedulerAssistThreadFlagOverride=0 e 1 mantêm a ativação automática, 2 desliga o branch à força. VpThreadSystemWorkPriority admite 1..31, caso contrário é redefinido para 1; o default é 30, e 31 é apenas o limite superior. AlwaysTrackIoBoosting=1 habilita allocation e stack-capture diagnósticos nos boost paths, e não mantém a I/O priority elevada.
Utilidade: sem um consumidor confirmado, o efeito geralmente está ausente ou é pequeno demais para uma decisão prática. Tais valores são úteis como objeto de um diagnóstico de kernel separado, e não como um conjunto geral de otimização.
Resultados
Seção intitulada “Resultados”Os defaults verificados 4/3/20/20 coincidem com o estado padrão do Windows 11 25H2. Os workers adicionais são iguais a zero por padrão, o limite superior de kernel workers é 4096 com faixa de 32..16384. Os parâmetros de watchdog são normalizados: um valor abaixo de 2000 ms torna-se 2000, e DpcCumulativeSoftTimeout não excede o período do watchdog. Os branches Kernel e Executive não são intercambiáveis.
O que foi confirmado
Seção intitulada “O que foi confirmado”- Readers e consumidores dos parâmetros em
ntoskrnl.exeda build pesquisada. - Valores padrão e limites de normalização, incluindo dependências entre parâmetros de watchdog.
- Separação dos branches
KerneleExecutive: uma entrada de mesmo nome na subchave vizinha não é aplicada.
O que não foi confirmado
Seção intitulada “O que não foi confirmado”- O impacto da alteração dos parâmetros sobre FPS, latência ou responsividade.
- A utilidade de alterar os limites sem um problema confirmado de fila DPC ou de worker.
Conclusão prática
Seção intitulada “Conclusão prática”Não altere esses parâmetros às cegas: sem uma traço ETW/WPR, a causa do backlog não pode ser determinada. Para um sistema em uso, mantenha o watchdog ativado e use os parâmetros para diagnóstico, não como um conjunto de otimização.
Restauração do estado
Seção intitulada “Restauração do estado”Retorne os valores padrão ou remova as entradas opcionais. Os parâmetros de kernel são aplicados na próxima inicialização do Windows.
Fontes e limitações
Seção intitulada “Fontes e limitações”Readers e consumers foram verificados em ntoskrnl.exe Windows 11 25H2 build 26200.9168. Offsets ou pseudocódigo não são publicados. Métricas finais de usuário não fizeram parte desta série.
- DPCs and threads, Microsoft Learn, verificado em 2026-09-01.
- Bug checks 0x133 DPC_WATCHDOG_VIOLATION, Microsoft Learn, verificado em 2026-09-01.
Para saber como reproduzir a parte dinâmica das observações, consulte Como verificar por conta própria.
A pesquisa 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.
Histórico de alterações
Seção intitulada “Histórico de alterações”- 2026-09-20: a seção «Resultados» foi movida para o local obrigatório antes de «Restauração do estado»; adicionados o aviso de 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 readers, defaults e clamps, adicionados os limites de utilidade prática.
