• 検索結果がありません。

WinDriver カーネル ドライバの名前変更

ドキュメント内 WinDriver v11.70 ユーザーズ ガイド (ページ 155-158)

第 9 章 実行に当たっての問題

15.2 WinDriver カーネル ドライバの名前変更

WinDriver API は、主要なドライバ機能を提供し、ユーザーモードから特定のドライバ ロジックをコード化で

きます。WinDriver のカーネル ドライバ モジュール (windrvr6.sys/.dll/.o/.ko - OS により異なる) 内に実装されています。

Windows および Linux では、WinDriver カーネル モジュールの名前を任意のドライバ名に変更し、デフォ ルトのカーネル モジュール (windrvr6.sys/.o/.ko) ではなく名前を変更したドライバを配布することが できます。次のセクションでは、サポートしている OS ごとにドライバ名の変更方法を説明します。

注 意: 名 前 を 変 更 し た WinDriver カ ー ネ ル ド ラ イ バ を オ リ ジ ナ ル の カ ー ネ ル モ ジ ュ ー ル (windrvr6.sys/.o/.ko) と同じ PC にインストールできます。また、名前変更した複数の WinDriver ドラ イバを同じ PC に同時にインストールすることもできます。

ヒント: ドライバをインストールするターゲットのマシンで他のドライバとの競合を回避するために、ドライバに は固有の名前を付けてください。

15.2.1 Windows ドライバの名前変更

DriverWizard で WinDriver Windows カーネル ドライバ (windrvr6.sys) の名前変更の作業の多くを自 動化できます。

注意:

 ドライバの名前を変更する場合、開発プラットフォームの CPU アーキテクチャ (32-bit / 64-bit) と WinDriver のインストーラをターゲット プラットフォームと一致させてください。

 署名済みの windrvr6.sys ドライバの名前を変更する場合、その署名は無効になります。その場 合、新しいドライバを署名するか、または署名なしのドライバを配布するかいずれかを選択することに なります。ドライバの署名と認証に関する情報は、セクション 15.3 を参照してください。名前変更したド ライバの署名のガイドラインは、セクション 15.3.2 を参照してください。

ヒント: このセクションの xxx への参照は、DriverWizard で生成したドライバ プロジェクトの名前に置き換 えてください。

次の手順に従い、WinDriver Windows カーネル ドライバの名前を変更します:

1. DriverWizard ユーティリティを使用して、Windows ハードウェア用のドライバ コードを生成します。生成

されるドライバ プロジェクトの名前には、ドライバ名 (xxx) が使用されます。生成されるプロジェクト ディ レクトリ (xxx) には、xxx_installation ディレクトリと以下のファイルおよびディレクトリが含まれま す。

redist ディレクトリ

xxx.sys - 新しいドライバ。windrvr6.sys ドライバのコピーを名前変更したもの。

注意: 生成されるドライバ ファイルのプロパティ (ファイルのバージョン、会社名、など) は、オリジナル の windrvr6.sys ド ラ イ バ の プ ロ パ テ ィ と 同 じ で す 。 以 下 に 説 明 の と お り 、 生 成 さ れ る

xxx_installation sys ディレクトリのファイルを使用して、新しいプロパティでドライバをリビル ドすることができます。

xxx_driver.inf - 変更済み windrvr6.inf ファイル。新しい xxx.sys ドライバのインストー ルに使用します。

必要に応じて、ファイル内の文字列やコメントの定義を変更するなど、追加の変更を加えることがで きます。

xxx_device.inf - DriverWizard で生成される標準的なデバイスの INF ファイルを修正したもの。

デバイスとドライバ (xxx.sys) を登録します。

必要に応じて、メーカー名やドライバの提供元を変更するなど、追加の変更を加えることができま す。

wdapi1170.dll - WinDriver API DLL のコピー。DLL は、ドライバの配布を簡単にするために、

ここにコピーされます。ドライバのメイン インストール ディレクトリとして、WinDriver\redist ディレ クトリの代わりに、生成される xxx\redist ディレクトリを使用できるようになります。

xxx_install.bat - xxx_driver.inf xxx_device.inf を イ ン ス ト ー ル す る た め に wdreg コ マ ン ド を 実 行 す る イ ン ス ト ー ル ス ク リ プ ト 。 こ の ス ク リ プ ト は 、 名 前 を 変 更 し た xxx_driver.sys ドライバのインストールと、このドライバと対象のデバイスの登録を簡素化するた めにデザインされています。

sys ディレクトリ: このディレクトリには、ドライバ ファイルのプロパティを変更するための、上級者ユー ザー向けのファイルが含まれています。

注意: ファイルのプロパティを変更する場合、WDK (Windows Driver Kit) を使用してドライバ モジュー ルをリビルドする必要があります。

xxx.sys ドライバ ファイルのプロパティを変更するには:

 開発 PC またはネットワーク上に WDK がインストールされていることを確認して、BASEDIR 環境変 数を WDK インストール ディレクトリに設定します。

 別のドライバ ファイル プロパティを設定するために、生成される sys ディレクトリの xxx.rc リソー ス ファイルを変更します。

 次のコマンドを実行してドライバをリビルドします:

ddk_make <OS> <ビルド モード (free/checked)>

たとえば、Windows XP 用ドライバのリリース版をビルドするには、次のコマンドを実行します:

ddk_make winxp free 注意:

ddk_make.bat ユーティリティは WinDriver\util ディレクトリにあります。イン ストール コマンドを実行すると、Windows によって自動的に識別されます。パラメー タなしで ddk_make.bat ユーティリティを実行すると、このユーティリティで利用可 能なオプションを表示します。

 選択したビルド OS と WinDriver のインストーラの CPU アーキテクチャを一致させ る必要があります。たとえば、WinDriver Windows 32-bit 版のインストーラを使用す

る場合、64-bit win7_64 OS フラグを選択することはできません。

xxx.sys ドライバをリビルドした後に、生成される xxx_installation\redist ディレクトリに 新しいドライバ ファイルをコピーします。

2. WinDriver 関 数 を 呼 び 出 す 前 に 、 ユ ー ザ ー モ ー ド ア プ リ ケ ー シ ョ ン が 新 し い ド ラ イ バ 名 で WD_DriverName() 関数を呼び出せるか確認してください。

サンプルおよび DriverWizard で生成される WinDriver アプリケーションには、既にこの関数の呼び出 しが含まれていますが、デフォルトのドライバ名 (windrvr6) を使用しているため、コード内で関数に 渡すドライバ名を新しいドライバ名に変更する必要があるので、ご注意ください。

3. ユーザーモード ドライバ プロジェクトが、WD_DRIVER_NAME_CHANGE プリプロセッサ フラグ (たとえ ば、DWD_DRIVER_NAME_CHANGE) を使用してビルドされていることを確認してください。

注意: サンプルおよび DriverWizard で生成される WinDriver プロジェクトおよび makefile では、デフォ ルトでこのプリプロセッサ フラグが設定されています。

4. セクション 14.2 の手順のとおり、オリジナルの WinDriver のインストール ファイルの代わりに、生成され る xxx_installation ディレクトリの変更済みファイルを使用して、新しいドライバをインストールし ます。

15.2.2 Linux ドライバの名前変更

DriverWizard で WinDriver Linux カーネル ドライバ (windrvr6.o/.ko) の名前変更の作業の多くを自

動化できます。

ヒント: このセクションの xxx への参照は、DriverWizard で生成したドライバ プロジェクトに名前に置き換え てください。

次の手順に従い、WinDriver Linux カーネル ドライバの名前を変更します:

1. DriverWizard ユーティリティを使用して、Linux ハードウェア用のドライバ コードを生成します。生成さ

れるドライバ プロジェクトの名前には、ドライバ名 (xxx) が使用されます。生成されるプロジェクト ディレ クトリ (xxx) には、xxx_installation ディレクトリと以下のファイルおよびディレクトリが含まれます:

redist ディレクトリ: このディレクトリには、WinDriver/redist インストール ディレクトリ内の ファイルのコピーが含まれています。ただし、windrvr6.o/.ko の代わりに、xxx.o/.ko ドラ イバをビルドするように変更されています。

lib ディレクトリおよび include ディレクトリ: オリジナルの WinDriver の library および include ディレクトリのコピー。サポートしている WinDriver Linux カーネル ドライバのビルド方法では、

redist ディレクトリと同じ親ディレクトリ以下にこれらのディレクトリを必要とするため、ここにコ ピーが作成されます。

2. WinDriver 関 数 を 呼 び 出 す 前 に 、 ユ ー バ ー モ ー ド の ア プ リ ケ ー シ ョ ン が 新 し い ド ラ イ バ 名 で WD_DriverName() 関数を呼び出せるか確認してください。

サンプルおよび DriverWizard で生成される WinDriver アプリケーションには、既にこの関数の呼び出 しが含まれていますが、デフォルトのドライバ名 (windrvr6) を使用しているため、コード内で関数に 渡すドライバ名を新しいドライバ名に変更する必要があるので、ご注意ください。

3. ユーザーモード ドライバ プロジェクトが、WD_DRIVER_NAME_CHANGE プリプロセッサ フラグ (たとえ ば、DWD_DRIVER_NAME_CHANGE) を使用してビルドされていることを確認してください。

注意: サンプルおよび DriverWizard で生成される WinDriver プロジェクトおよび makefile では、デフォ ルトでこのプリプロセッサ フラグが設定されています。Kernel PlugIn ドライバを作成した場合、Kernel

PlugIn ドライバのconfigure スクリプトの以下の行のコメントを外して、このフラグを追加する必要が

あります:

# ADDITIONAL_FLAGS="-DWD_DRIVER_NAME_CHANGE"

4. セクション 14.4 の手順のとおり、オリジナルの WinDriver インストール ファイルの代わりに、生成される xxx_installation ディレクトリの変更済みファイルを使用して、新しいドライバをインストールしま

す。インストールの一部として、セクション 14.4.1.1 の手順のとおり、新しいインストール ディレクトリの ファイルを使用して、新しいカーネル ドライバ モジュールをビルドします。

ドキュメント内 WinDriver v11.70 ユーザーズ ガイド (ページ 155-158)