2

I am looking for a way in C# to have a persistent (across when end-users unplug a hub/restart their computer) identifier for USB slots, more specifically, SD card readers. Drive letters are not always assigned to the same slot, but I need a way to identify Slot A physically; as once I can identify it, I can make the connections to a drive letter.

So my question(s):

  1. Is this possible?
  2. If so, how would I go about getting these identifiers?
4

1 回答 1

1

WMI class Win32_USBHub.

ManagementObjectSearcher sidQuery = new ManagementObjectSearcher("Select * From Win32_USBHub");
ManagementObjectCollection results = sidQuery.Get();
List<String> deviceID = new List<String>();
foreach (ManagementObject result in results)
{
   deviceID.Add(result["DeviceID"]);
}

See more here : Get List of connected USB Devices

Documentation about Win32_USBHub : http://msdn.microsoft.com/en-us/library/windows/desktop/aa394506(v=vs.85).aspx

于 2013-08-01T15:03:02.267 回答