IRQL_NOT_LESS_OR_EQUAL

XP 機が突然ブルースクリーンに.IRQL_NOT_LESS_OR_EQUAL とか言っている.

ぐぐってみると,どうもデバドラ (特に nVIDIA まわり) と相性が悪い時とか,熱暴走とかで起きるらしい.




で,IRQ でなく IRQL? とか思って調べると,Interrupt ReQuest Level の略で,割り込みの優先度のようなものらしい.0〜31 まであって,数字が大きい程優先度が高い (nice 値と逆).0〜2 がソフトウェア割り込みで,それぞれパッシブ,asynchronous procedure call (?),ディスパッチ処理.3〜26 がドライバ割り込み.

ちなみに,IRQL は,やはり 0〜31 まであるスレッドの優先度と混同しやすいので注意が必要 (上の記事中にも混乱を招く箇所がある).優先度の区分の「リアルタイム」って何者なんですかね? ハードリアルタイムなわけないし,単に優先度の数値上の問題なのか,それとも質的に何か違うのか.



おまけ.I/O 処理などで一時的にスレッドの優先度を実質的に上げる quantum boost についてメモ.w2k Pro では優先度の値を上げるんでなくて,quantum (持ち時間みたいなもの) を上げている.もうひとつ.start コマンドで優先度を指定する方法.勉強になったようななってないような.