XLsoft Corporation/エクセルソフト株式会社
英語 日本語 中国語 韓国語

エクセルソフト,XLsoft,WinDriver,ドライバ,デバイスドライバ,ドライバ開発,Windows ドライバ,Linux ドライバ,PCI ドライバ,USB ドライバ,DDK,ISA ドライバ,Device Driver,ドライバ 作成,Jungo

WinDriver ドライバ開発 .
.
.テクニカル ドキュメント #43
.
. サイト マップ
. 関連リンク
.

Doc ID: 43
製品: KernelDriver
Version:  5.22 およびそれ以前

KernelDriver から WinDriver の API をどのように呼びますか?

Windows NT の場合、カーネル ドライバのサンプルとして、KernelDriver\samples および KernelDriver\plx ディレクトリ以下を参照してください。その他の対応 OS の場合、ソース コード レベルでは同一です (現在、Windows NT 4.0 のみで対応してる特別な C++ クラスを除いて)。もちろん、makefile は、プラットフォームおよびコンパイラに依存するので、makefike は異なります。KernelDriver を使用してカーネル モード ドライバを記述する場合、カーネル モジュール windrvr.o/windrvr.sys/windrvr.vxd で実装される WinDriver API にアクセスする必要があるので、これを有効にする必要があります。Windows 環境では、KernelDriver のインストールは自動的に行われます。Linux 環境では、ビルドし、カーネルにモジュール windrvr.o を挿入する必要があります。
詳細は、インストール ガイドを参照してください。

p9054_driver.c コードへのステップ
  • Step 1 - #include "kd.h".
    KernelDriver include ファイルです。 windrvr.h も含まれています。
  • Step 2 - #include "windrvr_int_thread.h" (InterruptThreadEnable() および InterruptThreadDisable() 関数への簡易ラッパです)。
  • Step 3 - KD_OpenWinDriver() への呼び出し。 これで、WinDriver のモジュールへの接続を open し、割り込み処理を含む、WinDriver API へアクセスできます。
  • Step 4 - Link phase - の場合: wd_kd.o にリンクする必要があります。(9054/linux_module ディレクトリ以下の makefile にあります)。 これで、malloc()、free() (カーネル モードの実装、それによって、kmalloc()/kfree() を呼ぶ必要はありません) および KP_DeviceIoControl()、WD_Open() など。
  • Step 5 - これで、WD_Open()、WD_Close()、WD_Transfer() などを呼び出すことができます。ユーザー モードのサンプル ドライバ アプリケーションのコードを同じようにカーネルでこれらを使用できます。

.
.
Top へ