To view parent comment, click here.
To read all comments associated with this story, please click here.
On Windows XP, (at least for me) driver switching on the fly still works. After installing the NVIDIA driver for example, I just opt not to reboot. The driver is then active. Is this different on Vista?
This reboot after installation thing is more like a general measure. Software vendors do this because after something was installed, there may be not yet properly registered DLLs, or old stuff in RAM. Or not. Either way, better safe than sorry - and there you have your "recommended", sometimes even "necessary" reboot.
"This reboot after installation thing is more like a general measure. Software vendors do this because after something was installed, there may be not yet properly registered DLLs, or old stuff in RAM. Or not. Either way, better safe than sorry - and there you have your "recommended", sometimes even "necessary" reboot."
This is exactly the case, and it pertains to registration of the control panel updates, not the driver itself. You can safely ignore the reboot request when install Nvdia's current drivers (if you check in the device manager after installing the driver, you will see the new driver is in fact loaded). Furthermore, a logout and logon will even resolve the control panel registration issue.
As for the video driver restart and user versus kernel mode components, the user mode driver is essentially a sandwiched library (between the DX libs and the DXGK) of device specific functions which are then batched down (to kernel mode) to the DXGK and subsequently passed, in a controlled manner, to the miniport. The user mode driver is a memory mapped DLL in the user mode address space of the process and if the driver fails, the process dies, not the system.
However, even the kernel mode miniport is now dynamically restartable and there is a watchdog timer that periodically checks to make sure that the driver is still making progress and the GPU hasn't hung. If that is the case, it attempts what is known as a Timeout Detection and Recovery (TDR) wherein reinitializes the driver, resetting the GPU (this is the behavior where you get the pop-up in the system tray notifying you about a driver recovery).
One interesting side note is that sometimes a driver data structure used by the kernel mode miniport can become corrupt, forcing the system into a frequently recurring TDR cycle. In this instance, rolling back the driver and then reinstalling the current driver (without rebooting) will save you a forced reboot as that sequence completely unloads and reloads the driver.
-Mak






Member since:
2005-07-06
It's both. Though there's still a kernel mode miniport driver. If that fails, it can halt the system in some cases, but the bulk of the code is in user mode.
Not sure why NVIDIA et al., started forcing reboots. Earlier driver sets switched on the fly. Given the state of their drivers early on, maybe it was just easier for them to punt switching support and force the reboot. Or maybe there are issues related to their control panel applets which I don't believe were included in those drivers that supported switching.