最初に書き換えること(GUIDの書き換え)
WDKのインストールが終わったところで、サンプルドライバの料理にかかりましょう。
先にダウンロードしておいた「Sensor Development Kit for Windows 7」のソースファイルを適当な場所にコピーします。ここではC:\YurexSensorというフォルダにしておきます。CDから取り込んだファイルの場合、読み取り専用になっている場合がありますので、解除をお忘れなく。
いくつかファイルがありますが、最初にすることは、自分用のドライバにするために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だけ、マイクロソフトのサイトからダウンロードきます。
新たに生成した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は起動したままにしておきましょう。