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?
0

1 Answer 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

Sign up to request clarification or add additional context in comments.

2 Comments

Thanks! One more question, is there a way to find out if Windows has assigned the USB device any letters (assuming the device is a drive and not a keyboard for instance) and if so, what they are/it is?
Nevermind, I found the solution to the comment question. link

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.