Windows 7 Sensor Driverを作ろう - その1

これまで、何回かに分けてWindows 7 Sensor & Location Platformの使い方について解説してきました。

でも、ちょっと待てよ…まだSensor & Location Platform対応のセンサーデバイスってそんなにないよなぁ…と思っている方も沢山いますよね?
センサーデバイスをWindows 7 Sensor & Location Platformに対応させるには、Windows 7が規定する方法に従ってデバイスドライバーを作成する必要があります。

デバイスドライバー?!と聞いただけで、「私駄目ですぅー!」という悲鳴が聞こえてきそうですね。流石にいつもの私の調子で、“簡単です!!”とは言えないですが、Sensorドライバーは、Windows VistaからWindows Platformに導入されたUMDF(User Mode Driver Framework)のドライバーなので、実は通常のアプリケーションと近い感覚で開発ができるんです。
勿論、製品版のきちんとしたデバイスドライバーを開発するのは、商用のアプリケーションを開発するのと同じぐらい大変ですが、「ちょっと試しに使ってみるか」程度の日曜センサードライバーの開発ならば、VC++ Nativeのプログラムが書ける、ちょっと腕に覚えのあるプログラマーなら十分開発可能です。

腕に覚えのある方で、周りにBluetoothやUSB接続で仮想COMポートにマップされてRead/Writeするタイプのセンサーを持っている方は、是非、お試しを。そして出来上がったらCodeplexに上げてもらってと…。

さて、センサーデバイスドライバーを開発するには、Windows Driver Kit(以下WDKと略します)が必要です。WDKは、以下のURLからダウンロードできます。

https://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=36a2630f-5d56-43b5-b996-7633f2ec14ff

これをインストールすると、(デフォルトでは)c:\WinDDK\7600.xxxx.yに環境一式格納されます。このフォルダーにデバイスドライバーをビルドするための環境や、各種ユーティリティツール、豊富なサンプルが入っています。ちなみに、Windows 7のドライバーだけでなく、VistaやXP、Windows Server 2008/R2、Windows Server 2003のドライバーを開発するための環境も入っています。
このサブフォルダーのsrc\SensorsAndLocationにセンサーデバイスドライバーのサンプルが二つ(SensorsSkelton、TimeSensor)入っています。
新しくドライバーを開発するには、このSensorsSkeltonを丸ごと同じフォルダーにコピーして、中に入っているファイルの修正していくのが一番簡単です。
修正は、SensorsSkeltonに用意された、SensorsSkelton.htmlを、良っくよんで注意深く行ってくださいね。

センサーデバイスドライバーの作り方は、Interface誌の2010年2月号のドライバーMVP日高さんの記事や、https://ascii.jp/elem/000/000/501/501318/ のカヤックさんの記事でも紹介されているので、そちらも参照してくださいね。

ホビーイスト以外にも、素敵なセンサー技術を持っているセンサーデバイスメーカーさんでWindows 7に試しに対応してみたい、学校の研究でちょっとやってみたい、という方は、是非お試しを。

では、今回はここまで。次回は、サンプルの中身を覗いて、ポイントを解説します。