EXCEPTION_ACCESS_VIOLATIONエラーの修正方法
EXCEPTION_ACCESS_VIOLATION への対処は少々面倒です。これは通常、プログラムが本来アクセスすべきでないメモリ領域にアクセスしたり書き込みをしようとしたりしたときに発生するからです。次のようなメッセージが表示されることがあります。
- 「アクセス違反」例外が発生しました
- スレッドはアクセスできないデータを読み取ろうとしました
- スレッドがユーザーモードのデータ実行防止(DEP)違反を引き起こしました
これはゲームで最もよく見られますが、Visual Studioなどの開発ツール、Javaアプリ、あるいは特定のバックグラウンドプロセスにも影響することがあります。問題は、原因が多岐にわたることです。例えば、不良ドライバー、他のソフトウェアとの競合、グラフィック設定が高すぎる、あるいはRAMの不具合などです。古いドライバーから破損したゲームファイルまで、あらゆる問題が絡み合う可能性があるため、トラブルシューティングは複雑になりがちです。
WindowsでEXCEPTION_ACCESS_VIOLATIONエラーを修正する方法
グラフィックドライバーを更新する
これはかなり明白なことですが、GPUドライバーが古くなったり破損したりしている場合、メモリに不正アクセスしようとして違反が発生する可能性があります。一部の環境では、簡単なアップデートでこれらのエラーの原因となるバグを修正できる場合があります。
- 公式ドライバー ページ ( AMD、NVIDIA、またはIntel)にアクセスします。
- GPU モデルを見つけて、最新のドライバーをダウンロードしてください。
- インストーラーを実行し、指示に従って再起動します。
バグがひどい場合は、何度か試したり、クリーンインストール(「カスタムインストール」>「クリーンインストール」を選択するなど)が必要になることもあります。GeForce ExperienceやAMD Radeon Softwareなどのソフトウェアには通常、アップデートの確認や設定のリセットを行うオプションが組み込まれていますので、利用可能な場合はそれらを使用してください。
サウンドドライバーを再インストールまたは更新する
サウンドドライバーは見落としがちですが、特にオーディオや特定のゲーム機能に不具合がある場合、サウンドドライバーも重要な役割を果たします。Windowsをアップデートすれば、多くのドライバーが更新されますが、ドライバーに不具合がある場合は、手動で再インストールすることで問題が解決することもあります。
- プレスWindows key + R
- 入力し
devmgmt.mscて Enter キーを押すと、デバイス マネージャーが開きます。 - メニューから、[表示] > [非表示のデバイスの表示] をクリックします。
- サウンド、ビデオ、およびゲーム コントローラーを展開します。
- 内部の各デバイスを右クリックし、[デバイスのアンインストール]を選択します。
- 完了したら、コンピューター名を右クリックし、 「ハードウェア変更のスキャン」を選択します。これにより、ドライバーが更新/再インストールされます。
すべてのオーバーレイを無効にする(Steam、Discord、NVIDIA など)
ちょっと奇妙ですが、オーバーレイはメモリに干渉することがあります。特にゲームが書き込みしようとしているアドレスと同じアドレスをオーバーレイが使用している場合、その影響は大きくなります。Discord、Steamなどのアプリ、またはGPUのオーバーレイを無効にすると改善する可能性があります。マシンによっては、これでクラッシュがすぐに解消される場合もありますが、そうでない場合もあります。
- Discordの場合: 設定 > オーバーレイ > オフに切り替える
- Steamの場合:Steam > 設定 > ゲーム内 > 「ゲーム中にSteamオーバーレイを有効にする」のチェックを外す
- NVIDIAの場合: GeForce Experience > 設定 > ゲーム内オーバーレイ > 無効にする
- AMDの場合: Radeon設定 > 設定 > Radeonオーバーレイをオフにする
ゲームのOptions.iniファイルを作成または修正する
特定のゲームを起動しようとしてこのエラーでクラッシュする場合は、options.ini 設定ファイルが不足していないか確認してください。場合によっては、ファイルを更新したり調整したりすることで問題が解決することがあります。ゲームによって多少異なりますが、一般的な手順は次のとおりです。
- ファイルエクスプローラーを開く(Win + E)
- 「表示」をクリック> 「ファイル名拡張子」をチェック
- 実行(Win + R)を開き、入力し
%appdata%てEnterキーを押します。 - ゲームのフォルダを見つけます(多くの場合、ゲームの名前または開発者のフォルダにあります)
- 右クリック >新規>テキストドキュメント
- 名前を付ける
Options.ini - これを開いて設定を貼り付けたり編集したりします(競合の原因となる可能性のある機能を無効にするなど)。
例えばMinecraftでは、 に変更するFboEnable: TrueことでFalseクラッシュがいくつか修正されました。正しい値については、必ずフォーラムや専用Wikiを確認してください。
Windowsが最新であることを確認する
.NET FrameworkやVisual C++再頒布可能パッケージなどのWindowsコンポーネントが古くなっている場合、このエラーが発生することがあります。アップデートを実行すると、メモリのバグや互換性の問題を修正する新しいパッチが適用される場合があります。
- プレスWindows key + I
- Windows Updateへ移動
- アップデートの確認をクリックし、利用可能なものをインストールします
- プロンプトが表示されたら再起動してください
また、オプションのアップデートやドライバーのアップデートも確認してください。こうしたちょっとした追加作業で、頑固なバグが修正されることもあります。
メモリ診断でRAMをテストする
メモリエラーは意外と起こりやすいので、Windowsメモリ診断ツール(mdsched)を実行してRAMの問題がないか確認してください。RAMに不具合があったり、スロットに問題があったりすると、ランダムアクセス違反が発生します。
- プレスWindows key + R
- と入力して
mdschedEnterキーを押します - 「今すぐ再起動して問題がないか確認する」を選択します
PCを再起動し、テストを実行します。時間がかかる場合があります。エラーが表示された場合は、RAMスティックまたはスロットを交換してみてください。そうでない場合は、故障したRAMスティックの交換が必要になる可能性があります。
オーバークロックを無効にするかデフォルトに設定する
GPUやRAMをオーバークロックした場合、メモリアクセスエラーが発生する可能性があります。これは、システムの限界を超えた状態と似ています。オーバークロックソフトウェアを無効にし、デフォルトのクロック速度に戻してください。特にオーバークロック後にクラッシュが発生した場合は、標準設定の方が常に安全です。
グラフィック設定を調整するか、専用GPUを使用する
ゲームが統合グラフィックで動作している場合、または設定が高すぎる場合も、メモリアクセスの問題が発生する可能性があります。システム設定でグラフィック品質を下げるか、ゲームが専用GPUを使用するように強制してください。
- 設定>ディスプレイ>グラフィック設定に移動します(スタートメニューで「グラフィック設定」を検索してください)
- ゲームを追加してください。リストにない場合は、高パフォーマンスを選択してください。
NVIDIA/AMD コントロール パネルの場合、エラーが続く場合は、アンチエイリアシングなどの機能を低下させるか、解像度を下げてください。
ゲームまたはソフトウェアを再インストールする
ゲームファイルが破損していたり、インストールが不完全だったりすることが原因となる場合があります。アンインストールし、残っているファイルAppData(特にローカルとローミング)を削除してから、公式ソースから最新バージョンを入手して再インストールしてください。すべてが解決するとは限りませんが、かなり改善される可能性があります。
DEP設定を調整する – 最後の手段
データ実行防止(DEP)に関するメッセージが表示された場合は、ゲームで無効にすることができます。ただし、これによりシステムの脆弱性が高まるため、一時的な対策にとどめてください。
- 実行(Win + R)を開いて、次のように入力します。
systempropertiesadvanced - 「詳細設定」タブ > 「パフォーマンス」の下の設定に進みます
- データ実行防止タブに切り替える
- 選択したプログラムとサービスを除くすべてのプログラムとサービスに対してDEPを有効にするを選択します
- 「追加」をクリックしてゲームの.exeファイルを参照します
bcdedit /set {current} nx AlwaysOnテスト後、管理者特権の cmd セッションで実行して DEP を再度有効にします。
メモリ診断を実行する
RAMに問題があると思われる場合は、Windows内蔵のメモリ診断(mdsched)を実行してください。RAMの故障やスロットの不良は、アクセス違反を伴うランダムクラッシュを引き起こす可能性があります。エラーが表示される場合は、メモリまたはスロットの交換が必要になる場合があります。
ハードウェアの障害やソフトウェアの競合が重なり合うこともあるため、これらの項目は多岐にわたる可能性があります。しかし、これらの手順を一つずつ試していくことで、通常は原因を絞り込むことができます。
まとめ
- グラフィックとサウンドドライバーを更新する
- DiscordやNVIDIAなどのオーバーレイを無効にする
- 特定のゲーム用のoptions.iniファイルを作成または修正する
- Windowsを最新の状態に保つ
- Windows メモリ診断で RAM をテストする
- 該当する場合はオーバークロックを元に戻す
- ゲームのグラフィック設定を調整するか、高性能GPUに設定します
- 問題のあるゲーム/アプリを再インストールする
- 最終手段:DEP設定を調整する
まとめ
総じて、これらのエラーは厄介ですが、修正可能です。多くの場合、メモリアクセスの不具合はドライバの問題や競合が原因です。ハードウェアも確認してみるのも良いでしょう。RAMが原因の場合もあります。この記事が、トラブルシューティングと原因究明への道筋を示してくれることを願っています。幸運を祈ります。そして、この記事が誰かの頭痛の種を数時間も救ってくれることを祈っています。