« 究極のRX62Nボードの基板が製造完了 | トップページ | MITOUJTAGの最新版パッチをリリース »

2011.04.10

64bit版ドライバのインストーラを作ってみたけど

Pocket JTAG Cableの64bit版ドライバ用のインストーラを作っていたのですが、Windows 7 x64環境でハマりました。

なにがやりたいかというと、ユーザがデバイスドライバのインストールを行う際に、フォルダの位置を指定するダイアログを出さずに自動でインストールできるようにすること

特に、USBのドライバでは、USBのポートを差し替えるたびに、ドライバのINFとSYSのファイルを要求するダイアログが開いたりするので、かねてからこの動作をなんとかしたいと思っていました。

つまり↓こういうダイアログを出したくない
Dialog

初回のインストール時には「自動」でできて、USBポートを差し替えたときにも下記のような場所指定ダイアログを出ないようにしたいわけです。

このようなことをするためには、目的のドライバのsysファイルをあらかじめWindows\system32\driversフォルダにコピーしておくという作業が必要になります。
※また、INFファイルに工夫が必要です。INFファイルの詳しい書き方はJTAGひろば内の日記に書きました。

インストーラ中でのファイルのコピーがうまくいかなかったので、こんなツールを作ってみたけど、
Pockjinstall
それでもだめでした。

プログラムから見れば、ちゃんとコピーできているはずなのに、エクスプローラで見るとC:\Windows\system32\driversフォルダには目的のファイルがありません。

マイコンピュータ中を探したら、なんとC:\Windows\SysWOW64 配下にありました。

なるほど、WOW64という仕掛けがあるらしいです。
32bitアプリがC:\Windows\system32配下のディレクトリにアクセスしようとすると、C:\Windows\SysWOW64にリダイレクトされてしまうようです。巧妙なしくみですね。このため、C:\Windows\system32\driversフォルダに目的のファイルをコピーすることができなかったようです。

原因がわかってしまえば、あとは簡単なはず。
あと少しで64bit版のPocket JTAG Cableドライバが配布できるようになると思います。

|

« 究極のRX62Nボードの基板が製造完了 | トップページ | MITOUJTAGの最新版パッチをリリース »

コメント

コメントを書く



(ウェブ上には掲載しません)




« 究極のRX62Nボードの基板が製造完了 | トップページ | MITOUJTAGの最新版パッチをリリース »