Windows 2008: сбой приложения, когда __COMPAT_LAYER = ElevateCreateProcess - PullRequest
2 голосов
/ 03 февраля 2012

Есть приложение, которое может быть правильно запущено в Windows 2008, давайте назовем его App1.

Когда это же приложение запускается другим приложением (Launcher), App1 аварийно завершает работу в secur32.dll.Исследование показало, что среда в этих двух случаях была разной.

При сбое приложения в его среде есть одна дополнительная переменная __COMPAT_LAYER = ElevateCreateProcess.

Установка __COMPAT_LAYER = asInvoker на глобальном системном уровне не разрешаетвопрос.Добавление App1 и Launcher в реестр по адресу HKLM \ Software \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers также не разрешает эту проблему.

Обе программы имеют следующие разрешения в своих манифестах: requiredExecutionLevel level = "asInvoker"uiAccess = "false"

UAC выключен.Обновления Windows актуальны.Единственное решение, которое помогает, - вставить другую промежуточную программу, которая очищает __COMPAT_LAYER или устанавливает его в asInvoker.

Что может быть причиной ElevateCreateProcess и как ее избежать?Спасибо.

Ответы [ 2 ]

1 голос
/ 01 июля 2016

Причиной такого поведения может быть присвоение имени процессу запуска.Windows дополняет каждый процесс, соответствующий шаблону именования "* launch * .exe", с флагом ElevateCreateProcess.Это неловкое поведение указывается в базе данных shim для Windows \ apppatch \ sysmain.sdb.Вы можете просмотреть это, установив и запустив набор инструментов для обеспечения совместимости приложений.В разделе «Системная база данных (32-разрядная версия) / Applications / Autorun» вы можете найти эту запись.Хотя отключение может быть и рискованным, щелчок правой кнопкой мыши -> Отключить запись также не работает в моем случае.

0 голосов
/ 15 февраля 2012

Как оказалось, проблема была вызвана вызовом GetUserName во время dll init, который вылетает в Vista.Связанный пост https://groups.google.com/group/microsoft.public.win32.programmer.kernel/browse_thread/thread/ae1b1e4ecbb6b123/1e9fefd4c8b12452

...