2017-05-04 52 views
0

.NET 4.5 C#プロジェクトで作業しています。USBデバイスが同じUSBハブに接続されているかどうかを調べる必要があります。Cで同じUSBハブに接続された2つのUSBデバイスを検出する方法#

私はグーグルで、Win32_USBHubやWin32_PnPEntityのような多くのManagementObjectCollectionの構造を探索しようとしましたが、場所やポートチェーン情報を持つWMI構造体が見つかりませんでした。

私が情報を見ることができるUSBデバイスツリーのツールを試してみました:

Device: 1 
Location IDs    : PCIROOT(0)#PCI(1A00)#USBROOT(0)#USB(1)#USB(3)#USB(1) 

Device: 2 
Location IDs    : PCIROOT(0)#PCI(1A00)#USBROOT(0)#USB(1)#USB(3)#USB(2) 

今私は、両方のデバイスが上にあるかどうかを確認するために、2つのIDのを保存して比較するためのロジックを記述する必要以上の情報から、同じUSBハブ http://www.uwe-sieber.de/usbtreeview_e.html

しかし、まだ理由NativeUsbLibでいくつかの問題のコードを実行することができません:

私はからUSBデバイスツリーのソースコードを探索してみました。

誰かが私にサンプルコードを教えてもらえますか?この情報をWMIまたはsetupapi.dllから入手するにはどうすればよいですか?リンクを以下に私を指しているため、私の親愛なる友人ルーカスへの最後

答えて

0

感謝:

Find USB drive letter from VID/PID (Needed for XP and higher)

これは私の問題を解決しました。ポートマップの代わりに、両方のUSBデバイスが同じUSBハブに接続されているかどうかを検出するために、CM_Get_Parentを使用してParentPnpDeviceIdを使用しています。 素晴らしいソリューションをご利用いただきありがとうございます。

関連する問題