PCを利用中に「CRITICAL_STRUCTURE_CORRUPTION」という停止コードのブルースクリーンが発生し、定期的にPCの再起動がかかるという現象が発生。
1度目のはじめてのブルースクリーン発生の後は、強制再起動後に半日ほどPCが正常稼働していたのだが、2度目のブルースクリーン発生後は1時間に1度くらいの頻度でブルースクリーンが連続して発生するようになった。
これは何かしらの重大な障害が発生していると思われるので、原因を特定して対策します。
発生したブルースクリーン
「デバイスに問題が発生したため、再起動する必要があります。エラー情報を収集しています。自動的に再起動します。」というブルースクリーンが発生し、停止コード(エラーコード、STOPコード)は「CRITICAL_STRUCTURE_CORRUPTION」。
表示されているQRコードをスマホで読み取ってページを開くと、「ブルー スクリーン エラーのトラブルシューティング」というMicrosoftの公式ページが表示される。
停止コードの調査
「CRITICAL_STRUCTURE_CORRUPTION」という停止コードを調べてみると、PCを利用中に「重要なカーネルコードまたはデータが書き換えられた」際などにこの停止コードが発生し、通常のパターンであればハードウェアの破損の可能性が高く、特にメモリが故障した際に発生するケースが多いとのこと。
まあ普通に考えると、PCを事務作業等の通常の用途で利用しているときに、「重要なカーネルコードまたはデータが書き換えられた」などということはまず起こらないはずだが、メモリが物理的に故障した場合にはメモリ上に展開したデータがバグることにより、データの整合性が狂うことは十分考えられますね。
おまけに、今回ブルースクリーンが発生したPCは、ソケットLGA1155のCore i7-3770という、通常の事務的な利用であれば未だ快適に利用出来るスペックとはいえ、自作してからかなりの起動時間を誇るベテランPCなのでメモリ故障がいつ発生してもおかしくない状態。
というわけでメモリの物理的故障の確率がかなり高いと判断し、メモリの診断を行います。
メモリの診断
今回はWindowsに標準で搭載されている「Windows メモリ診断」というアプリを利用してメモリを診断します。(※Windows10でもWindows11でも標準で搭載されています。)
まず、現在起動しているアプリなどを閉じ、Windowsの検索窓から「メモリ」と入力して「Windows メモリ診断」をクリックします。
「Windows メモリ診断」が起動したら、「今すぐ再起動して問題の有無を確認する(推奨)」をクリックします。
すると、PCが再起動して「Windowsメモリ診断ツール」が起動します。
メモリ診断を開始して間もなく、「状態」というところに「ハードウェアの問題が検出されました。」と表示されましたので、メモリの故障がほぼ確定です。
一応「Windowsメモリ診断ツール」が全て終了するのを待ち、Windowsの起動後にデスクトップに表示される診断テストの結果表示を待っていたところ、デスクトップが表示されてから4~5分後くらいに「コンピューターにメモリの問題があります」というメモリ故障の確定表示が出ました。(※テスト結果が表示されるまで結構時間が掛かるのでゆっくり待ちましょう。)
故障したメモリの特定
このPCの搭載メモリはDDR3の4GBメモリ×4枚、合計16GBというスペックのため、4枚のメモリのうち、どのメモリが故障しているのかを判別する必要があります。(※同時に複数枚のメモリが故障するケースは非常に稀です。)
ですので、PCをシャットダウンし、まず「①、②、③、④」という4枚のメモリのうち「①、②」のメモリを抜いて「③、④」のメモリだけでWindowsを立ち上げ、もう一度「Windows メモリ診断」を実行します。
メモリ診断開始後、またすぐに「ハードウェアの問題が検出されました。」と表示されたので、「③、④」のメモリの両方または片方の故障が確定しました。
ESCキーでメモリ診断を終了し、PCをシャットダウンします。
次は「③」のメモリを抜いて「④」のメモリだけでWindowsを立ち上げ、もう一度「Windows メモリ診断」を実行してみたところ、最後まで問題は検出されず、Windows起動後の診断結果でもメモリは正常とのことでした。
この段階で「③」のメモリは故障確定。そして「④」のメモリは正常と確定しました。
最後に「①、②、④」のメモリを挿した状態でメモリ診断を行ったところ、今度もエラーは検出されず、メモリは正常という結果でした。
上記の結果を踏まえると、以下の結論となります。
【結論】
「③」のメモリのみが故障。その他のメモリは正常。
以下が故障していた③のメモリです。
メモリ購入
というわけで中古のメモリをヤフオクで1枚購入します。
送料込み1000円以内で、同じモジュール規格「PC3-12800U(DDR3-1600) 」の「MemTest86でエラー無しの確認済み」という格安中古メモリを落札できましたので、そのメモリをPCに挿してWindowsを起動します。
最後に、もう一度念のために「Windows メモリ診断」を実行したところ、メモリのエラーは無かったので修理は全て完了です。
無事、メモリ16GBの正常PCに復活しました。
※その後、動作確認のため3日間ほどPCを起動して様子を見ましたが、メモリ交換後はブルースクリーンは一度も発生していません。
まとめ
- PC利用中にブルースクリーンが定期的に発生するようになり、停止コードが「CRITICAL_STRUCTURE_CORRUPTION」だった場合はメモリが故障している確率が高い。
- Windowsに標準搭載されている「Windows メモリ診断」というアプリで簡単にメモリの故障診断が出来る。
- 複数枚のメモリを挿している場合は、どのメモリが故障したかを特定し、故障したメモリを交換すれば修理は完了。
以上で解決です。