Beware threaded ICMP on Vista

I wrote about this issue a while ago, but the post was, well… a bit of a rant.

Issue

Attempting to use ICMP echo requests (and possibly other ICMP functionality) from multiple threads in vanilla Vista (without any service packs) results in system slow down and a quick BSoD.

This occurs if you are manually creating ICMP packets or using Microsoft’s ICMP dll.

This only occurs if you attempt to use ICMP functionality from multiple threads.

Also be aware that the Vista SP1 service pack can fail to install from the Windows Update application if any languages not supported by the default SP1 installer are present in the system. This includes Chinese which is often included in default Windows installations. In my case, this error resulted in SP1 failing to install and it also being removed from the Windows Update software list which made me believe that it had succeeded.

Suggestions

If you use any ICMP functionality, test your application on Vista without SP1.

If your application exhibits the above behavior do the following:

  • In your application
    • Add code to detect the operating system the application is running on.
    • If the OS is Vista without any service packs, display an error message detailing the issue and how to remedy it.
    • Provide the ability to exit the application.
    • Provide the ability to ignore the warning and continue execution at their own risk. This will cater to false positives.
    • Provide the ability to remember the user’s choice.
    • If the application does not shutdown successfully, assume a BSoD occured, ignore the user’s last choice and show the prompt again.
  • On your download page
    • Place information and instructions for users to read.
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: