2017-02-08 38 views
0

私は、USB3.0またはUSB2.0ポートに接続されているUSBデバイスを見つける方法を知りたいだけです。私はC++とwin32 APIを使用しています。感想を聞かせてください。どのようにデバイスがUSBポート2.0またはUSBポート3.00に接続されて見つけるか?

+1

1.デバイスが接続されているポートを確認します。 2. USB 3ポートであるかどうかを確認します。私はこれらが2つの異なる問題であると確信しています。私はあなたが検索した場合、両方をカバーする質問を見つけることにも賭けています。 –

答えて

0

あなたの質問がどのように表現されているかに基づいて、デバイスが接続されていることを知っていて、接続されているポートがUSB 3.0スピードをサポートしているかどうかを知る必要があると仮定します。

構造体USB_NODE_CONNECTION_INFORMATION_EXを見てください。具体的には、その中のスピードフィールドは、列挙型USB_DEVICE_SPEEDで定義された値に対応しています。 USB 3.0の場合、Speedの値はUsbSuperSpeedになります。

documentation pageには、IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EXリクエストを使用して、指定されたUSBポートに関連付けられた接続に関する情報を取得できると記載されています。

あなたも参考ドキュメントから次の発言を見つけることがあります。

  1. 何のデバイス接続がない場合、IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EXはちょうどポートに関する情報を返します。
  2. デバイスがポートに接続されている場合、IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EXは、の両方のに関する情報を返します。
  3. _構造は、USB_NODE_CONNECTION_INFORMATIONの拡張バージョンです。 1つの部材を除いて、2つの構造は同一である。拡張構造では、Speedメンバーはデバイスの速度を示します。

私はまた、Githubで利用可能なWindowsドライバサンプルの一部であるusbviewプロジェクトをシングルステップ実行することをお勧めします。

関連する問題