テクニカル ドキュメント #132



Doc ID: 132
製品: WinDriver
Version:  11.90 およびそれ以降

WinDriver ベースのアプリケーションをターゲットの Windows PC へ配布する方法 - WinDriver v11.90 およびそれ以降

Windows ドライバ’の配布方法に関しては、WinDriver v8.1x - v11.8x で開発した Windows ドライバの配布方法に関しては、 テクニカル ドキュメント #120 を参照してください。
Windows ドライバ’の配布方法に関しては、WinDriver v8.0x で開発した Windows ドライバの配布方法に関しては、 テクニカル ドキュメント #130 を参照してください。


ドキュメント ノート:

  • 本ドキュメントで参照するすべての OS は、これらの OS を公式にサポートする WinDriver のバージョンのみにあてはまります (最新バージョンの WinDriver がサポートする OS は、 テクニカル ドキュメント #4 を参照してください。)。
  • 本ドキュメントで記載されている windrvr<version>.sys, windrvr<version>.inf, および wd<version>.cat ファイルは、開発環境の PC (WinDriver をインストールした PC) の WinDriver\redist ディレクトリ以下にあります。
    wdreg.exe / wdreg_gui.exe および difxapi.dllWinDriver\util ディレクトリ以下にあります。(wdreg ユーティリティのソースコードは WinDriver\samples\wdreg ディレクトリ以下にあります。)
  • WinDriver Windows のドライバ モジュール — windrvr<version>.sys (e.g., windrvr1190.sys) — と関連する INF ファイル — windrvr<version>.inf (e.g., windrvr1190.inf) の名前を変更することができます。WinDriver のユーザー マニュアルの説明のとおり、自分で作成した WinDriver のカタログ ファイル (xxx.cat) を使用して、Windows ログの取得用にドライバを申請したり、デジタル署名を取得することもできます。WinDriver が提供するファイルの名前を変更する場合には、本ドキュメントのこれらのファイルへの参照を名前を変更した新しいファイル名に置き換えてください。
  • wdreg.exewdreg_gui.exe ユーティリティは同じ機能を提供しています。インストール メッセージの表示方法 - GUI メッセージ (wdreg_gui.exe) かコンソール メッセージ (wdreg.exe) が異なるだけです。つまり、 wdreg_gui.exe の場合、以下の手順の wdreg.exe への参照を wdreg_gui.exe へ置き換えてください。wdreg ユーティリティは difxapi.dll DLL に依存します。

Back to Top


インストール ノート:

  • Windows にドライバをインストールする際には、必ず アドミニストレータ権限で実行してください。

  • ドライバの配布時に、新しいバージョンのドライバ windrvr<version>.sys (または名前を変更したファイル) を 古いバージョンのドライバで上書きしないように注意してください。 。
    WinDriver が提供する INF ファイル — windrvr<version>.inf (e.g., windrvr1190.inf) — は COPYFLG_NO_VERSION_DIALOG ディレクティブを使用します。既存のファイルがコピー元のソース ファイルより新しい場合、コピー先のディレクトリのファイルをコピー元のソース ファイルで上書きしないようにします。これに似た COPYFLG_OVERWRITE_OLDER_ONLY INF ディレクティブもあります。コピー先のファイルが新しいバージョンで優先される場合のみ、コピー先のディレクトリへコピー元のソース ファイルをコピーします。ただし、これらの INF のディレクティブの両方ともドライバのデジタル署名には関連性がないので、ご注意ください。Microsoft の INF CopyFiles Directive のドキュメントの説明のとおり、ドライバ パッケージをデジタル署名する場合、Windows はパッケージ全体をインストールし、対象のコンピュータに既にある他のバージョンをベースにパッケージのファイルの一部を除外することはしません。WinDriver のカーネル ドライバ — windrvr<version>.sys — を Authenticode 署名でデジタル署名します (ドライバの署名と証明に関する詳細な情報に関しては、WinDriver のユーザー マニュアルを参照してください)。
    NOTE
    WinDriver v11.90 以降では、デフォルトのドライバのモジュール名には、WinDriver のバージョンが含まれます (e.g., v11.90 の場合、windrvr1190.sys)。そのため、ドライバを以前使用したドライバ名に変更しなくても、古いバージョンのドライバと競合することはありません。

  • 32-bit と 64-bit の両方のターゲット プラットフォーム用にドライバを配布する場合、各プラットフォーム用にドライバのインストール パッケージを用意する必要があります。
  • 以前のバージョンの WinDriver からドライバを アップグレード する際、同じ名前に変更したドライバを使用する場合、古い WinDriver のサービスへのハンドルが開いていないこと、このサービスと動作するように登録した Plug-and-Play デバイスが接続されていないこと、および有効になっていないことを確認してください。ドライバを使用するアプリケーションも同様に閉じてください。古い Kernel PlugIn もアンインストールしてください (作成した場合):
    \> wdreg -name OLD_KP uninstall
    WinDriver を動作するように登録したデバイスを無効、アンインストール、または物理的に切断します。

Back to Top


インストール手順:

  1. windrvr<version>.sys windrvr<version>.infwd<version>.cat ファイル (v11.90 の場合、windrvr1190.sys, windrvr1190.inf, および wd1190.cat) を同じディレクトリにコピーします。

    注意:
    • wd<version>.cat を違う場所へコピーする場合、windrvr<version>.inf ファイルの CatalogFile エントリーを編集して、カタログ ファイルの場所を指定する必要があります。
    • wd<version>.cat カタログ ファイルを配布しないことも可能です。その場合、windrvr<version>.inf ファイルの CatalogFile の行を削除するかコメントアウトする必要があります。
      ただし、その場合、インストールで、ドライバの Authenticode のデジタル署名を使用しないのでご注意ください (詳細は WinDriver のユーザー マニュアルを参照してください)。
  2. 以下のように、wdreg.exe ユーティリティを使用して、WinDrive のカーネル モジュールをターゲットのコンピュータにインストールします:
    \> wdreg -inf install

    NOTE: wdreg では difxapi.dll DLL が必要です。

    TIP: wdreg.exedifxapi.dllwindrvr<version>.syswindrvr<version>.inf と同じディレクトリにコピーする場合、単純にインストール ディレクトリから以下のコマンドを実行して、ドライバをインストールします:
    install_dir:] wdreg -inf windrvr<version>.inf install
  3. Kernel PlugIn ドライバ (e.g., my_kp.sys) を作成した場合、Windows の drivers ディレクトリ (%windir%\system32\drivers) へドライバをコピーし、wdreg.exe ユーティリティを使用してインストールします:
    \> wdreg -name MY_KP install

    NOTE: ドライバ名の SYS 拡張子は外してください。
  4. Plug-and-Play デバイス (PCI/USB) の場合: デバイスの INF ファイルをインストールし、対象のデバイスを windrvr<version>.sys サービスと動作するように登録します (本ファイルは、通常、WinDriver の DriverWizard で生成します)。

    wdreg.exe ユーティティの install コマンドを使用して、INF ファイルを自動的にインストールします:
    \> wdreg -inf <path to device.inf> install
    preinstall wdreg.exe コマンドを使用して、まだ PC に接続していないデバイスの INF ファイルを事前にインストールすることもできます:
    \> wdreg -inf preinstall

  5. プロジェクトで wdapi<version>.lib ライブラリ (たとえば、 wdapi900.lib) を使用してる場合 - WinDriver のサンプル プロジェクトおよび DriverWizard で生成されたプロジェクト - wdapi DLL を配布する必要があります:

    • 32-ビット アプリケーション/DLL32 ビット ターゲット に配布する場合、 または 64 ビット アプリケーション/DLL64 ビット ターゲット に配布する場合: WinDriver\redist\wdapi<version>.dll (e.g. wdapi900.dll) をターゲットの %windir%\system32 ディレクトリに コピーしてください。

      注意: 32 ビット インストール プログラム を使用して、 64 ビット DLL%windir%\system32 ディレクトリにコピーする場合、 DLL を実際には、32 ビットの %windir%\sysWOW64 ディレクトリにコピーします。 その理由は、Windows x64 プラットフォームは、32 ビット コマンドから 64 ビット ディレクトリへの参照を 32 ビット ディレクトリへの参照に移行するためです。 64 ビット コマンドを使用して、32 ビット インストール プログラムの必要なインストール手順を実行することによって、 この問題を回避できます。WinDriver Windows x64 バージョンで展開される WinDriver\redist ディレクトリ以下の system64.exe を使用して、実行可能です。

    • 32 ビット アプリケーション64 ビット ターゲット に配布する場合: WinDriver\redist\wdapi<version>_32.dll (たとえば wdapi900_32.dll) をターゲットの %windir%\sysWOW64 ディレクトリにコピーし、ファイル名を wdapi<version>.dll に変更します。

  6. ドライバ アプリケーション/DLL をターゲットにコピーし、起動します!

Back to Top