none
WinUSBがWindowsVistaにのみインストールできない RRS feed

  • 質問

  • 標記の件、原因がわからず困っております。
    もしお分かりの方がいらっしゃいましたら教えてください。

    インストール条件
    ・WinUSBをDPinst.exeでインストールする
    ・INFファイルには特別なことは記載しておらず、MSのサンプルからClassやGUID、VID/PIDを変更したのみ
    ・Classは独自クラスで、GUIDはguidgen.exeで作成
    ・SPC署名済み
    ・対象デバイスが接続された状態でインストールを行う

    インストール時の挙動
    ・インストールウィザードの「インストールしています」の状態(ファイルコピー中の絵)が数分続いたあげく、インストールに失敗する
    ・DPINST.LOGを見ると「UpdateDriverForPlugAndPlayDevices」がタイムアウトしている

    INFO:   ENTER UpdateDriverForPlugAndPlayDevices...
    ERROR:  RETURN UpdateDriverForPlugAndPlayDevices. (Error code 0x5B4: タイムアウト期間が経過したため、この操作は終了しました。)

    その後互換性モードで実行すると以下のような状態になる
    ・時間はかかるがインストールには成功
    ・しかし再起動を要求される
    ・シャットダウン時に「更新プログラムを構成しています」というメッセージが出て、5分から10分程度待たされる

    XPと7ではすんなりとインストールできるので、何が悪いのか原因が全くつかめていない状況です。
    何か心当たりのある方は細かなことでもご返信ください。よろしくお願いします。
    • 移動 Mike Wang (MSCS) 2012年10月2日 12:59 (移動元:Windows デバイスドライバー開発)
    2011年2月16日 3:22

回答

  • ちょー亀レスですが、まだ解決されていないようでしたら、ご参考までに。。。

    既に "Driver Package Compatibility for Windows Vista" のドキュメントをご確認
    されたとのことですが、このドキュメント内で紹介されている下記ドキュメントは
    ご確認されましたでしょうか?

    ------------------------------------------------
    Debugging Device Installation in Windows Vista
    http://www.microsoft.com/whdc/driver/install/diagnose.mspx
    ------------------------------------------------

    上記ドキュメントでは、ドライバ インストール時に問題が発生した場合のデバッグ方法
    につて、具体的な説明があると思います。
    しかもドライバのデバッグとは異なり、User Mode でのデバッグ方法についても解説
    されていますので、問題の発生する Vista PC に WinDBG をインストールするだけで
    デバッグ環境を構築できると思います。

    今回投稿されている現象では、SetupAPI のログに DrvInst.exe でタイムアウトが
    発生しているとのことですが、DrvInst.exe や UpdateDriverForPlugAndPlayDevices() API
    は、結局のところ様々な Setup API や Configuration Manager API を組み合わせて
    ドライバ インストール機能を実現しているはずなので、ライブ デバッグを実施することで、
    「実際にどこの API コールでタイムアウトが発生しているか?」
    と言うことが分かれば、解決への大きな糸口になると思います。
    ですので、まだ解決していないようでしたら、是非ライブ デバッグにチャレンジされる
    ことをお勧めします。

    あと、この現象が3台の Vista PC で発生されているとのことですが、根本原因が解明
    されるまでは、少なくとも1台の環境は残しておいた方が良いのでは。。。と思います。
    仮に、OS を入れ変えて現象が改善されたとしても、この手の問題は大抵、実際に製品を
    リリースした後に、どこかのエンド様環境で発生するものだと思います。
    で、私の経験では、実際に再調査が必要になった時に限って、自分の手持ちの環境では再現
    できない。。。という悲しい事態になりがちです。

    以上、参考になりましたら幸いです。

    2011年3月4日 13:10

すべての返信

  • まきひさん、こんにちは。

    MSDN で UpdateDriverForPlugAndPlayDevices を見る限り、タイムアウトエラーが発生するというような記述がありませんため (可能性として発生するエラー一覧にERROR_TIMEOUT がありません)、想定しない動作となっているように思えます。下記 MSDN サイトを見る限り XP、Vista、7 でドライバの探し方が異なるようです。winusb は、Driver store フォルダに入っていますでしょうか。

    Where Windows Searches for Drivers
    http://msdn.microsoft.com/en-us/library/ff553973(VS.85).aspx

    また、Setupapi.log に関連する情報があるかもしれませんのでそちらもご確認いただいたほうが良いと思います。

    勘違いしておりましたらご容赦ください。

    2011年2月21日 10:51
  • > XPと7ではすんなりとインストールできるので、何が悪いのか原因が全くつかめていない状況です。

    このようなトラブルは見た事がありません。何となくですが、ハードウェアが怪しいです。

    インストールするデバイスとドライバ・パッケージは当然ながら同じで、ウィルス・チェック等の影響が無いとして、すんなりとインストールできるXPと7とWindows Vistaではハードウェアが同じマシンなのでしょうか。

    後はほかのマシンでどうかとか、プレインストール状態ではどうなるかとか、Windows Vistaをクリーンインストールしてみるとか、with SP2でクリーン・インストールしてどうかとかぐらいでしょうか。

    2011年2月22日 13:40
    モデレータ
  • peiriさん、Hidakaさん、ありがとうございます。返信遅くなってしまい申し訳ありません。

    SetupAPIのログは、DrvInst.exeがタイムアウトしていることくらいしか読み取れませんでした。プレインストールまではうまくいってドライブストアにコピーされているようなのですが。。

    ↓のドキュメント内のERROR_TIMEOUTのログと同じものが出力されているのですが、残念ながら原因を特定するには至りませんでした。

    http://msdn.microsoft.com/en-us/windows/hardware/gg463114.aspx

     

    今のところハードウェアの異なる3台のVistaマシンで同様の現象が起きております。同じハードウェアでOSを入れ替えての検証はできておりませんので、試してみたいと思います。

    2011年2月28日 0:59
  • ちょー亀レスですが、まだ解決されていないようでしたら、ご参考までに。。。

    既に "Driver Package Compatibility for Windows Vista" のドキュメントをご確認
    されたとのことですが、このドキュメント内で紹介されている下記ドキュメントは
    ご確認されましたでしょうか?

    ------------------------------------------------
    Debugging Device Installation in Windows Vista
    http://www.microsoft.com/whdc/driver/install/diagnose.mspx
    ------------------------------------------------

    上記ドキュメントでは、ドライバ インストール時に問題が発生した場合のデバッグ方法
    につて、具体的な説明があると思います。
    しかもドライバのデバッグとは異なり、User Mode でのデバッグ方法についても解説
    されていますので、問題の発生する Vista PC に WinDBG をインストールするだけで
    デバッグ環境を構築できると思います。

    今回投稿されている現象では、SetupAPI のログに DrvInst.exe でタイムアウトが
    発生しているとのことですが、DrvInst.exe や UpdateDriverForPlugAndPlayDevices() API
    は、結局のところ様々な Setup API や Configuration Manager API を組み合わせて
    ドライバ インストール機能を実現しているはずなので、ライブ デバッグを実施することで、
    「実際にどこの API コールでタイムアウトが発生しているか?」
    と言うことが分かれば、解決への大きな糸口になると思います。
    ですので、まだ解決していないようでしたら、是非ライブ デバッグにチャレンジされる
    ことをお勧めします。

    あと、この現象が3台の Vista PC で発生されているとのことですが、根本原因が解明
    されるまでは、少なくとも1台の環境は残しておいた方が良いのでは。。。と思います。
    仮に、OS を入れ変えて現象が改善されたとしても、この手の問題は大抵、実際に製品を
    リリースした後に、どこかのエンド様環境で発生するものだと思います。
    で、私の経験では、実際に再調査が必要になった時に限って、自分の手持ちの環境では再現
    できない。。。という悲しい事態になりがちです。

    以上、参考になりましたら幸いです。

    2011年3月4日 13:10
  • ものすごくいまさらですが自己レスしておきます。

    Windows Vista SP2には古いバージョンのUSBドライバインストールフレームワーク(Kernel-Mode Driver Framework v1.7)が入っているようで、WinUSBをインストールするためには新しいフレームワーク(v1.9)への更新が必要だったのが原因のようです。

    WinUSBのインストールを開始すると、インストーラの裏でフレームワークのインストールが行われ、WinUSBのインストーラはタイムアウトで失敗として終了し、OS再起動後に再度WinUSBのインストーラを実行すると正常にインストールされる、というのもこれで納得できました。

    2012年7月12日 6:14
  • makihiro さん
    情報ありがとうございます。複数バージョン(1.5, 1.7, 1.9) のフレームワークの混在利用は過去に何かも経験していて、これまで特に問題が無かったので、気付きませんでした。
    見かけ上がタイムアウトというのもわかり難いですね。

    今さらですが、このようなWDF Helper DLLの不足に関しては、setupapi.dev.log に記録されているはずですので今度機会があったらば確認してみて下さい。

    2012年7月17日 13:59
    モデレータ