I can catch when usb device is connected with Win32_DeviceChangeEvent
but there are only 3 properties allowed to view
class Win32_DeviceChangeEvent
You can use ORMi to create a watcher so you can get information about any new device:
WMIHelper helper = new WMIHelper("root\\CimV2");
WMIWatcher watcher = new WMIWatcher("root\\CimV2", "SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_PnPEntity'");
watcher.WMIEventArrived += Watcher_WMIEventArrived;
And then you can watch for the events:
private static void Watcher_WMIEventArrived(object sender, WMIEventArgs e)
{
//DO YOUR WORK
}