Windows 2008で正しく起動できるアプリケーションがあり、App1と呼びます。Windows 2008:__COMPAT_LAYER = ElevateCreateProcessのときにアプリケーションがクラッシュする
別のアプリケーション(ランチャー)で同じアプリケーションを起動すると、secur32.dllでApp1がクラッシュします。 これらの2つのケースでは、研究環境が異なっていました。
アプリケーションがクラッシュすると、その環境に1つの余分な変数__COMPAT_LAYER = ElevateCreateProcessがあります。
__COMPAT_LAYER = asInvokerをグローバルシステムレベルに設定しても問題は解決されませんでした。 HKLM \ Software \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ LayersのレジストリにApp1とランチャーを追加しても解決されません。
両方のプログラムは、彼らのマニフェストに次の権限を持っている:UACはオフになっているのrequestedExecutionLevelレベル= "asInvoker" uiAccess = "false" を
。 Windowsのアップデートは最新です。 唯一の解決策は、間に__COMPAT_LAYERをクリアするか、またはasInvokerに設定する別のプログラムを注入することです。
ElevateCreateProcessの原因となる可能性と回避方法を教えてください。ありがとうございました。