强制Windowsvideo驱动程序重新加载。 有没有可能?

一些驱动程序使用registry中写入的参数来在启动时加载它们。 我可以修改这些值,然后重新启动,但我想知道是否有可能强制驱动程序重新加载,使更改有效,无需重新启动。

具体来说,我正在谈论video驱动程序(NVIDIA)。

我在某个地方读过,通过640x480x8bits分辨率的pINvoke()[User32.ll] :: ChangeDisplaySettings()来调用(它太低以至于不应该被现代驱动程序所支持)将强制windows加载“Standard VGA驱动程序“,并使用当前分辨率再次调用将再次加载nvidia驱动程序。

这虽然不起作用。 至less在Windows 7中,即使低分辨率不显示为“支持”,系统会将屏幕缩小到屏幕中央的一个小方块,显示低分辨率,但不会卸载nvidia驱动程序。

那么,有没有.NET / Win32的API,服务重新启动,或者任何方式来强制video驱动程序重新加载?

也许以编程方式禁用设备(就像你可以从设备pipe理器中做的那样)并重新启用它。

任何想法?

非常感谢。

Solutions Collecting From Web of "强制Windowsvideo驱动程序重新加载。 有没有可能?"

我终于做到了。 遵循禁用/重新启用实际工作的设备的想法。

当然,问题是从设备管理器禁用视频卡设备不是一个好主意,因为也许你不能重新启用它。

以编程方式执行,虽然不会显得太不安全。 理论上,假设应用程序已成功禁用该设备,重新启用它不应该成为问题。

我在这里找到了一个非常棒的课程来完成这个任务,感谢Justin Grant。

视频驱动程序在重新启用视频设备时重新加载。

希望它可以帮助别人。

这取决于司机。 如果它被写入来支持停止和重新启动,那么这是可能的; 否则,你运气不好。 如果您发现服务的名称,您可以执行“sc stop [name]”,后跟“sc start [name]”。 Win32等价物是OpenService / ControlService。