SYSTEM_SERVICE_EXCEPTION(0x3B)の原因と直し方|ドライバーから切り分ける診断ガイド【2026年版】
本記事にはアフィリエイト広告(Amazon・楽天市場等)のリンクが含まれています。
ゲーム中に突然ブルースクリーンで再起動する場合の診断ガイド
ゲーム中に突然画面が真っ青になり、「SYSTEM_SERVICE_EXCEPTION」というエラーメッセージとともにPCが再起動する。一度きりならまだしも、特定のゲームをプレイするたびに繰り返し発生すると、原因が分からないままGPUドライバーだけを何度も入れ直したり、最終手段としてWindowsの再インストールを検討してしまいがちです。
Microsoft公式ドキュメントによると、この停止コード(バグチェックコード0x0000003B)は、特権を持たないコードから特権コードへ遷移するルーチン、つまりシステムサービスの呼び出しを実行している最中に例外が発生したことを示します。原因はNULLポインターの参照や誤ったメモリアドレスへのアクセスとされ、これはメモリの早期解放やデータ構造の破損によって引き起こされる場合があるとも説明されています。特定の種類のドライバーに限定される情報ではありませんが、GPUドライバー・セキュリティソフトの常駐ドライバー・オーディオドライバーなどが報告例の多いカテゴリです。
この記事では仕組みの解説だけで終わらせず、似た名前・似た症状の停止コードであるDPC_WATCHDOG_VIOLATION(0x133)、TDR(停止コード0x116)、XMP・EXPOのオーバークロックで報告されるメモリ系の停止コードとの違いを整理したうえで、イベントビューアーとミニダンプファイルから実際に自分の環境の原因ドライバーを特定する手順、対処法までを順番に案内します。
目次
定義SYSTEM_SERVICE_EXCEPTION(0x3B)とは|似た停止コードとの違い
Microsoft公式ドキュメント「Bug Check 0x3B SYSTEM_SERVICE_EXCEPTION」によると、この停止コードは値0x0000003Bを持ち、「特権を持たないコードから特権コードへ遷移するルーチンの実行中に例外が発生したこと」を示します。ここでいう「遷移するルーチン」とは、アプリケーションなど通常権限のコードがカーネルの機能を呼び出す、システムサービスの呼び出しを指します。
公式ドキュメントが示すパラメーターの意味は次の通りです。パラメーター1が実際に発生した例外のコード、パラメーター2がその例外を引き起こした命令のアドレス、パラメーター3が例外発生時のコンテキストレコードのアドレス、パラメーター4は未使用(0)です。代表的な例外コードとして、カーネルデバッガーが接続されていない状態でブレークポイントに達したことを示す0x80000003(STATUS_BREAKPOINT)と、メモリアクセス違反を示す0xC0000005(STATUS_ACCESS_VIOLATION)の2つが挙げられています。
公式ドキュメントは、原因ドライバーを特定するデバッガー出力の例として、クラッシュ時に読み込まれていたドライバー名が記録される変数KiBugCheckDriverの表示例を示しており、そこで挙げられているサンプルの値はnvlddmkm.sys、つまりNVIDIAのGPUドライバーです。あくまで解説用の一例にすぎませんが、Microsoft自身の技術文書がGPUドライバーを例に使っていること自体、GPUドライバーがこの停止コードの原因として特定されるケースが実際に少なくないことを示唆しています。
SYSTEM_SERVICE_EXCEPTIONは、名前や症状が似ている他の停止コードと混同されがちです。発動の仕組みが異なるため、該当する場合はそれぞれの専用記事を参照してください。
ドライバーが担当するDPC(Deferred Procedure Call)という処理が異常に長時間かかった、あるいは高い割り込み優先度の状態に累積的に長く留まったことが原因です。SYSTEM_SERVICE_EXCEPTIONのようにシステムサービス呼び出し中の例外ではなく、処理時間そのものの超過を検知する仕組みで、対象となるドライバーの種類は問いません。仕組みの詳細はDPC_WATCHDOG_VIOLATION(0x133)の原因と直し方で解説しています。
WindowsのTDR(Timeout Detection and Recovery)というディスプレイドライバー専用の保護・復旧の仕組みが、GPUの応答復旧に失敗した場合に発動します。SYSTEM_SERVICE_EXCEPTIONがGPUに限らず幅広いドライバーを対象にするのに対し、TDRはグラフィックドライバーのタイムアウトだけを扱う点が異なります。仕組みは「ディスプレイドライバーが応答を停止したため」の原因と直し方で解説しています。
メモリのXMP・EXPOオーバークロックを有効にした際に報告されることが多い停止コード群です。SYSTEM_SERVICE_EXCEPTIONがドライバーコードの不具合を主な原因とするのに対し、こちらはメモリモジュール自体の不安定化や電圧不足が起点になるケースを扱います。判別方法や電圧の目安はXMP・EXPOを有効にしたら不安定・ブルースクリーンになる原因と対処法で解説しています。
カーネルモードのプログラムがエラーハンドラーで捕捉されない例外を起こした場合に広く発動するキャッチオール型の停止コードです。SYSTEM_SERVICE_EXCEPTIONがシステムサービス呼び出しという条件に絞られるのに対し、こちらは例外の発生経路を問わず、Microsoft公式ドキュメントはメモリスキャナーによる診断も名指しで案内しています。仕組みの詳細はKMODE_EXCEPTION_NOT_HANDLED(0x1E)の原因と直し方で解説しています。
原因原因|Microsoft公式情報からわかること
Microsoft公式ドキュメントは、この停止コードの原因について次のように説明しています。実行中のコードが例外を起こし、その下で動作していたスレッドがシステムスレッドだった場合に発生する、というものです。具体的にはNULLポインターの参照や誤ったアドレスへのアクセスが原因になり得るとされ、これはメモリが早期に解放されたことや、データ構造が破損したことによって引き起こされる場合がある、とも述べられています。
Microsoftが過去に公開した修正プログラムを見ても、原因は多岐にわたります。Windows 7/Windows Server 2008 R2向けの修正プログラムは、アプリケーションやサービスがGUI関連の操作を行った際に、グラフィックス処理を担うWin32k.sysドライバーが同じオブジェクトのリソースを複数回誤って取得してしまう競合状態(レースコンディション)が原因だったケースへの対応でした。一方別の修正プログラムは、Windows 8.1やWindows Server 2012 R2でログオン処理中にランダムにこの停止コードが発生する問題への対応で、原因は2つのスレッド間の競合状態でした。GPUドライバーに決め打ちせず、後述の方法で自分の環境の原因ドライバーを直接特定するのが結局は一番早い近道です。
とはいえ、ゲーミングPCのトラブル診断で実際によく報告されるカテゴリはあります。あくまで報告例が多い分野であり、必ずこの中に原因があるとは限らない前提で、順に見ていきます。
nvlddmkm.sys・amdkmdag.sys・igdkmd64.sysなど)は、システムサービス呼び出しの経路をまたいで大量のデータをやり取りするため、報告例が多いカテゴリの一つです。前述の通り、Microsoft公式の技術文書自体が原因ドライバーの特定例としてnvlddmkm.sysを挙げているのも、このカテゴリが実際に多いことのひとつの傍証といえます。ドライバーの更新やクリーンインストールが効果的な場合があります。これらはあくまで報告例が多いカテゴリであり、Microsoft公式が「この4つが原因」と断定しているわけではありません。次の診断手順で、実際に自分の環境で何が原因になっているかを直接確認してください。
診断診断|イベントビューアーとミニダンプで原因ドライバーを特定する
Microsoft公式ドキュメントが想定する本来の特定方法は、WinDbgというデバッガーでダンプファイルを解析し、前述のKiBugCheckDriverのような情報を読み取るという、ドライバー開発者向けの手順です。ただし一般のPCユーザーでも、次の手順で自分の環境の原因ドライバー名まで十分に特定できます。
eventvwr.mscと入力してEnterを押します。左ペインの「Windowsログ」→「システム」を開き、ソース「Microsoft-Windows-WER-SystemErrorReporting」・イベントID「1001」の記録を探してください。発生時刻がブルースクリーンの時刻と一致するイベントの詳細に、バグチェックコード(0x3B)とミニダンプファイルの保存場所が記載されています。%SystemRoot%\Minidump、つまり通常はC:\Windows\Minidumpフォルダーに一覧として保存します。ブルースクリーンの日時と一致するファイルがあれば解析に使えます。C:\Windows\Minidumpフォルダーを自動でスキャンし、クラッシュ時に読み込まれていたドライバーの一覧とともに、原因と推定されるドライバーをピンク色でハイライト表示してくれます。公式サイトから入手すれば、読み取り専用でシステム設定を変更しない安全なツールです。nvlddmkm.sys・amdkmdag.sys・igdkmd64.sysなど)、セキュリティソフト(製品名やベンダー名を含むファイル名であることが多い)、オーディオ(RealtekであればRTKVHD64.sysなど)のどれに該当するかを判断し、該当するカテゴリの対処から試してください。見慣れないドライバー名が表示された場合は、そのファイル名で検索すると提供元のメーカー・ベンダーが特定できます。対処法対処法|実行しやすい順に試す
原因ドライバーが特定できた場合はそのカテゴリの対処から、特定できなかった場合は上から順に試してください。
sfc /scannowを実行し、システムファイルの破損を検出・修復します。それでも解決しない場合はDISM /Online /Cleanup-Image /RestoreHealthを実行してWindowsの構成イメージ自体を修復してから、改めてsfc /scannowを実行してください。疑問点よくある質問
sfc /scannowを実行してください。システムファイルの破損を検出・修復するコマンドです。破損を修復できなかった場合や、SFC自体が正常に動作しない場合にDISM /Online /Cleanup-Image /RestoreHealthを実行してWindowsの構成イメージを修復し、改めてSFCを実行します。まとめGPUドライバーに決め打ちせず、まずドライバー名を特定する
SYSTEM_SERVICE_EXCEPTION(0x3B)は、特定の種類のドライバーに限らず、システムサービス呼び出しの実行中にコードが例外を起こしたことをWindowsが検知して発動するブルースクリーンです。GPUドライバーだけに決め打ちせず、イベントビューアーで発生時刻を確認したうえで、C:\Windows\MinidumpのミニダンプファイルをBlueScreenViewのような無料ツールで解析し、実際に原因となっているドライバー名を特定するところから始めてください。
原因がGPUドライバーであればクリーンインストールから、セキュリティソフトが疑わしければ一時的な無効化から試すのが効率的です。オーバークロックをしている場合は標準設定に戻すことも忘れずに確認してください。似た名前・似た症状の停止コードであるDPC_WATCHDOG_VIOLATION(0x133)・TDR(0x116)・メモリ関連の停止コードは、それぞれ専用記事で解説しています。
あわせて読みたい
- Microsoft Learn「Bug Check 0x3B SYSTEM_SERVICE_EXCEPTION」
- Microsoft Support「”0x0000003B” Stop error occurs in Windows Server 2008 R2 and in Windows 7 when an application or a service performs a GUI-related operation」
- Microsoft Support「0x3B Stop error occurs randomly when you log on a computer that is running Windows 8.1 or Windows Server 2012 R2」
- Microsoft Learn「Read small memory dump files」
- NirSoft「BlueScreenView」
- Windows公式「Troubleshoot blue screen errors」




