- 締切済み
Windowsで初めてドライバの開発を行います。
質問させて頂きます。 仕事で初めてUSBドライバの開発を行うことになりました。 必要な開発環境は揃えましたが情報が少なく DDKのサンプルを読み解くのも大変です。 カーネルモードで動作するため普通のアプリとは異なるようですが 初心者の私でも分かりやすい入門サイトや解説本は無いでしょうか? 嵌りやすい罠や注意する点もありましたら、是非ご教授をお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- haniriito
- ベストアンサー率57% (12/21)
No.2です。 WinUSBはWDKのサンプルではありません(WDKに入っていますが)。 WinUSBはマイクロソフトから提供される汎用のUSBドライバとAPI(DLL)のことです。質問者さんのところでアプリケーション側でこのAPIにあわせることができるのであれば、WinUSBが利用できる可能性がある、ということです。 「汎用」ドライバなので、場合によっては使えないかも知れません。例えば、作ろうとしているUSBドライバが、USB-LAN変換ドライバなんかだと、やっぱりドライバ自体を作ることになるでしょうね。 ご健闘をお祈りしています。
- haniriito
- ベストアンサー率57% (12/21)
カーネルモードドライバの開発はなかなか大変ですよ。DDKがWDKになってからは、フレームワークが充実してきて楽になってきましたが、私が初めてDDKレベルでコツコツ書いていたときはBSODの連発でした。 基本的なところはNo.1さんのリンクをたどって丹念に調べていけば概要は理解できると思います。 デバッガはWinDBGを使うことになるかと思いますので、その辺りのセットアップ方法あたりも調べておいた方がいいと思います。 http://msdn.microsoft.com/ja-jp/windows/hardware/gg581067 と書いておきながら、場合によっては邪道(?)も用意されています。 本気でカーネルモードドライバを書くのもいい経験になりますが、要求されるドライバの仕様がそんなに複雑なものでなく汎用的なドライバで済む範囲であれば、WinUSBをオススメします。 http://msdn.microsoft.com/en-us/library/ff540196.aspx http://msdn.microsoft.com/ja-jp/windows/hardware/gg463155 これならx64にも自動的に対応できますし、x64版のいやらしい(?)ドライバ署名の悩みからも解放されます。 が、これが使えるとなると、質問者さんの仕事を取り上げてしまうことになるかもしれませんね。
- Lchan0211
- ベストアンサー率64% (239/371)
デバイスドライバ関係は日本語の情報が少ないですが、 http://d.hatena.ne.jp/sea-show/20100312/1268399521 に、情報源のほとんどがまとめられています。 私はここから情報を探しました。 はじめてデバイスドライバに触れるのであれば、 上記URLで紹介されている入門書籍を一冊購入して読むことを お勧めします。 最新のWDK7.1.0環境をインストールしているのであれば、 「WindowsVistaデバイスドライバプログラミング」 がお勧めですが、古いDDK環境を使っているのであれば、 「WindowsXPデバイスドライバプログラミング」の 方がよいと思います。
お礼
ご回答有難うございます! 教えて頂きましたURLを参考にさせて頂きます。 また、WDKなので書籍の購入も検討いたします。
お礼
ご回答有難うございます。 現在勉強していますが、カーネルモードですと扱うメモリのページングも考慮と難しいと思っています。 WinUSBは初めて知りましたが、WDKに付属のサンプルのUSB版と思ってよいのでしょうか? こちらも調べて見たいと思います。有難うございます。