C言語でテストプログラムを作るくらいは出きるが、デバイスドライバーまで作るのはちょっと。という方も多いでしょう。 ここに紹介するデバック環境は、Windows用のDLLの形式をしています。 win32環境から関数を呼び出すだけで、ハードウエアにアクセスできます。デバイスドライバーを作成する必要はありません。基板動作中にちょっとメモリーの内容を確認してみたい。 I/Oポートの値を読み出してみたい。こんなことをする開発段階でのソフト作成するのにも役立つことでしょう。これがデバイスドライバーを作ることなく実現できるのです。
デバイスドライバーの開発でデバッカーを使う場合にはもう一台パソコンが必要だったり、一台で行うには、ソフトアイス等の市販ソフトが必要だったりして大変です。 Visual C++のデバッカのように簡単にはいきません。ここで紹介する DLLを使えばVisual C++でWin32アプリとして開発できデバックもVisual C++でできます。本来デバイスドライバー内部で行う部分をWin32プログラムとして作成し、正しく動作することが確認できた後、それを元にデバイスドライバーを作成することができます。デバックの難しいカーネルモードのデバックにかかる時間を最小限にすることができます。(図1)※図をクリックすると拡大されます
アプリケーションからドライバーを制御する方法、 95/98のVxDやNTのドライバーからコンフィグレーション空間やメモリーへのアクセス、割り込み使用方法など基本的な機能の実現方法を見ることができます。最も簡単なデバイスドライバーの例とも言えるでしょう。95/98 とNTではデバイスドライバーの形式が全く異なります。ドライバーの制御方法もそれぞれ異なるのですが、できるだけDLL部分を共用化する方法を提案します。二つのプラットホームで動作するアプリケーションを作成する際の参考になるでしょう。 |