Einige Treiber verwenden Parameter in der Registrierung, um sich selbst zu konfigurieren, wenn sie beim Booten geladen werden. Ich kann diese Werte ändern und dann neu starten, aber ich würde gerne wissen, ob es möglich ist, das Neuladen des Treibers zu erzwingen, damit die Änderungen ohne Neustart wirksam werden.
Ich spreche insbesondere über den Grafiktreiber (nvidia).
Ich habe irgendwo gelesen, dass ein Aufruf über pINvoke() [User32.ll]::ChangeDisplaySettings() mit einer Auflösung von 640x480x8bits (die so niedrig ist, dass sie von einem modernen Treiber nicht unterstützt werden sollte) Windows dazu zwingt, den "Standard-VGA-Treiber" zu laden, und ein weiterer Aufruf mit der aktuellen Auflösung den Nvidia-Treiber erneut lädt.
Dies funktioniert jedoch nicht. Zumindest in Windows 7, auch wenn die niedrige Auflösung nicht als "unterstützt" angezeigt wird, reduziert das System den Bildschirm auf ein kleines Quadrat in der Mitte des Bildschirms und zeigt die niedrige Auflösung an, ohne den Nvidia-Treiber zu entladen.
Gibt es also eine .NET/Win32-API, einen Dienst, der neu gestartet werden muss, oder überhaupt eine Möglichkeit, ein Neuladen des Grafiktreibers zu erzwingen?
Vielleicht können Sie das Gerät programmgesteuert deaktivieren (wie Sie es im Geräte-Manager tun können) und wieder aktivieren?
Irgendeine Idee?
Herzlichen Dank.