Process Monitor(procmon.exe)
type: Concept
definition: ファイルI/O・レジストリ・プロセス/スレッド活動をリアルタイムに監視できるSysinternalsのツール。Advanced Outputを有効にすると、IRPやファストI/Oのカーネル側の語彙で操作を表示する。
alternative label: Procmon
alternative label: Process Monitor
recommended for: 環境依存の不具合調査
uses: ProcMonのフィルタ(2段階絞り込み)
uses: PMLファイル(Process Monitor Log形式)
uses: ブートタイムロギング(Enable Boot Logging)
uses: NAME NOT FOUND(Result値)
uses: ACCESS DENIED(Result値)
uses: SHARING VIOLATION(Result値)
uses: BUFFER OVERFLOW(Result値)
requires: 管理者権限
not recommended for: パケットキャプチャによる通信調査
not recommended for: PerfView / dotnet-trace
not recommended for: WinDbg
not recommended for: Application Verifier

環境依存の不具合調査
type: Concept
definition: 特定の環境や端末でだけ起きる不具合の原因を、コードを読むより先に、実際に何が起きたかの記録(ファイル・レジストリアクセスなど)から特定していく調査の進め方。
alternative label: 再現条件の絞り込み
alternative label: 「設定が反映されない」調査

ProcMonのフィルタ(2段階絞り込み)
type: Concept
definition: まずProcess Nameで対象プロセスにIncludeを掛け、次にResultで異常系に絞るというProcMon利用の定石。フィルタは表示上の絞り込みで、裏では既定で全イベントが記録される非破壊フィルタである。
alternative label: Process Name → Resultの絞り込み

PMLファイル(Process Monitor Log形式)
type: Concept
definition: ProcMonがイベントを保存できるネイティブ形式のログファイル。全カラム・全詳細(スタックを含む)を保持し、別のマシンのProcMonでそのまま開ける。
alternative label: Native Process Monitor Format
alternative label: PML

ブートタイムロギング(Enable Boot Logging)
type: Concept
definition: 次回起動時のブート初期からのイベントを記録するProcMonの機能。サービスがログオン前に失敗する等、ProcMonを手で起動するより前に問題が起きるケースの調査に使う。
alternative label: Boot Logging

NAME NOT FOUND(Result値)
type: Concept
definition: ProcMonのResult列に出る、指定パスに名前が存在しないことを示す値。探索順の途中経過であることが多く、最後にSUCCESSがあるかどうかまで見て初めて異常かどうかを判断できる。
alternative label: NAME NOT FOUND
broader: Process Monitor(procmon.exe)

ACCESS DENIED(Result値)
type: Concept
definition: ProcMonのResult列に出る、アクセス拒否を示す値。権限・ACL・ウイルス対策・保護領域への書き込みなど、原因の可能性が高いResult値とされる。
alternative label: ACCESS DENIED
broader: Process Monitor(procmon.exe)

SHARING VIOLATION(Result値)
type: Concept
definition: ProcMonのResult列に出る、他のプロセスが排他的にファイルを開いているために生じる共有違反を示す値。ファイルロックの競合原因の特定に使う。
alternative label: SHARING VIOLATION
alternative label: 共有違反
broader: Process Monitor(procmon.exe)
verified by: Process Explorer

BUFFER OVERFLOW(Result値)
type: Concept
definition: ProcMonのResult列に出る、呼び出し側が用意したバッファより必要なデータが大きかったために必要サイズを返した、という正常なAPIの往復を示す値。セキュリティ用語のバッファオーバーフロー攻撃とは無関係。
alternative label: BUFFER OVERFLOW
broader: Process Monitor(procmon.exe)

DLLの検索順序
type: Concept
definition: Windowsが実行ファイルの起動時に限らず、LoadLibrary系APIによる動的な読み込み時も含めて、DLL redirectionやKnown DLLsなどの前段ルールを経てDLLを探す、決まった順序でフォルダーを辿る仕組み。
alternative label: DLL探索順
verified by: NAME NOT FOUND(Result値)

VirtualStoreへの仮想化
type: Concept
definition: Program Files配下など管理者権限が必要な場所への書き込みが、実際にはユーザーごとのVirtualStoreフォルダーへリダイレクトされ、読み書きが別の場所に化けるWindowsの互換機能。
alternative label: ファイル・レジストリの仮想化
alternative label: VirtualStore
verified by: Process Monitor(procmon.exe)

WOW64リダイレクト
type: Concept
definition: 32bitプロセスからのシステムフォルダーやレジストリへのアクセスが、WOW64によって別のビューへ自動的に振り替えられる仕組み。見ているつもりの場所と実際にアクセスする場所がずれる原因になる。
alternative label: WOW64ファイルシステムリダイレクター
verified by: Process Monitor(procmon.exe)

Process Explorer
type: Concept
definition: プロセスに読み込まれているDLLだけでなく、ハンドル・スレッドスタック・GDI/USERオブジェクト数なども確認できるSysinternalsのプロセス監視ツール。管理者として実行すると他ユーザーやサービスのプロセスも参照できる。

管理者権限
type: Concept
definition: コンピューター全体の設定を変更できる権限。
alternative label: 昇格

ハンドルリーク
type: Concept
definition: 参照カウントやハンドルカウントの数え違いなどにより、不要になったハンドル(ファイル・イベント・スレッド・GDIオブジェクト・アクセストークンなどカーネルオブジェクトへの参照)が解放されずに積み上がっていく状態。
alternative label: Handle Leak
verified by: Process Explorer

パケットキャプチャによる通信調査
type: Concept
definition: 通信プロトコルレベルの調査のために、WiresharkやWindows標準のPacket Monitor(pktmon)でパケットの中身を採取・解析すること。
alternative label: Wireshark
alternative label: pktmon

PerfView / dotnet-trace
type: Concept
definition: CPUサンプル・GC・アロケーションなど、.NETアプリケーションの「遅い」の原因を定量的に調査するためのプロファイリングツール群。
alternative label: PerfView
alternative label: dotnet-trace

WinDbg
type: Concept
definition: クラッシュダンプやハングしたプロセスの状態をカーネル/ユーザーモードで解析するためのMicrosoft製デバッガー。SOS拡張によるマネージドヒープ解析や、Application Verifierの検出結果の解析にも使われる。
alternative label: Debugging Tools for Windows

Application Verifier
type: Concept
definition: Windowsのuser-modeアプリに対するランタイム検証ツールで、OS API利用や資源の扱い方を監視し誤用の検出や意図的な失敗の注入を行う。
alternative label: AppVerifier
alternative label: appverif.exe

subject: Process Monitor(procmon.exe)
predicate: recommendedFor
object: 環境依存の不具合調査
description: 環境依存の不具合調査で最初にやるべきことは、コードを読むことではなく、ProcMonで実際に何が起きたかの記録を取ることである
evidence: procmon
verified at: 2026-08-01
certainty: established

subject: Process Monitor(procmon.exe)
predicate: uses
object: ProcMonのフィルタ(2段階絞り込み)
description: ProcMonは絞り込んでから読むツールで、まずProcess Nameで対象プロセスに絞り、次にResultで異常系に絞る2段階フィルタが定石になる
evidence: procmon
verified at: 2026-08-01
certainty: established

subject: Process Monitor(procmon.exe)
predicate: uses
object: PMLファイル(Process Monitor Log形式)
description: ProcMonのログはPMLファイルとして保存すれば、別のマシンでも全カラム・全詳細を確認できるため、顧客環境で採取して自社で解析する分業が成立する
evidence: procmon
verified at: 2026-08-01
certainty: established

subject: Process Monitor(procmon.exe)
predicate: uses
object: ブートタイムロギング(Enable Boot Logging)
description: サービスがログオン前に失敗するなど、ProcMonを手動起動するより前に起きる問題にはEnable Boot Loggingでブート初期からのイベントを記録する
evidence: procmon
verified at: 2026-08-01
certainty: established

subject: Process Monitor(procmon.exe)
predicate: uses
object: NAME NOT FOUND(Result値)
description: ProcMonのResult列にはNAME NOT FOUNDのような値が表示され、探索順の途中経過か本当に見つからないのかを連なりで判断する
evidence: procmon
verified at: 2026-08-01
certainty: established

subject: Process Monitor(procmon.exe)
predicate: uses
object: ACCESS DENIED(Result値)
description: ProcMonのResult列にはACCESS DENIEDが表示され、原因の可能性が高い結果として調査の起点になる
evidence: procmon
verified at: 2026-08-01
certainty: established

subject: Process Monitor(procmon.exe)
predicate: uses
object: SHARING VIOLATION(Result値)
description: ProcMonのResult列にはSHARING VIOLATIONが表示され、時系列で前後の行を見ることでファイルを掴んでいる相手を特定できる
evidence: procmon
verified at: 2026-08-01
certainty: established

subject: Process Monitor(procmon.exe)
predicate: uses
object: BUFFER OVERFLOW(Result値)
description: ProcMonのResult列にはBUFFER OVERFLOWのような一見異常に見えるが実際は正常なAPIの往復を示す値も表示される
evidence: procmon
verified at: 2026-08-01
certainty: established

subject: DLLの検索順序
predicate: verifiedBy
object: NAME NOT FOUND(Result値)
description: DLLが見つからない、または意図しないDLLを掴んでいる問題は、Pathに対するNAME NOT FOUNDの連なりが探索順どおりに並び、最後にSUCCESSがあるかどうかで確認できる
evidence: dynamic-link-library-search-order
verified at: 2026-08-01
certainty: established

subject: VirtualStoreへの仮想化
predicate: verifiedBy
object: Process Monitor(procmon.exe)
description: Program Files配下への書き込みがVirtualStoreへ仮想化されているかどうかは、ProcMonのPath列に出る実際の読み書き先を見れば分かる
evidence: file-and-registry-virtualization
verified at: 2026-08-01
certainty: established

subject: WOW64リダイレクト
predicate: verifiedBy
object: Process Monitor(procmon.exe)
description: 32bitプロセスがWOW64のリダイレクトを受けて意図と違う場所を見ている場合も、ProcMonのPathに実際のアクセス先が出るため確認できる
evidence: file-system-redirector
verified at: 2026-08-01
certainty: established

subject: SHARING VIOLATION(Result値)
predicate: verifiedBy
object: Process Explorer
description: 「今この瞬間、誰が同じファイルを掴んでいるか」を知りたいだけなら、ProcMonよりProcess Explorerのハンドル検索の方が速く確認できる
evidence: process-explorer
verified at: 2026-08-01
certainty: established

subject: Process Monitor(procmon.exe)
predicate: requires
object: 管理者権限
description: ProcMonはカーネルドライバーを読み込むため、起動には管理者権限(UACの昇格)が必要になる
evidence: procmon
verified at: 2026-08-01
certainty: established

subject: ハンドルリーク
predicate: verifiedBy
object: Process Explorer
description: 長期稼働でハンドルやメモリが増え続ける原因は、Process Explorerでハンドル数やDLLの状態を観察することで確認できる
evidence: process-explorer
verified at: 2026-08-01
certainty: established

subject: Process Monitor(procmon.exe)
predicate: notRecommendedFor
object: パケットキャプチャによる通信調査
description: ProcMonはTCP/UDPの接続イベントは記録するがパケットの中身までは見えないため、プロトコルレベルの調査に用いるのは推奨されない
evidence: pktmon
verified at: 2026-08-01
certainty: established

subject: Process Monitor(procmon.exe)
predicate: notRecommendedFor
object: PerfView / dotnet-trace
description: CPUをどこで使っているかの本格的なプロファイリングにProcMonを用いるのは推奨されず、PerfViewやdotnet-traceの領分になる
evidence: dotnet-trace
verified at: 2026-08-01
certainty: established

subject: Process Monitor(procmon.exe)
predicate: notRecommendedFor
object: WinDbg
description: クラッシュ・ハングの瞬間のメモリとスタックの解析にProcMonを用いるのは推奨されず、WinDbg+ダンプの領分になる
evidence: debugger
verified at: 2026-08-01
certainty: established

subject: Process Monitor(procmon.exe)
predicate: notRecommendedFor
object: Application Verifier
description: ヒープ破壊やハンドルの二重解放などAPIの誤用の検出にProcMonを用いるのは推奨されず、Application Verifierの領分になる
evidence: application-verifier
verified at: 2026-08-01
certainty: established