フィルタドライバ作成への道<その2>
2回目です。
前回はファイルを作成したので、今回はこのファイルをbuildします。まずは、Buildするためのプログラムを起動します。このBuildもVisual Studio のような、アプリケーションのコンパイラは使用できません。フリーで使用できるものとして、WDK(Windows Driver Kits)があります。以下のページから入手可能です。(多少わかり難いです…)
http://www.microsoft.com/japan/whdc/devtools/WDK/AboutWDK.mspx
WDKをインストール後、次の順番でプログラムを選択してください。
[スタート]-[プログラム]-[Windows Driver Kits]-[WDK5472]-[Build Environments]-[Windows Server 2003]-[Windows Server 2003 x86 Free Build Environment]
コマンドプロンプトのようなウインドウが開きます。前回作成したファイルが入っているフォルダに、ディレクトリを移動します。以下のコマンドを実行します。
bcz
これで、Buildが実行されます。ちなみに、
bcz /?
と実行すると、Help(Usage)が見れます。Build が終わると、新しくファイルが作成されます。作成されたファイルの中に、".sys"ファイルが作成されていると思います。このファイルがドライバの実体となります。イメージ的には、アプリケーションで言うところの".exe"ファイルみたいなものです。アプリケーションとの相違点は、アプリケーションはユーザが実行ファイルを実行することで動作しますが、ドライバはOSやアプリケーションなどから呼ばれることで動作されるという点です。呼ばれるということは、あらかじめOSなどの呼び主はどこにどんなドライバがあるのかを知る必要があります。そのため下記2点を行わないとドライバは上手く動いてくれません。
・"どういったドライバなのか"を情報としてレジストリに登録する
・".sys"ファイルは"C:\WINDOWS\system32\drivers"に置く
今回のプログラムで言えば、レジストリに登録する情報は以下のファイル(first.reg)を作成し、実行すればOKです。

                                        • -

REGEDIT4
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\first]
"Start"=dword:1
"Type"=dword:1
"ErrorControl"=dword:1
"DisplayName"="first"

                                        • -

ここまで行えば、何もしないドライバは完成です。といっても何もしないドライバなので、ちゃんと確認してあげないと上手くいっているかどうかもわかりません。確認方法は次回にしますが、ここまでで思うことは、ドライバが非常に難儀な存在ってことです。何もしないドライバを紹介するだけで、苦労してるぐらいです。
フィルタドライバ作成まで頑張れるか少し不安です。