はじめに
今回は、互換性モードの設定に関する問題の調査方法をご紹介します。
特定のアプリケーションが互換性モードで動作している場合、その設定がアプリケーションの動作に予期しない影響を与えることがあります。
この記事では、Process Monitorを利用して互換モード設定の影響を特定する方法を紹介します。

Windows標準のエクスプローラーのプロパティ画面のスクリーンショット画像
調査方法
問題発生時にProcess Monitorのログを取得し、以下のいずれかの方法で確認できます。
互換モードのレジストリ設定の確認
以下のような形式のレジストリ読み込みに成功している場合、互換モードが設定されています。
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers(アプリケーションのEXEパス)

Process Monitorのスクリーンショット画像
互換モードのDLL読み込みの確認
互換モードが有効な場合、AcLayers.dllが動作します。そのため、Process MonitorやDUMPファイルからこのDLLがロードされているか確認する方法も有効です。
AcLayers.dll

Process Monitorのスクリーンショット画像
まとめ
この記事で紹介した方法で互換モードが有効化されているか確認できます。互換モードの関与が疑われる場合は、Process Monitorのログに注目してみてください。
サードパーティー製製品の動作に問題が発生した際、ソースコードからの調査は困難な場合がほとんどです。
このような調査では、初期段階で原因の見当がつかない場合、正常時と異常時のProcess Monitorのログを比較し、動作の変化点を見つけることが問題解決につながる場合があります。ぜひお試しください。

