У меня есть приложение, в котором размещается некоторый нестабильный сторонний код, который я не могу контролировать во внешнем процессе, чтобы защитить основное приложение от неприятных ошибок, которые он обнаруживает. Мой родительский процесс контролирует другой процесс и делает «правильную вещь (tm)», когда он терпит неудачу.Отключение отчетов об ошибках Windows (Dr. Watson) для моего процесса
Проблема, что у меня есть, заключается в том, что доктор Уотсон все еще обнаруживает сбои в изолированном процессе и присоединяется к процессам на пути вниз, чтобы взять свалку. У этого есть две проблемы: 1. Резкое замедление времени, которое требуется для меня, чтобы обнаружить сбой, потому что процесс остается живым, когда берется свалка. 2. Показывать раздражающие всплывающие окна для пользователя, спрашивающего, хотите ли они отправлять отчеты об ошибках в Microsoft.
Очевидно, я бы предпочел исправить ошибки в дочернем процессе, но, учитывая, что это не вариант, я хотел бы иметь возможность выборочно отключать Dr. Watson (и отчетность об ошибках Windows в Vista +) для этого процесса ,
Я запускаю свой собственный код в процессе, прежде чем передавать его на ненадежный бит, поэтому, если есть API, который я могу назвать, это влияет на текущий процесс, который будет в порядке.
Я знаю: http://support.microsoft.com/default.aspx/kb/188296, который отключит доктора Уотсона для всей машины. Я не хочу этого делать, потому что это сделало бы меня плохим гражданином, чтобы избавиться от машинной обстановки.
Я также знаю параметр WerSetFlags в Vista +, который, казалось бы, отключает отчет об ошибках Windows для текущего процесса, но мне нужно что-то, что отключит Dr.Watson на более ранних версиях ОС.