title: Equivalent of "Scan For Hardware Changes" in device manager doesn't work after failed installation
body: <p>According to the <a href="http://support.microsoft.com/kb/259697/en-us" rel="nofollow noreferrer">docs</a> the C++ functions <code>CM_Locate_DevNodeA</code> and <code>CM_Reenumerate_DevNode</code> of <code>CfgMgr32.dll</code> should be the programatical equivalant to the menu item <em>scan for changed hardware</em> in the device manager. </p>
  
  <p>See <a href="https://stackoverflow.com/questions/2181525/is-there-an-api-call-to-start-a-scan-for-hardware-devices/2186058">2nd answer to this question</a> for managed code in C#.</p>
  
  <p>But in contrary to the docs, the programmatical approach doesn't work always, when the Device manager operation works. This is my case:</p>
  
  <ol>
  <li><p>User already plugged in the USB device </p></li>
  <li><p>No driver found </p></li>
  <li><p>My installer adds the right INF-File into the
  Windows/inf directory</p></li>
  <li><p><code>CM_Reenumerate_DevNode</code> doesn't cause the installation of the new    driver </p></li>
  <li><p>Wheras "Scan for hardware changes" in device manager starts    the
  installation with the new driver</p></li>
  </ol>