このページの本文へ

YUREXをWindows 7のセンサーに大改造だっ! (3/8)

2010年02月08日 13時00分更新

文●本間哲平/面白法人カヤック

  • この記事をはてなブックマークに追加
本文印刷

最初に書き換えること(GUIDの書き換え)

 WDKのインストールが終わったところで、サンプルドライバの料理にかかりましょう。

 先にダウンロードしておいた「Sensor Development Kit for Windows 7」のソースファイルを適当な場所にコピーします。ここではC:\YurexSensorというフォルダにしておきます。CDから取り込んだファイルの場合、読み取り専用になっている場合がありますので、解除をお忘れなく。

WS013

読み取り専用の場合は解除する


 いくつかファイルがありますが、最初にすることは、自分用のドライバにするためにGUID(Globally Unique Identifier)を書き換える作業です。 というか、先に言っちゃいますが今回の作業の大半はこれに尽きます。メンドウですが一回体験しておくと良いかと思います……。

 気を取り直して、書き換えの前にファイルをリネームしておきましょう。今回は以下のように変更します。

  • SensorsBadgeDriver.rc → SensorsYurexDriver.rc
  • SensorsBadgeDriver.ctl → SensorsYurexDriver.ctl
  • SensorsBadgeDriver.idl → SensorsYurexDriver.idl
  • SensorsBadgeDriver.def → SensorsYurexDriver.def
  • SensorsBadgeDriver.inx → SensorsYurexDriver.inx

 リネームしましたか? 「Badge Boardと違ってYUREXは単一のセンサーなのに複数形にしたのはどういうことか?!」という意見は全力でスルーさせてください(すみません)。

 まず、「sources」というファイルをエディタで開いて修正します。sourcesファイルはビルド内容を定義したファイルです。「SensorsBadgeDriver」を「SensorsYurexDriver」に置換しておけばOKです。TARGETNAME、SOURCESの.rc、SOURCESの.idl、NTTARGETFILES、LOC_DRIVER_INFSの5カ所が該当します。

 あ、エディタは好きなものを使ってください。ちなみに僕は「サクラエディタ」派です。

 次に、「SensorsYurexDriver.rc」ファイルを開きます。


#define VER_FILEDESCRIPTION_STR     "Sensors Yurex Driver"
#define VER_INTERNALNAME_STR        "SensorsYurexDriver"
#define VER_ORIGINALFILENAME_STR    "SensorsYurexDriver.dll"


 ファイル名やデバイスドライバの説明文なので、あまり深く考えず「YUREX」とだけ突っ込んでおきましょう。

 「exports.def」ファイルも以下のように書き換えます。


LIBRARY SensorsYurexDriver.DLL


 「internal.h」ファイルを開きます。この辺からちょっと面倒な作業が出てきます。まずはトレース用のID文字列です。IDは適当に決めて大丈夫です。


#define MYDRIVER_TRACING_ID L"KAYAC\\BBU\\SensorsYurexDriver"


 続いて、同じくトレースのためのGUIDを設定します。GUIDは専用ツールを使って、自分で新たに生成する必要があります。GUIDの生成ツールは「Microsoft Windows SDK」(WDKではありません)を入れていれば、同時にインストールされています。その場合、[すべてのプログラム]→[Microsoft Windows SDK v7.0]→[Tools]→[GUID Generator]で起動できます。

 もしくはGUID Generatorだけ、マイクロソフトのサイトからダウンロードきます。

WS014

GUID GeneratorでGUIDを生成する


 新たに生成したGUIDを使って、WPP_CONTROL_GUIDSの定義を書き換えます。


#define WPP_CONTROL_GUIDS   WPP_DEFINE_CONTROL_GUID( SensorsYurexDriverTraceControl, (47AF43CD,7CF4,4e49,AAC0,CAA12C2C0B6F), \
WPP_DEFINE_BIT(MYDRIVER_ALL_INFO) )


 ここから先、頻繁にGUIDを生成する作業が必要になるので、GUID Generatorは起動したままにしておきましょう。

この連載の記事

一覧へ

この記事の編集者は以下の記事をオススメしています