Scheduler, timers och foreground boost i Windows 11 25H2
På den här sidan
Kort svar
Section titled “Kort svar”Dessa värden styr schemaläggaren, timerupplösning, fördelning av klockavbrott och DPC-budgeten. Hela effekten kan inte avgöras enbart utifrån namnet: Windows tillämpar bitmasker och normaliserar indatavärden. Olika poster kan ange samma driftläge.
Vad som undersöktes
Section titled “Vad som undersöktes”Vi undersökte vilka schemaläggar- och timerparametrar kärnan läser, hur värden normaliseras och vilka fält i Win32PrioritySeparation som ansvarar för vad.
Undersökningens omfattning
Section titled “Undersökningens omfattning”Windows 11 25H2 build 26200.9168, scheduler- och timer paths i kärnan. Specifika spel och program ingick inte i mätningarna.
En mastertabell över kärnparametrar, observation av runtime-anrop till Registry samt kontroll av bitfält och normalisering av värden.
Kanoniska parametrar
Section titled “Kanoniska parametrar”| Registry path | Value | Type | Default | Reader/timing |
|---|---|---|---|---|
HKLM\SYSTEM\CurrentControlSet\Control\PriorityControl |
Win32PrioritySeparation |
REG_DWORD |
0x02 |
ntoskrnl.exe, sedan session initialization |
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel |
GlobalTimerResolutionRequests |
REG_DWORD |
0 |
kernel phase-0 |
| samma sökväg | MaxDynamicTickDuration |
REG_DWORD |
0xFFFFFFFF |
dynamic tick duration limit |
| samma sökväg | EnablePerCpuClockTickScheduling |
REG_DWORD |
0 |
phase-1 clock init |
| samma sökväg | DisableLowQosTimerResolution |
REG_DWORD |
1 |
timer policy init |
| samma sökväg | DpcCumulativeSoftTimeout |
REG_DWORD |
120000 |
DPC budget init |
| samma sökväg | ForceForegroundBoostDecay |
REG_DWORD |
0 |
scheduler init |
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\I/O System |
PassiveIntRealTimeWorkerPriority |
REG_DWORD |
16 |
I/O worker init |
Win32PrioritySeparation
Section titled “Win32PrioritySeparation”Värdet består av bitfält. Kärnan fastställer separat förstärkningen för det aktiva programmet (foreground boost), typen och längden på kvantum. I den undersökta builden är startvärdet för klient-Windows 0x02. En mask 0x3F tillämpas på indatavärdet, därför kan olika poster ange ett och samma schemaläggarläge.
Uppdelningen av bitfälten bit för bit, kalkylatorn för ekvivalenta värden samt historiska mätningar av latens och FPS har lagts i en separat undersökning «Win32PrioritySeparation: latens och FPS vid full CPU-belastning». Användarsidan av frågan — val, effekt och återställning — täcks av BoosterX inställningssida.
Parametern ändrar schemaläggningsreglerna. För att bedöma nyttan i en specifik uppgift måste testet upprepas med CPU-belastning och latensen mätas; inställningen garanterar ingen universell acceleration.
Timer policy
Section titled “Timer policy”GlobalTimerResolutionRequests och närliggande timerparametrar läses från Session Manager\Kernel. De påverkar omfattningen av begäranden om timerupplösning, lokal eller systemomfattande, samt fördelningen av klockavbrott mellan CPU:er. På plattformar som stöds kan separat klockplanering per CPU fungera även utan tvingad inställning.
MaxDynamicTickDuration begränsar sömnlängden i idle utan periodiska tick. Måttenheten är 100 nanosekunder: 7500 betyder 0.75 ms, inte 7.5 ms. Den övre gränsen begränsas dessutom av den aktuella timerupplösningen. 0xFFFFFFFF tar bort den extra gränsen.
DisableLowQosTimerResolution ändrar gränsen för lågprioriterade begäranden om timerupplösning. En permanent hög upplösning ställs dock inte in av detta i sig.
Reglerna för timers bör bara ändras för belastning som verkligen utför sådana begäranden. En permanent hög upplösning ökar antalet timeravbrott och energiförbrukningen.
DPC budget och boost decay
Section titled “DPC budget och boost decay”DpcCumulativeSoftTimeout anger budgeten för den sammanlagda körtiden för DPC. Dess normaliseringsgränser, kopplingen till DpcWatchdogPeriod samt närliggande DPC-parametrar och worker-gränser analyseras i undersökningen «DPC och Kernel Executive workers i Windows 11 25H2»; de upprepas inte här. ForceForegroundBoostDecay ändrar reglerna för avklingning av förstärkningen för det aktiva programmet, och PassiveIntRealTimeWorkerPriority anger prioriteten för den särskilda arbetsströmmen för in- och utmatning. För PassiveIntRealTimeWorkerPriority accepterar koden 17..21; om posten saknas används 16. Värdet 18 är tillåtet och höjer prioriteten.
Vid jämförelse, ta hänsyn till måttenheter och intervallgränser. Kärnan normaliserar värden som inte stöds, därför kan det skrivna talet skilja sig från det faktiskt tillämpade.
Dessa parametrar hör till systemplanering och drivrutinsdiagnostik. Utan en DPC/ISR-trace finns inga tillförlitliga skäl för att ändra dem manuellt.
Resultat
Section titled “Resultat”- Läsning av alla parametrar i tabellen bekräftades i
ntoskrnl.exeav build26200.9168:Win32PrioritySeparationläses vid initiering av schemaläggaren och session initialization, timerparametrarna — i kärnans initieringsfaser. - Startvärden och normalisering bekräftades: mask
0x3FförWin32PrioritySeparation, intervallet17..21med reservvärdet16förPassiveIntRealTimeWorkerPriority, enheten 100 ns förMaxDynamicTickDuration. - Själva observationerna är kvalitativa: värden för latens, FPS eller bakgrundsbelastning mättes inte i denna undersökning.
Vad som bekräftats
Section titled “Vad som bekräftats”- Readers och normalisering av parametrar i
ntoskrnl.exei den undersökta builden. - Startvärdet
0x02förWin32PrioritySeparationoch mask0x3F. - Innebörden av fälten boost och kvantum, enheterna för
MaxDynamicTickDuration. - Normalisering av
PassiveIntRealTimeWorkerPrioritytill intervallet17..21med reservvärdet16.
Vad som inte bekräftats
Section titled “Vad som inte bekräftats”- Ändringens inverkan på FPS, latens eller responsivitet.
- Nyttan av ändringen utan belastning som verkligen använder timers och DPC.
Praktisk slutsats
Section titled “Praktisk slutsats”Låt standardvärdena vara. Ändra parametrar endast för belastning som verkligen utför motsvarande begäranden, och jämför resultaten i identiska körningar.
Återställning av tillstånd
Section titled “Återställning av tillstånd”Återställ standardvärdena eller ta bort de valfria posterna. Kärnparametrar tillämpas vid nästa start av Windows.
Begränsningar
Section titled “Begränsningar”Läsningar i fas 0 av starten kan hamna utanför Procmon:s registreringsintervall. Undersökningen bekräftar läskoden och normaliseringen på build 26200.9168. Antalet oberoende observationskörningar (starter och traces) har inte fastställts i artikelns data, därför har repeterbarheten i själva läsarobservationerna inte kvantitativt utvärderats. Ingen universell inverkan på prestanda eller latens har fastställts.
Undersökningen och de använda verktygen tillhör utvecklaren av BoosterX, därför har utvecklaren ett direkt intresse av resultaten. Metoden och tillämpningsgränserna beskrivs ovan, och slutsatserna kan verifieras mot öppna data och de listade offentliga källorna.
Källor
Section titled “Källor”- Win32PrioritySeparation, Microsoft Learn, kontrollerad 2026-09-01.
- Timer resolution, Microsoft Learn, kontrollerad 2026-09-01.
Offentliga källor kontrollerade: 2026-09-02.
Ändringshistorik
Section titled “Ändringshistorik”- 2026-09-20: lade till en disclaimer om intressekonflikt; datumen reviewed/modified har samordnats.
- 2026-09-19: lade till avsnittet «Resultat», korslänkar till undersökningarna av
Win32PrioritySeparationoch DPC/worker-parametrar samt BoosterX inställningssida; fastställde att antalet observationskörningar saknas. - 2026-09-02: första publiceringen; bekräftade readers, normalisering och bitfält, lade till gränser för praktisk nytta.
