Windows 10の待機チェーントラバーサル(Wait Chain Traversal)機能でフリーズ原因を特定する方法
待機チェーントラバーサル(Wait Chain Traversal:WCT)は、Windows 7で導入された機能です。アプリケーションがハング(応答なし)やフリーズを起こしている際に、その根本原因となっている実際のプロセスを特定できる便利なツールです。さらにWindows 10/8では機能が強化され、リソースモニターだけでなくタスクマネージャーから直接待機チェーンを分析できるようになりました。本記事では、この待機チェーントラバーサル機能について詳しく解説します。
待機チェーントラバーサル(WCT)とは
Windows 7では、リソースモニターから待機チェーンを分析することができました。resmonコマンドを実行してリソースモニターを開き、「概要」または「CPU」タブでハングや中断状態になっているプロセスを探します。該当するプロセスを右クリックすると、コンテキストメニューに「待機チェーンの分析」という項目が表示されます。

Windows 10/8では、リソースモニターに加えて、タスクマネージャーそのものから直接待機チェーンを分析できるようになりました。タスクマネージャーを開き、ハングやフリーズしているプロセスを特定します。そのプロセスを右クリックし、コンテキストメニューから「待機チェーンの分析」を選択してください。

待機チェーンの分析方法
「待機チェーンの分析」のツリー表示では、選択したプロセスの続行に必要なリソースを、どのプロセスやノードが使用中・待機中であるかが階層構造で表示されます。待機チェーントラバーサル(WCT)は、Windowsデバッガーがアプリケーションのハングやデッドロックを診断することを可能にする仕組みです。詳細についてはTechNetでも解説されていますので、参考にしてみてください。
タスクマネージャーの「概要」または「CPU」タブを開くと、実行中のプロセス一覧が表示されます。プロセスが「固まっている」場合には、赤い文字で「応答なし」と表示されるので一目でわかります。問題のあるプロセスを右クリックすれば、プロセスの終了をはじめとする各種操作を行うことができます。

応答なし・フリーズしたプロセスの終了
「待機チェーンの分析」を選択すると、関連するプロセスの一覧とプロセスツリーが表示されます。たとえば「xyz.exeプロセスが別のプロセス(abc.exe)を待機しています」といったメッセージが表示されることもあります。なお、タスクマネージャーを管理者として起動していれば、より多くのプロセスを確認できます。管理者アカウントでWindowsを使用している場合、Windows 8以降ではタスクマネージャーが既定で昇格された状態で起動します。

分析結果を確認したら、プロセスが解放されるのを待つか、あるいはプロセスを強制終了するかを選択することになります。ただし、強制終了する場合は注意が必要です。対象がシステムプロセスだった場合、それに依存する他の機能まで一緒にクラッシュしてしまう可能性があります。終了する前に、そのプロセスの役割をよく確認しましょう。
サードパーティ製ツールも活用しよう
また、Process Hackerを使えば、どのプロセスがフリーズしているのかを調べることもできます。同様にWhatIsHangというユーティリティも有用です。このツールは現在ハング状態にあるソフトウェアやプロセスを検出し、フリーズの根本原因を突き止めて理解するのに役立つ情報を表示してくれます。
アプリケーションが頻繁にフリーズして困っている方は、まずは標準搭載されている待機チェーントラバーサル機能を試してみてください。原因となるプロセスを特定できれば、問題の解決への大きな一歩となります。
-
Windows 10のサンドボックス機能を有効・無効にする方法
Windows Sandboxを使ってサードパーティ製アプリを安全にテストしたいと思いませんか?このガイドでは、Windows 10のサンドボックス機能を有効または無効にする方法を詳しく解説します。 Windows Sandboxとは? Windows Sandbox(Windowsサンドボックス)は、開発者やPC愛好家が長年待ち望んでいた機能の一つです。Windows 10 May 2019 Update(ビルド1903)以降で正式に搭載され、仮想化に対応したノートPCやデスクトップPCであれば利用できます。ただし、使用前にシステム側で仮想化機能が有効になっていることを確認する必要がありま
-
Windows 10でプロセスを強制終了する3つの方法【タスクマネージャー・コマンドプロンプト・PowerShell】
アプリケーションのアイコンをクリックして起動するたびに、Windowsは実行ファイルのために自動的にプロセスを作成し、固有のプロセスID(PID)を割り当てます。例えば、Google Chromeブラウザを開いてタスクマネージャーを確認すると、「プロセス」タブにchrome.exeやChromeという名前のプロセスが、PID 4482や11700などの番号とともに表示されます。 Windowsでは、多くのアプリケーション、特にリソースを大量に消費するアプリケーションはフリーズして応答しなくなりがちです。こうしたフリーズしたアプリをXボタン(閉じるアイコン)で閉じようとしても、うまくいかないこと