2017-05-04 2 views
0

.NET 4.5 C# 프로젝트에서 작업 중이며 내 USB 장치가 동일한 USB 허브에 연결되어 있는지 확인해야합니다.C에서 동일한 USB 허브에 연결된 두 개의 USB 장치를 검색하는 방법 #

나는 맴돌 았고 Win32_USBHub 및 Win32_PnPEntity와 같은 많은 ManagementObjectCollection의 구조를 탐색하려고 시도했지만 위치 나 포트 체인 정보가있는 WMI 구조를 찾을 수 없습니다. 내가 저장하고 두 장치가에있는 경우 두 개의 ID의 식별을 비교하는 로직을 작성하려면 위의 정보에서 이제

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) 

:

은 내가 정보를 볼 수있는 USB 장치 트리 도구를 시도 동일한 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)

이 내 문제를 해결했다. 이제 포트 맵 대신 CM_Get_Parent를 사용하여 ParentPnpDeviceId를 사용하여 두 USB 장치가 동일한 USB 허브에 연결되어 있는지 감지합니다. 화려한 솔루션을 제공해 준 Simon에게 감사드립니다.

관련 문제