Skip to content

Latest commit

 

History

History
28 lines (11 loc) · 1.17 KB

thread-priorities.md

File metadata and controls

28 lines (11 loc) · 1.17 KB
title description keywords ms.date
Thread Priorities
Thread Priorities
thread objects WDK kernel
thread priorities WDK kernel
priorities WDK threads
05/08/2018

Thread Priorities

Some drivers create their own driver- or device-dedicated system threads and set their thread's base priority to the lowest real-time priority value. Other highest-level drivers, particularly file system drivers, use system worker threads with a base priority that is usually set to the highest variable priority value. The kernel schedules a thread with the lowest real-time priority to run ahead of every thread with a variable priority, which includes almost every user-mode thread in the system.

Most standard driver routines are run in an arbitrary thread context, ahead of all threads that are currently in the ready state.

Threads, whatever their respective run-time priorities, are run at IRQL = PASSIVE_LEVEL. Many standard driver routines are run at an IRQL > PASSIVE_LEVEL, such as DISPATCH_LEVEL or DIRQL.

For more information about thread priorities, see the Scheduling, Thread Context, and IRQL white paper.