• 締切済み

Windowsで初めてドライバの開発を行います。

質問させて頂きます。 仕事で初めてUSBドライバの開発を行うことになりました。 必要な開発環境は揃えましたが情報が少なく DDKのサンプルを読み解くのも大変です。 カーネルモードで動作するため普通のアプリとは異なるようですが 初心者の私でも分かりやすい入門サイトや解説本は無いでしょうか? 嵌りやすい罠や注意する点もありましたら、是非ご教授をお願いします。

みんなの回答

  • haniriito
  • ベストアンサー率57% (12/21)
回答No.3

No.2です。 WinUSBはWDKのサンプルではありません(WDKに入っていますが)。 WinUSBはマイクロソフトから提供される汎用のUSBドライバとAPI(DLL)のことです。質問者さんのところでアプリケーション側でこのAPIにあわせることができるのであれば、WinUSBが利用できる可能性がある、ということです。 「汎用」ドライバなので、場合によっては使えないかも知れません。例えば、作ろうとしているUSBドライバが、USB-LAN変換ドライバなんかだと、やっぱりドライバ自体を作ることになるでしょうね。 ご健闘をお祈りしています。

  • haniriito
  • ベストアンサー率57% (12/21)
回答No.2

カーネルモードドライバの開発はなかなか大変ですよ。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版のいやらしい(?)ドライバ署名の悩みからも解放されます。 が、これが使えるとなると、質問者さんの仕事を取り上げてしまうことになるかもしれませんね。

mmo_mmo_rag
質問者

お礼

ご回答有難うございます。 現在勉強していますが、カーネルモードですと扱うメモリのページングも考慮と難しいと思っています。 WinUSBは初めて知りましたが、WDKに付属のサンプルのUSB版と思ってよいのでしょうか? こちらも調べて見たいと思います。有難うございます。

  • Lchan0211
  • ベストアンサー率64% (239/371)
回答No.1

デバイスドライバ関係は日本語の情報が少ないですが、 http://d.hatena.ne.jp/sea-show/20100312/1268399521 に、情報源のほとんどがまとめられています。 私はここから情報を探しました。 はじめてデバイスドライバに触れるのであれば、 上記URLで紹介されている入門書籍を一冊購入して読むことを お勧めします。 最新のWDK7.1.0環境をインストールしているのであれば、 「WindowsVistaデバイスドライバプログラミング」 がお勧めですが、古いDDK環境を使っているのであれば、 「WindowsXPデバイスドライバプログラミング」の 方がよいと思います。

mmo_mmo_rag
質問者

お礼

ご回答有難うございます! 教えて頂きましたURLを参考にさせて頂きます。 また、WDKなので書籍の購入も検討いたします。

関連するQ&A

  • ドライバの見分け方

    WindowsOSで使用する、FTDI社のUSB Serial Converterドライバー及び、USB Serial Portドライバはカーネルモードなのか、ユーザモードなのか、わかる方がいましたら、教えてください。

  • AKI-H8 3048 USB開発のドライバ

    AKI-H8/3048F USB開発セット(http://akizukidenshi.com/catalog/g/gK-00172/) を買い、USBでの開発をしようと思ったのですが、USBのドライバのインストールができません。 色々なサイトやデータシートを読むと、付属のCDのサンプルを書き込み、 マイコンの電源をつけてUSBを接続すれば不明なデバイスが見つかり、 その後、CDに入っているものを指定すればドライバはインストルーされると書いてあります。 しかし、自分の場合、不明なデバイスが見つからず、デバイスマネージャなどを見ても全く反応していません。 けれども、USBから電源はきていて、マイコン自体はUSBで動作することができます。通信は全くできません。 (開発環境はwindows7 64bit です) 原因が分かる方は教えていただけないでしょうか?よろしくお願いします。

  • 両方のモードで動作するアプリを開発したい

    Google Chrome には 「デスクトップモード」 「Windows 8 モード」とありますが、これと同様で両方のモードに対応するアプリを開発したいと思っております。 検索してみたのですが、該当するものに辿り着けませんでした。 これに関して技術的なアドバイス、出来ればサンプルなどあれば教えていただけたらと思い投稿させていただきました。 ご教授よろしくお願いします。

  • 開発者向け(ADB)ドライバ ASUS HD7

    アンドロイド初心者です 先日 ASUS MEMO PAD HD7 (ANDROID4.2)を購入しました。 Frepというアプリの設定ツールを実行するために、開発者向け(ADB)トライバをインストールしてくださいとあり 以下のURLが記載されておりますが、ASUS配下のどれを選択すればよいのか分かりません (製品、シリーズ、モデルなど) ドライバ一覧→http://developer.android.com/tools/extras/oem-usb.html#Drivers 上記のASUS→http://support.asus.com.tw/download/download.aspx?SLanguage=ja-jp 状況は ・タブレットはデベロッパーモード ・EXPROLORでUSBドライブの中身は確認できます ・設定ツールはダウンロード済みで解凍→実行すると”error:device not found“と表示されます ドライバはどれを選べばよいか?その他確認事項や注意点などあれば、ご教授お願いいたします

  • カーネルのプロトコルスタック開発

    カーネル初心者です。 カーネルに実装されているTCP/IPプロトコルスタックを開発・デバッグしたいのですが、まったく手順が分かっておりません。。 カーネルの構築方法は分かるのですが、下記に示すように実装されている個々のプロトコルを開発・デバッグしてから、カーネルに組み込みたいと考えています。 1.TCP/IPプロトコルを開発・デバッグ 2.上記モジュールをカーネルに組み込みデバッグ #それともそもそもこんな手順でやらない? したがって、カーネル実装のプロトコルスタックについて、以下の2点をどなたかご教授いただけないでしょうか。 ・開発環境の作り方 ・デバッグの方法 開発のサンプルや参考ページもあわせて教えていただけると幸いです。(自力で探すことができませんでした。。) 英語サイトでも大丈夫です。 現在考えているのはLinuxかBSD系のOSですが、種類は問いません。 どうかよろしくお願いいたします。

  • パラレルポートで双方向通信がしたいのですが

    現在Nibbleモードをサポートするプリンタドライバを開発しています。 が、今までパラレルポートを扱った事がなくちょっと困っています。 Nibbleモードへの切り替え方や、現在のパラレルポートの モードの取得などの手法をご存知の方いらっしゃいませんでしょうか。 WinNTで作ってるのでNT DDKのサンプルを見て それらしき所があるのですが、明確な仕様資料(ウラ付け)がほしいのです。 宜しく御願いいたします。

  • iPhoneアプリ開発 本のおすすめについて

    こんにちは。 今、仕事でiPhoneアプリ開発をしている物です。 今まで、よくわかるiPhoneアプリ開発の教科書 iOS5&Xcode4.2対応で勉強してきました。 この本は、入門編(初心者向け)であり、今後はiOS7対応のアプリ開発の勉強をしていきたいと思っています。 ここで、iOS7対応のおすすめなアプリ開発の本がありましたら、感想教えて下さい。 今現在、目に止まっているのは、 「詳細! Objective-C iPhoneアプリ開発 入門ノート Xcode5+iOS 7対応」 といいう本になります。 こちらを、読んだ事がある方は、中級向けか、上級向けか、あるいは初心者向けなのか、教えて頂けると助かります。 私自身、配列などにまだ抵抗があり、克服したいと思っています。 よろしくお願いします。

  • Linuxデバイスドライバの開発入門

    この度、新しい仕事先で組み込み系のLinuxのデバイスドライバを作成することになりました。 まだデバイスドライバの開発もLinuxそのものも未経験の分野であり、業務開始まで時間があるため、家で勉強したいと考えています。 本で勉強するのと並行して、何か具体的にハードを制御するようなものを作成してみるのが、やりがいもあっていいかなと思っています。そこで質問です。 (1) 上記のような目的にちょうど良い題材はないでしょうか? 例えば、このような目的のために作られた入門用の開発キットの ようなものでも良いですし、市販されている普通のデバイスでも 良いです。(予算は1万円くらいまで) デバイスの仕様さえ公開されていればドライバは書けるものなの かもしれませんが、できれば、具体的なおすすめを教えて頂けると 助かります。 (2) おすすめの勉強方法があれば教えてください。実体験に基づくものであれば、なお嬉しいです。

  • Win7 PC上でUSB3.0ドライバは作れる?

    WDK 8.1を用いてWindows7 PCでカーネルモードのUSB3.0ドライバ(独自のクラスドライバ)は作れるのでしょうか。 WDK 8.1はWindows7でも使えるそうですが、Windows7がUSB3.0に対応していないので疑問に思いました。 マイクロソフトさんのページを検索してもそれらしい情報が見つかりません。 どなたかご存知でしょうか。

  • マイコンの開発環境について

    秋月のH8開発キットに付属していたDOSアプリを使用してプログラム開発をしています。 今までは離れに有るデスクトップPC(232装備)で開発していましたが、近くに有るノートPC(232未装備)で触りたいと思いまして先日USB→RS232に変換するコンバータを購入しました。 いざ使ってみたらハイパーターミナル(付属のコマンドプロンプト上で動作する物)が正常に動作しませんでした。(注意書きをよく読んでなかったのがまずかったです…) ノートPCで開発する良い方法は無い物か知恵を貸していただけませんか? 何卒よろしくお願いいたします。