Applying boosts
Back in KiExitDispatcher
, you saw that KiProcessThreadWaitList
is called to process any threads in the deferred ready list. It is here that the boost information passed by the caller is processed. This is done by looping through each DeferredReady
thread, unlinking its wait blocks (only Active
and Bypassed
blocks are unlinked), and setting two key values in the kernel’s thread control block: Adjust-Reason
and AdjustIncrement
. The reason is one of the two Adjust
possibilities seen earlier, and the increment corresponds to the boost value. KiDeferredReadyThread
is then called. This makes the thread ready for execution by running two algorithms: the quantum and priority selection algorithm (which you are about to see in two parts) ...
Get Windows Internals, Part 1: System architecture, processes, threads, memory management, and more, Seventh Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.