The error is related to Data Execution Prevention, btw. I think your MS Engineer was blowing smoke up your butt because he didn’t know how to fix it.
Here’s how 99 percent of Vista users can fix a StackHash failure. I’ll walk you through it step by step:
Method A: (method does not work on x64 systems?)
1. Open your Start menu and click Control Panel
2. Browse to “System Maintenance” then “System”
3. In the left panel, select “Advanced System Settings” from the available links
4. You should now see the System Properties Window, which will have three sections. The top section is labeled “Performance” and has a “Settings” button. Click this button.
5. Select the “Data Execution Prevention” tab.
6. Select the option which reads “Turn on DEP for all programs and services except those I select”
7. Use the “Browse” button to locate the executable file for the application you were trying to start when you received the StackHash error, and click Open to add it to your exceptions list.
8. Click Apply or OK to commit your changes.
Remove Vista, and either downgrade to XP, or upgrade to Linux.
While I am a Linux fan (currently Fedora 10 w/ enlighenment), DEP is NOT really an OS feature… it’s a CPU feature that the kernel can chose to support. Linux has supported this for awhile now, so calling this a Vista problem is misleading.
From an OS kernel perspective, I think Vista is definitely an improvement over XP and I don’t recommend downgrading. However, I will not “take a bullet” for the shell. Hopefully this continues to improve over successive versions.
As to DEP:
Even if Chris was right, and I don’t agree that DEP is the issue, turning off DEP for an app. every time one crashes with a StackHash error in the report, is like trying to kill a fly with a sledgehammer. And, it can be argued, missing the fly and destroying the table. I have seen many of these reports and often the crash occurs when memory is low, whether that’s directly related to the cause or just a stressing factor. This is not surprising, since many crashes are caused by an illegal memory operation. This is often related to a driver trying to execute an operation which is unadvisable in Windows. However, these operations DON’T EVEN ALWAYS result in crashes.
The purpose of DEP exceptions is to allow you to run programs which simply will not run with DEP enabled. Enabling a DEP exception every time you get a single crash is like trying to stay heavily medicated to avoid an occassional minor pain. And it probably won’t work, anyway.