Computer stupidity: NVidia drivers and the BSOD

Instead of finding a utility today, this is about a recent computer stupidity I had to deal with. Warning: this gets into computer geekery, so if you aren’t interested then you should pass on this one.

I recently purchased a third monitor for my home computer. Why, you ask? Well, the extra screen area is useful, especially when it comes to using programs like Lightroom, but yes, the coolness factor of having three monitors staring back at me also played a part. I was looking forward to getting things up and running, but before long I ran into a show-stopper of a problem.

But before I get too far into that, some background and context is needed. I run Windows XP Professional 64-bit edition on my computer and have ever since I built its first incarnation almost four years ago; it currently has SP2, which turns out to be very important.. The two monitors I already had were running on an ATI Radeon HD 4800 video card, with no problems. The motherboard I have is an Asus M3N78-EM with integrated NVidia GeForce 8300 video.

I never used the integrated NVidia video before since I had the Radeon card, but the new monitor meant that I would have to enable it and use it for monitor #3. I did so, and at first, everything appeared normal: desktop on all three monitors, things working well enough. But when I started up a program with video, bam, BSOD: “The driver is mismanaging system PTEs”. After more experimentation, it appeared that ANY video on any monitor would crash the system, even something as simple as looking at the radar loop on the NOAA website. Obviously, this wouldn’t fly.

So I did some research, and it didn’t take long at all before I determined that this is a known problem, and a widespread one at that: turns out that people running Windows XP 64-bit with SP2 see this all the time with NVidia drivers. Solutions were very few and far between, though, and plenty of people were very upset that NVidia had not come up with a fix despite many complaints, and despite the time that had elapsed: I found reports of the bug as early as March 2007.

I tried mucking about in the registry as described here, but it did no good. I tried removing all of the video drivers and using Driver Cleaner and CCleaner to get everything out, then installing the latest drivers, also no good. Most of my research devolved into finding threads like this, where there is no solution and everybody vows never to buy NVidia again. Finally, though, I found this magic thread, and a possible solution.

I downloaded the file and gave it a try. At first, when I tried to copy the SP1 version of the videoprt.sys file, Windows System File Protection service simply replaced it with the current, SP2 version. After booting into Safe Mode, though, I was able to make the switch stick, and voilà! Three monitors without crashing!

Thus, my solution was as follows:

  1. Download the SP1 version of videoprt.sys
  2. Boot into Safe Mode.
  3. Rename the existing videoprt.sys files in both Windows\system32\drivers AND Windows\system32\dllcache to something else.
  4. Copy the SP1 version of videoprt.sys to both of the above folders.
  5. Reboot into normal mode.

Who’s to blame here? Well, despite the fact that NVidia says this is an “Operating System” issue, the fact that they let this go on for years without a real driver fix puts the blame squarely on them. Yes, Windows Update breaks software. It will continue to break software. But when this happens, it is the duty of the software makers to fix it, not blame Microsoft. I doubt that the technical issues surrounding the fix were so daunting that NVidia could not have figured out a solution. That they didn’t shows that they don’t care much for their users, even if Windows XP 64-bit users make up just a tiny slice of their user universe.

As for Microsoft, I like the concept of System File Protection. I don’t like that I can’t easily get around it or explicitly say “Yes, I know what I’m doing, get out of my way”. I realize that given your security philosophy, System File Protection is useful in protecting Windows against malicious code, but it seems hacktacular. Find a better way.

Finally, I’ve learned my lesson: I won’t be buying NVidia anymore either.