private PDManager() { var existing_devices = DeviceFinder.FindObjects("Win32_USBHub"); foreach (var device in existing_devices) { if (device.ContainsKey("PNPDeviceID")) { var device_id = device["PNPDeviceID"]; string VidPid = "", UniqueId = ""; if (USBUtil.pnp_device_id_to_vidpid_and_unique_id(device_id, ref VidPid, ref UniqueId)) { lock (this) vidpid_to_unique_id_.Add(VidPid, UniqueId); } } } var existing_controller_devices = DeviceFinder.FindObjects("Win32_USBControllerDevice"); foreach (var device in existing_controller_devices) { if (device.ContainsKey("Dependent")) { var device_id = device["Dependent"]; string VidPid = "", UniqueId = ""; if (USBUtil.dependent_to_vidpid_and_unique_id(device_id, ref VidPid, ref UniqueId)) { lock (this) if (!vidpid_to_unique_id_.ContainsKey(VidPid)) { vidpid_to_unique_id_.Add(VidPid, UniqueId); } } } } Refresh(); monitor_usbhub_devices_.DeviceAddedEvent += DeviceAdded; monitor_usbhub_devices_.DeviceDeletedEvent += DeviceRemoved; monitor_usbhub_devices_.Monitor("Win32_USBHub"); monitor_controller_devices_.DeviceAddedEvent += DeviceAddedConroller; monitor_controller_devices_.DeviceDeletedEvent += DeviceRemovedConroller; monitor_controller_devices_.Monitor("Win32_USBControllerDevice"); new Thread(Win32Util.check_for_dialogs_thread) { IsBackground = true }.Start(); }
public static List <Dictionary <string, string> > get_all_usb_pnp_device_info() { return(DeviceFinder.FindObjects("Win32_USBHub")); }
public static List <string> get_all_usb_dependent_ids() { var existing_devices = DeviceFinder.FindObjects("Win32_USBControllerDevice"); return(existing_devices.Select(d => d.ContainsKey("Dependent") ? d["Dependent"] : "--INVALID-DEVICE--").ToList()); }
// for testing - run into problems? please run this: /* * foreach ( var p in USBUtil.get_all_portable_paths()) * Console.WriteLine(p); * foreach ( var p in USBUtil.get_all_usb_pnp_device_ids()) * Console.WriteLine(p); * foreach ( var p in USBUtil.get_all_usb_dependent_ids()) * Console.WriteLine(p); */ public static List <string> get_all_usb_pnp_device_ids() { var existing_devices = DeviceFinder.FindObjects("Win32_USBHub"); return(existing_devices.Select(d => d.ContainsKey("PNPDeviceID") ? d["PNPDeviceID"] : "--INVALID-DEVICE--").ToList()); }