いきなり「0xc0000005」というエラーコードが表示されて、
アプリケーションが終了したり、ブルースクリーンになったりします。
これはソフトウェアのトラブルなので、再現性は極めて高いはずです。
つまり、「0xc0000005」エラーが一度でも起こると、
以後、同じアプリケーションで何度も同様のエラーが発生するようになります。
「0xc0000005」エラーが意味するものは、メモリアクセス違反です。
メモリ上において、不正なアクセスがあったということです。
各プログラムは、メモリ上にデータを展開して動作しています。
たとえば、あるプログラムが確保した領域と別の場所にアクセスしようとしたりすると、
それはプログラムとして正しいふるまいではないため、
動作を停止し、「0xc0000005」エラーが表示されるわけです。
もし仮にそのような動作が許可されてしまうと、
他のプログラムも巻き込んでトラブルを起こしてしまいます。
だから、アクセス違反を起こしたプログラム単体を強制終了するようになっています。
そして、ユーザーには「0xc0000005」エラーを表示して、このことを伝えているのです。
つまり、「0xc0000005」エラーの原因は、ソフトウェアにある場合がほとんどなのです。
ただし、ハードウェアが原因でソフトウェアに影響を及ぼすこともありますから、
ソフトウェアだけが原因だと断定することはできません。
「0xc0000005」エラーは、原因の特定が困難なため、
エラーが出ないように対処するのも、なかなか難しい問題です。
ここでは、比較的ありがちなパターンだけ紹介しておきます。
前述のとおり、「0xc0000005」エラーの原因は、ソフトウェアにあることが多いですから、
「0xc0000005」エラーが発生したソフトウェアに更新がないか、
確認してみたほうがいいです。
ソフトウェア自体の不具合が原因で、
「0xc0000005」エラーが表示されることは、意外に多いです。
たとえば以下のように。
これは、Microsoftのソフトウェアに関するものの一例ですが、
参照先からも、「explorer.exe」等で「0xc0000005」エラーが発生する不具合があり、
対策のためのアップデータが数多く提供されていることがわかります。
それだけ、バグのないプログラムを提供することは難しいのだと思います。
言語らしいものがほとんどわからない私にとっては、未知の世界ですが。
プログラムは普通、エラーが起きないように作られているものですが、一部例外があります。
コンピュータウイルスと呼ばれるプログラムが、そうです。
ウイルスプログラムは、ウイルスとしての動作さえしてくれたらいいので、
その後エラーが出ようが出まいが、知ったこっちゃないのです。
むしろ、システムが破壊されてエラーが出るようになるのが大半だと思います。
現に、ウイルスが原因で「0xc0000005」エラーが出ることは多いです。
ソフトウェアに関するトラブルが起きた時の基本として、
エラーが表示されているプログラムの再インストールが挙げられます。
でも、上記内容が原因で「0xc0000005」エラーが出ている場合は、
いくらプログラムを再インストールしたところで、状況は改善されません。
なんとかして「0xc0000005」エラーが表示されている原因をつきとめ、
対策を考える必要があります。
プログラムそのものが自作のものでないとすると、
ユーザーの側でできるのは、ソフトウェアに更新がないか確認することと、
悪意のあるソフトウェアがインストールされていないかチェックすること、
さらにはソフトウェアをリセットすることぐらいです。
つまり極論を言えば、リカバリは「0xc0000005」エラーに対してかなり有効です。
もちろん、システムパーティションのデータもあわせてリセットされてしまいますけどね。