「割り込みテーブル」を解析する場合、多くの方はWinDbgに内蔵されている「!idt」拡張コマンドを次のように実行されていると思います。
割り込みオブジェクトがメモリ「fffff80229cb84e0」に実際に置かれているのかどうかを確認してみます。
ご覧のように、このオブジェクト内には割り込みサービスルーチン名などが記録されています。Microsoft社の担当エンジニアーは、このような割り込みオブジェクトを設計し、割り込みテーブル経由で、割り込みベクターと割り込みオブジェクトをマッピングすることになります。Windows 8.1からWindows 10への遷移過程では、セキュリティーを強化し、かつ、パフォーマンスを改善する観点から、割り込みベクターと割り込みオブジェクトをマッピングするための専用の内部関数が追加実装されています。本「IT談話館」は追加実装背景を解析し、マッピングメカニズムの解明に成功しています。
0から34までの割り込みテーブルインデックスはOS内部処理(トラップ)ルーチンを示している
0から4までのIrqlはソフトウェア(OS)割り込み処理ルーチンを示している
このような基本解析作業の終了後は、独自解析コード内に割り込みオブジェクトの詳細解析ルーチンを次々に追加し、割り込みに起因する問題を解決するための本格的な準備作業に入ります。「Irql」フィールド値はWindowsシステムの健康度を診断する上では極めて重要な情報です。むしろ、このフィールドの意味と活用手段を持たない場合、まっとうな解析作業はできない!、と申し上げる必要があると思います。
実務的な解析コードの開発技術の導入をご予定の場合には、所属チーム内でご協議の上、本「IT談話館」の「オンサイトセミナー」の受講をご検討いただけますと幸いでございます。