質問: いつも活用させていただいております。 早速ですが、今接続されているUSB機器が、USB3.0として認識しているのかを 調べる方法を探しています。 現状、WinDDK(7600.16385.1)で、VID/PIDやデバイスパス情報の取得するアプリケーションに 追加したいと考えているのですが、うまく取得する方法を見つけることが出来ませんでした。 そこで確認ですが、WinDDK(7600.16385.1)で、USB1.1/2.0/3.0を見分ける方法はあるのでしょうか? ※WinDDK8.1だとできそうな記載もあったのですが、開発環境がVisual Studio 2010は非対象のような記載もありました。 Microsoft Windows Driver Kit (WDK) ※WinDDKを8.1に変更することで、既存アプリで副作用がないのか調査が必要なので、 可能であれば、現行のWinDDKで対応出来たらと思っています。 (まずはVisual Studio 2013以降で対応出来るのかの検証も必要ですが、、、) Visual Studio 2010 + WinDDK 7600.16385.1 で可能なのかを教えて頂ければと思います。 (また、その方法も含め、、、、) 申し訳ありませんが、協力よろしくお願いします。 --- 開発環境:Visual Studio 2010 (C++) OS :Windows7 (32bit/64bit)
回答: usbview.aspx)というのがDebugging Tools for Windowsというのをインストールすると入手できます。 それで確認すると > > Protocols Supported: > > USB 1.1: yes > > USB 2.0: yes > > USB 3.0: no > > > こんな感じで表示されるのでusbviewのソースを参考にしてみてはいかがでしょうか。 ソースコードはWDKのサンプルか、Githubにあります。 usbviewをビルドしたことはないのですが、VIDとかPIDとかの情報を取得するだけであればSetup系APIとDeviceIOControlで取得できるのでWindows SDKの範囲内で取得できます。