title: Force windows video driver reload. Is it possible at all?
body: <p>Some drivers use parameters written in the registry to configure themselves when they get loaded at boot time.
  I can modify those values and then reboot, but I would like to know if it is possible to force the driver reload, making the changes effective without rebooting.</p>
  
  <p>Specifically, I am talking about the video driver (nvidia).</p>
  
  <p>I read somewhere, that calling through pINvoke() [User32.ll]::ChangeDisplaySettings() with a 640x480x8bits resolution,(which is so low that it should not be supported by a modern driver) will force windows to load the "Standard VGA driver", and making another call with the current resolution will load the nvidia driver again.</p>
  
  <p>This does not work though. At least in Windows 7, even if the low res is not displayed as "supported" the system reduces the screen to a little square in the center of the screen, showing the low res wihtout unloading the nvidia driver.</p>
  
  <p>So, is there any .NET/Win32 API, service to restart, or any way at all to force a video driver reload?</p>
  
  <p>Perhaps programatically disabling the device (as you could do from the Device Manager) and reenabling it again?</p>
  
  <p>Any idea?</p>
  
  <p>Thanks a lot.</p>