kernel

kgdb+Insight

kgdbとか使おうとしたら、この辺のフロントエンドは使えない予感! 初心者のためのgdbフロントエンド kgdbwaitで開始→Insightでブレークを張る→走らせる→ブレークで止まってステップ実行 であれば可能のはず、と思って試してみた。

第二回ローレイヤー勉強会

「Windowsのフィルタドライバ入門」というお題で発表してきました。 なんか反応がいまいちだった気もしますが、飲み会が盛り上がったので良かったのではないかと。 Alpha用のWindows XPがbeta版すら出ていないという渾身のギャグが滑ったのでまだまだ修行が…

HIDのフィルタドライバについて

HIDのフィルタドライバの理解が足りなかったので少し調べ直してみた。 なお、ここではHIDのゲームパッドに連射機能を追加するためにupper filterとして記述したフィルタドライバをインストールするものとする。 1. インストール フィルタドライバを組み込む…

DbgPrint

DbgPrintで何か出すときに #define MyKdPrint(msg) DbgPrint("header"); DbgPrint msg; みたいなのを使うと、DbgViewで見たときに二行になってしまう。 バッファに一度ためてから出力すればOKで、こんな感じ。#if DBG #define DBG_MSG_HEADER "[MyKernelModu…

safe mode check in case of WDM

セーフモードで起動しているかどうかドライバ内で判定する方法は、How to determine whether the system is running in Safe Mode from a device driver セーフ モードでデバイス ドライバからシステムが実行されているかどうか確認する方法に書いてあって、…

__FUNCTION__と__LINE__の文字列化

Linux kernel用に自作の簡易トレーサを使っている。 1つのチェックポイントあたり、16バイトの情報を記録しておいて、あとでダンプするというもの。16バイトというのは、 u32 timestamp; // タイムスタンプ const char *message; // メッセージ u32 param[2]…

カーネル読書会 第0x40回

↓ これに行ってきた。 http://mkosaki.blog46.fc2.com/blog-entry-166.html http://d.hatena.ne.jp/hyoshiok/20060609#p1CPUIDの結果から、より適切なコードバイトが使えるCPUなら、起動時にコードを書き換える仕組み。 Pentium4 対応カーネルってどうなって…