スキップしてメイン コンテンツへ

 none
whckテスト USB Selective Suspendテストが通過できません RRS feed

  • 質問

  • お世話になります。

    現在ドライバの認証を取るためにwindows hardware certification kitによるテストを行っております。

    この中でUSB Selective Suspendの項目がのみ通過できません。

    どなたかアドバイスいただけないでしょうか?

    環境

    TEST server : windows server 2012 64bit HCK studio

    TEST computer : windows 7 64 bit(プレインストール機)

     上記環境にて仮想comポートドライバ(infファイルのみ)のテストを行っております。

    ドライバの中身はwindows標準のusbser.sysを参照しています。

    別のパソコンですが、windows 8.1 64bit(プレインストール機)の時は問題なく通過していました。

    テスト結果

    Excute USB Selective suspend testの項目に×がついており、usbhct_s.logを見ると、

    Error Expected device to return 18 bytes of data, but 0 bytes of data was returned.

    testsrc\driverstest\usb\usbhct\exe\selstest.cpp Line:623

    BOOL

    0X0

    Error 0x00000000

    この項目により判定がFailとなっているようです。

    この状態で認証ができず困っており、ご質問させていただいた次第です。

    2016年10月28日 1:26

回答

  • USB selective suspendに失敗する場合、原因は幾つか考えられます。

    1. デバイスがselective suspendに対応できていない
      この場合は、他のテストに失敗することも多いです。
      USBのパケットアナライザなどでパケットを調査することになります。

    2. 使用しているUSB hubの品質が低い
      市販のUSB hubでは、selective suspend testに失敗するものがあります。
      USB IFには、USBロゴを取得しているUSB hubが検索できます。
      http://www.usb.org/kcompliance/view

    今回は他のテストに成功しているので、2の可能性が高いと思います。
    幾つか手元にあるUSB hubで試してみてください。
    ただ、接続先を変えることになるので、他のテストもやり直すことになると思います。
    ご注意ください。

    ※selective suspendテストは失敗しやすいので、最初にテストすると良いです。

    • 編集済み Gothelauth 2016年10月28日 15:45
    • 回答の候補に設定 お馬鹿 2016年10月31日 1:52
    • 回答としてマーク GCBF 2016年10月31日 5:57
    2016年10月28日 3:49
  • とりあえず、USB Host Controller から該当デバイスまでのデバイス クラスまでのどこかに、3rd ベンダー製フィルタ ドライバが介在していないか、確認したほうがいいかもしれません。

    私事ですが。。。
    以前に "Disk Drive" クラスのフィルタ ドライバを作成した際に、USB メモリの取り外しおよび再接続時に正しく認識されない問題に遭遇したことがあるのですのですが、その時の原因はマウス デバイスを提供している某L社の、HID クラス フィルタ ドライバでした。
    (詳細を説明すると長くなるので割愛しますが、概要としてはその HID クラス フィルタ ドライバが DEVICE_NODE 構造体情報から他の USB デバイスの接続状況をチェックしていて、HID デバイスとは全く関係のない "Disk Drive" クラスへのリクエストに対しても、色々とちょっかいを出していた。。。という落ちでした。)
    WHQL や WHCK でテストを実施される際には、マイクロソフト社製とテスト対象以外のドライバは、可能な限り排除した環境で実施されることをお勧めします。
    (もちろん Gothelauth さんが指摘されているように、テスト対象デバイスや USB Hub Device の影響も考えられますので、それらに関して問題が無かったら。。。という前提ではありますが。)

    • 回答の候補に設定 星 睦美 2016年10月31日 0:12
    • 回答としてマーク GCBF 2016年10月31日 5:58
    2016年10月28日 8:49

すべての返信

  • USB selective suspendに失敗する場合、原因は幾つか考えられます。

    1. デバイスがselective suspendに対応できていない
      この場合は、他のテストに失敗することも多いです。
      USBのパケットアナライザなどでパケットを調査することになります。

    2. 使用しているUSB hubの品質が低い
      市販のUSB hubでは、selective suspend testに失敗するものがあります。
      USB IFには、USBロゴを取得しているUSB hubが検索できます。
      http://www.usb.org/kcompliance/view

    今回は他のテストに成功しているので、2の可能性が高いと思います。
    幾つか手元にあるUSB hubで試してみてください。
    ただ、接続先を変えることになるので、他のテストもやり直すことになると思います。
    ご注意ください。

    ※selective suspendテストは失敗しやすいので、最初にテストすると良いです。

    • 編集済み Gothelauth 2016年10月28日 15:45
    • 回答の候補に設定 お馬鹿 2016年10月31日 1:52
    • 回答としてマーク GCBF 2016年10月31日 5:57
    2016年10月28日 3:49
  • とりあえず、USB Host Controller から該当デバイスまでのデバイス クラスまでのどこかに、3rd ベンダー製フィルタ ドライバが介在していないか、確認したほうがいいかもしれません。

    私事ですが。。。
    以前に "Disk Drive" クラスのフィルタ ドライバを作成した際に、USB メモリの取り外しおよび再接続時に正しく認識されない問題に遭遇したことがあるのですのですが、その時の原因はマウス デバイスを提供している某L社の、HID クラス フィルタ ドライバでした。
    (詳細を説明すると長くなるので割愛しますが、概要としてはその HID クラス フィルタ ドライバが DEVICE_NODE 構造体情報から他の USB デバイスの接続状況をチェックしていて、HID デバイスとは全く関係のない "Disk Drive" クラスへのリクエストに対しても、色々とちょっかいを出していた。。。という落ちでした。)
    WHQL や WHCK でテストを実施される際には、マイクロソフト社製とテスト対象以外のドライバは、可能な限り排除した環境で実施されることをお勧めします。
    (もちろん Gothelauth さんが指摘されているように、テスト対象デバイスや USB Hub Device の影響も考えられますので、それらに関して問題が無かったら。。。という前提ではありますが。)

    • 回答の候補に設定 星 睦美 2016年10月31日 0:12
    • 回答としてマーク GCBF 2016年10月31日 5:58
    2016年10月28日 8:49
  • Gothelauth さん

    ご回答ありがとうございます。

    順序に関しては全く考慮せず、テスト項目のすべてにチェックを入れてrunしていました。

    テストパソコンのクリーンインストールを行い、ご指摘の通りに最初にselective suspendテストを実行したところ通過しました。

    大変助かりました。ありがとうございます。



    2016年10月31日 5:50
  • お馬鹿 さん
    ご回答ありがとうございます。

    ご指摘の通りにテストパソコンのクリーンインストールも行い、テスト順序の変更(Gothelauth さんのご指摘)をすることによりテストを通過することができました。

    ありがとうございます。


    • 回答としてマーク GCBF 2016年10月31日 5:58
    • 回答としてマークされていない GCBF 2016年10月31日 5:58
    • 編集済み 星 睦美 2016年10月31日 6:39 お馬鹿 さんが回答しました。
    2016年10月31日 5:58