title: How to restart USB Device without exiting Application
body: <p>In my application I use USB device for some operation, sometimes happens that the USB disconnected and connected again, after that I can't use the device from my application and to keep using it I need to restart the app, 
  How could I use it without restarting my application?</p>
  
  <p>after some help, I handled the event when I plug / unplug the device by adding the code"</p>
  
  <pre><code>    public enum WM : uint
      {
          /// &lt;summary&gt;
          /// Notifies an application of a change to the hardware configuration of a device or the computer.
          /// &lt;/summary&gt;
          DEVICECHANGE = 0x0219,
      }
  
      protected override void WndProc(ref Message m)
      {
  
          switch ((WM)m.Msg)
          {
              case WM.DEVICECHANGE:
                  MessageBox.Show(m.ToString(), "USB Detected",MessageBoxButtons.OK,MessageBoxIcon.Information);
                  break;
          }
          base.WndProc(ref m);
      }
  </code></pre>
  
  <p>the output is:</p>
  
  <blockquote>
    <p>{msg=0x219 (WM_DEVICECHANGE) hwnd=0x90242 wparam=0x7 lparam=0x0
    result=0x0}</p>
  </blockquote>
  
  <p>the problem is that I need more information that will indicate that it's the correct device</p>
  
  <p>tried to use SharpUSBLib dll for that purpose without success, what could i use for that purpose?</p>
  
  <p>Thanks</p>