Windows Vista without SP1 == Bad
For the last month I’ve been having issues writing a basic ping program that would always trigger a Blue Screen of Death (BSoD) when used in a multi-threaded way.
What I discovered was an abhorent oversight by Microsoft that should never have left a developers desk, let alone made it to release.
Using the ICMP.dll that comes with Windows revealed a successful ping, but an eventual system slow down followed by a consistent Blue Screen of Death.
Moving on to example code from around the net removed the BSoD but resulting in no echo reply.
I decided that the example code was too ugly to really work with and began adding ICMP to the Shock library. After a little re-factoring of the library it was ready and once again resulted in no echo reply.
Wireshark (formerly Ethereal) revealed that the echo was indeed being received, but it wasn’t being passed to the socket by the Windows IP stack.
After a lot of googling I accidently came across this forum post that mentions ICMP pings failing on Vista without SP1.
Apparently when I first ran my computer back in November of ’08 and updated Vista to SP1… I didn’t.
So then began the SP1 installation which revealed an error message I vaguely remembered. According to Microsoft, I’m not running the english version of Vista… O_o?
Apparently just having a language not supported by the default SP1 update causes the update to fail as it only supports 6 arbitrarily selected languages. So I have to uninstall the languages that ASUS put on my machine by default.
However… Vista can only uninstall 1 language at a time… and there’s 4 of them… and each uninstall requires a reboot which when combined with the configuration update at start up, takes 10 minutes per language pack…
So 1 hour later I’m ready to install SP1… and another 2 hours later (after almost destroying my XBox and actually destroying TDU) I have Vista SP1… which I thought I had all along.
And the result? No more BSoDs from using Microsoft’s own ICMP.dll and raw ICMP sockets finally get the echo reply sent to them.
How can this even get out the door? I knew Vista was bad… but wow.