第 8 章 特定のチップ セットの拡張サポート
15.2 WinDriver カーネル ドライバの名前変更
WinDriver API は、主要なドライバ機能を提供し、ユーザーモードから特定のドライバ ロジックをコード化で
きます [1.6]。windrvr6.sys/.dll/.o/.ko (OS により異なる) カーネルドライバモジュール内に実装
されています。
Windows および Linux では、WinDriver カーネル モジュールの名前を任意のドライバ名に変更し、
windrvr6.sys/.o/.ko の代わりに配布することができます。次のセクションでは、サポートしている OS ごとにドライバ名の変更方法を説明しています。
名前変更した WinDriver カーネルドライバは、windrvr6.sys/.o/.ko カーネルモジュールと同じ PC にインストールできます。また、名前変更した複数の WinDriver ドライバを同じ PC にインストールすることも できます。
ヒント: インストール PC の他のドライバとの競合を回避するために、ドライバには一意な名前を付けてくださ い。
15.2.1 Windows ドライバの名前変更
DriverWizard で WinDriver Windows カーネル ドライバ (windrvr6.sys) の名前変更の作業の多くを自 動化できます。
注意: 署名済みの 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) を登録します。必要に応じて、メーカー名や ドライバの提供元を変更するなど、追加の変更を加えることができます。
− wdapi1010.dll - WinDriver API DLL のコピー。DLL は、ドライバの配布を簡単にす るために、ここにコピーされます。ドライバのメインインストールディレクトリとして、
WinDriver\redist\ディレクトリの代わりに、生成される xxx\redist\ディレクトリ を使用できるようになります。
○ \sys ディレクトリ: このディレクトリには、ドライバ ファイルのプロパティを変更するための、上 級者ユーザー向けのファイルが含まれています。
注意: ファイルのプロパティを変更する場合、WDK (Windows Driver Kit) を使用してドライバ モジュールをリビルドする必要があります。
xxx.sys ドライバファイルのプロパティを変更するには:
i. 開発 PC またはネットワーク上に WDK がインストールされていることを確認して、
BASEDIR 環境変数を WDK インストール ディレクトリに設定します。
ii. 別のドライバファイルプロパティを設定するために、生成される\sys ディレクトリの xxx.rc リソースファイルを変更します。
iii. 次のコマンドを実行してドライバをリビルドします。
ddk_make <OS> <ビルド モード (free/checked)>
たとえば、Windows XP 用ドライバのリリース版をビルドするには、次のコマンドを実行し ます。
ddk_make winxp free
注意: ddk_make.bat ユーティリティは WinDriver\util\ ディレクトリにあります。
インストール コマンドを実行すると、Windows によって自動的に識別されます。
xxx.sys ドライバをリビルドした後に、生成される xxx\redist\ディレクトリに新しいドライバ ファイルをコピーします。
2. WinDriver 関数を呼び出す前に、新しいドライバ名を使用して、アプリケーションで
WD_DriverName() 関数を呼び出せるか確認してください。
サンプルおよび DriverWizard で生成される WinDriver アプリケーションには、既にこの関数の呼 び出しが含まれています。ただし、デフォルトのドライバ名 (windrvr6) を使用しているため、関 数に渡すドライバ名を新しいドライバ名に変更する必要があります。
3. ユーザーモードドライバプロジェクトが、WD_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 では、
デフォルトでこのプリプロセッサフラグが設定されています。
4. セクション 14.4 の手順に従い WinDriver インストールファイルの代わりに、生成される
xxx_installation/ ディレクトリの変更済みファイルを使用して、新しいドライバをインストールしま す。インストールの一部として、セクション 14.4.1 の手順に従い新しいインストールディレクトリのファイ ルを使用して、新しいカーネルドライバモジュールをビルドします。