Процесс убивается сторонним приложением (Sprint Smartview)

Недавно два пользователя нашего программного обеспечения из одной компании начали испытывать случайные сбои (без сообщений об ошибках, диалогов сбоя, диалогов выхода из системы и т.д.). Мы смогли определить, что общего между этими двумя системами, вплоть до конкретной части программного обеспечения (менеджер устройств широкополосной мобильной связи). Когда эта программа запущена, наша программа произвольно закрывается в течение ~2 минут. Если мы выходим из менеджера широкополосного доступа, наше программное обеспечение работает неограниченное время без проблем.

Я не могу придумать ни одной причины, по которой могло бы существовать какое-либо взаимодействие между нашим и их программным обеспечением. Наше программное обеспечение не имеет доступа к сети, а широкополосный модем даже не подключен в любом случае.

Мы предложили клиенту обходной путь (запустить наше ПО от имени администратора или выйти из менеджера мобильного широкополосного доступа перед запуском нашего ПО), но мы хотим решить проблему так, чтобы им не нужно было беспокоиться о выполнении этих действий.

Я подключил удаленный отладчик к нашему программному обеспечению, но я не совсем уверен, где искать, чтобы выяснить, как именно умирает наше программное обеспечение. Отладка просто заканчивается с кодом выхода 0, когда наш процесс завершается.

Мой вопрос в том, как я могу исследовать, как/почему Win32 процесс погибает и что я могу сделать, чтобы предотвратить это?

Edit: Я открыл широкополосный менеджер и DLL, которые он использует, в шестнадцатеричном редакторе, и там есть ссылки на исполняемый файл с точно таким же именем, как у нас. Так что я полагаю, что это и есть ссылка. Переименование нашего исполняемого файла устраняет проблему для наших пользователей, но, к сожалению, не для тупости Sprint SmartView.

Edit: Чтобы помочь редким другим разработчикам, которые попадают в эту ситуацию: Если ваш исполняемый файл называется phoenix.exe и ваши конечные пользователи запускают Sprint SmartView, то именно поэтому ваша программа случайно умирает. Переименование вашего исполняемого файла решит эту проблему (или потратьте несколько месяцев своей жизни, пытаясь выяснить, кого уведомить в Sprint, чтобы действительно решить эту проблему). Файл, в котором упоминается phoenix.exe, это WwanCoreSdk.dll.

8
задан eco 30 January 2012 в 23:51
поделиться