スレッドの優先度
一部のドライバーは、独自のドライバー専用またはデバイス専用のシステム スレッドを作成し、スレッドの基本優先度を最も低いリアルタイム優先度の値に設定します。 その他の最上位レベルのドライバー (特にファイル システム ドライバー) は、基本優先度が最も高い変数の優先度値に設定されているシステム ワーカー スレッドを使用します。 カーネルは、システム内のほぼすべてのユーザー モード スレッドを含む、優先度が可変のすべてのスレッドの前に実行されるように、リアルタイム優先度が最も低いスレッドをスケジュールします。
ほとんどの標準ドライバー ルーチンは、現在準備完了状態にあるすべてのスレッドの前に、任意のスレッド コンテキストで実行されます。
スレッドは、それぞれの実行時の優先度に関係なく、IRQL = PASSIVE_LEVEL で実行されます。 DISPATCH_LEVEL や DIRQL など、多くの標準ドライバー ルーチンは IRQL > PASSIVE_LEVEL で実行されます。
スレッド優先度の決定の詳細については、スケジュール、スレッド コンテキスト、IRQL に関するホワイト ペーパーを参照してください。