Раскрывая тайны Windows: как работает служба регистрации ошибок? Источник windows error reporting код события 1001

Перестаёт работать или работает некорректно), Windows создает отчёт о проблеме, который предназначен для отправки в Microsoft (чтобы отыскать решение проблемы).

Начиная с операционной системы , на смену «инструменту анализа сбоев или аварий» Dr. Watson пришла Windows Error Reporting (WER ) – Служба регистрации ошибок Windows (другие названия – , Отчеты о проблемах и решения ).

Служба регистрации ошибок Windows представлена следующими файлами (все расположены в каталоге \Windows\System32\ ):

wer.dll (Библиотека сообщений об ошибках Windows );

wercon.exe (Отчеты о проблемах и их решениях );

wercplsupport.dll ();

werdiagcontroller.dll (WER Diagnostic Controller );

WerFault.exe (Отчет об ошибках Windows );

WerFaultSecure.exe (Отчеты об ошибках Windows );

wermgr.exe (Windows Problem Reporting );

wersvc.dll (Служба регистрации ошибок Windows );

wertargets.wtl .

Когда происходит сбой какого-либо процесса (программы), служба Windows Error Reporting запускает – в сеансе ошибочного процесса – свою (WerFault.exe ),

передавая идентификатор (PID ) процесса в командную строку WerFault :

При этом отображается окно Microsoft Windows с сообщением об ошибке – «Прекращена работа <Название_программы>. При следующем подключении к Интернету Windows может провести поиск способа устранения этой ошибки» :


При нажатии на кнопку Показать подробности проблемы можно ознакомиться с сигнатурой проблемы:


Сигнатуры проблем сохраняются в отчётах об ошибках, которые хранятся в каталоге \Users\Master\AppData\Local\Microsoft\Windows\WER\ReportArchive\ , каждый отчет – в отдельной папке Report******** (например, Report0a003e48 ), в файле Report.wer .

Примерное содержимое файла Report.wer :

Version=1

EventType=APPCRASH

EventTime=129234418886148269

ReportType=2

Consent=1

Response.type=4

Sig.Name=Имя приложения

Sig.Value=iexplore.exe

Sig.Name=Версия приложения

Sig.Value=8.0.6001.18928

Sig.Name=Штамп времени приложения

Sig.Value=4bdfa327

Sig.Name=Имя модуля с ошибкой

Sig.Value=mshtml.dll

Sig.Name=Версия модуля с ошибкой

Sig.Value=8.0.6001.18928

Sig.Name=Штамп времени модуля с ошибкой

Sig.Value=4bdfb76d

Sig.Name=Код исключения

Sig.Value=c0000005

Sig.Name=Смещение исключения

Sig.Value=000da33f

DynamicSig.Name=Версия ОС

DynamicSig.Value=6.0.6002.2.2.0.768.3

DynamicSig.Name=Код языка

DynamicSig.Value=1049

DynamicSig.Name=Дополнительные сведения 1

DynamicSig.Value=fd00

DynamicSig.Name=Дополнительные сведения 2

DynamicSig.Name=Дополнительные сведения 3

DynamicSig.Value=fd00

DynamicSig.Name=Дополнительные сведения 4

DynamicSig.Value=

UI=C:\Program Files\Internet Explorer\iexplore.exe

UI=Прекращена работа Internet Explorer

UI=Windows может провести поиск способа устранения этой ошибки в Интернете.

UI=Искать решение проблемы в Интернете и закрыть программу

UI=Проверить наличие способа исправления ошибки в Интернете позднее и закрыть программу

UI=Закрыть программу

FriendlyEventName=Остановка работы

ConsentKey=APPCRASH

AppName=Internet Explorer

AppPath=C:\Program Files\Internet Explorer\iexplore.exe

Как запустить службу Отчеты о проблемах и их решениях

Нажмите Пуск –> Панель управления –> Отчеты о проблемах и их решениях ;


– в окне Отчеты о проблемах и их решениях в меню Задачи доступны следующие опции:

· Искать новые решения (необходимо открытое соединение с Интернетом);

Служба WER (Windows Error Reporting ) служит для сбора и отправки отладочной информации о падении системных и сторонних приложений в Windows на сервера Microsoft. По задумке Microsoft, эта информация должна анализироваться и при наличии решения, вариант исправления проблемы должен отправляется пользователю через Windows Error Reporting Response. Но по факту мало кто пользуется этим функционалом, хотя Microsoft настойчиво оставляет службу сбора ошибок WER включенной по умолчанию во всех последних версиях Windows. В большинстве случае о службе WER вспоминают, когда каталог начинает занимать на системном диске довольно много места (вплоть до нескольких десятков Гб), даже не смотря на то что на этом каталоге по умолчанию включена .

Служба Windows Error Reporting

Служба Windows Error Reporting представляет собой отдельный сервис Windows, который можно легко отключить командой:

Внутри каталога WER\ReportQueue\ содержится множество каталогов, с именами в формате:

  • Critical_6.3.9600.18384_{ID}_00000000_cab_3222bf78
  • Critical_powershell.exe_{ID}_cab_271e13c0
  • Critical_sqlservr.exe__{ID}_cab_b3a19651
  • NonCritical_7.9.9600.18235__{ID}_0bfcb07a
  • AppCrash_cmd.exe_{ID}_bda769bf_37d3b403

Как вы видите, имя каталога содержит степень критичности события и имя конкретного exe файла, который завершился аварийно. Во всех каталогах обязательно имеется файл Report.wer , который содержит описание ошибок и несколько файлов с дополнительной информацией.

Очистка папки WER\ReportQueue в Windows

Как правило, размер каждой папки незначителен, но в некоторых случаях для проблемного процесса генерируется дамп памяти, который занимает довольно много места. На скриншоте ниже видно, что размер файла дампа memory.hdmp составляет около 610 Мб. Парочка таким дампов – и на диске исчезло несколько свободных гигибайт.

Чтобы очистить все эти ошибки и журналы штатными средствами, откройте панель управления и перейдите в раздел ControlPanel -> System and Security -> Action Center -> Maintenance -> View reliability history -> View all problem reports и нажмите на кнопку Clear all problem reports .

Для быстрого освобождения места на диске от файлов отладки, сгенерированных службой WER, содержимое следующих каталогов можно безболезненно удалить и руками.

  • C:\ProgramData\Microsoft\Windows\WER\ReportArchive\

Отключение Window Error Reporting в Windows Server 2012 R2 / 2008 R2

Отключить запись информации об ошибках Windows Error Reporting в серверных редакция Windows можно следующим образом:


Отключение функции сбора и отправки отчетов в Windows 10

В Windows 10 возможность отключить Error Reporting через GUI отсутствует. Проверить статус компонента можно в панели управления Система и безопасность ->Центр безопасности и обслуживания -> секция Обслуживание . Как вы видите, по умолчанию параметр включен (Control Panel -> System and Security -> Security and Maintenance -> Maintenance -> Check for solutions to problem reports).

Отключить Windows Error Reporting в Windows 10 можно через реестр. Для этого в ветке нужно создать новый параметр типа DWORD (32 бита) с именем Disabled и значением 1 .

Теперь еще раз проверим статус параметра Поиск решения для указанных в отчетах проблем в панели управления. Его статус должен изменится на Отключено.

Отключение Windows Error Reporting через групповые политики

Ведение журналов службой Windows Error Reporting можно отключить и через групповую политику. Она находится в разделе Computer Configuration/Administrative Templates/Windows Components/Windows Error Reporting (Компоненты Windows -> Отчеты об ошибках Windows). Для отключения сбора и отправки данных включите политику Disable Windows Error Reporting (Отключить отчеты об ошибках Windows).

В результате сообщения об ошибках приложений в Windows перестанут формироваться и автоматически отправляться в Microsoft.

Это статья по мотивам вопросов на форумах: "Как мне вернуть строку из DLL?", "Как передать и вернуть массив записей?", "Как передать в DLL форму?".

Чтобы вам не тратить половину жизни на разобраться - в этой статье я принесу всё на блюдечке.

Темы этой статьи в разной степени уже не раз затрагивались в этом блоге, но в этой статье они собраны в кучу, приведены обоснования. Короче, ссылкой на эту статью можно кидаться в тех, кто разрабатывает DLL.

Важное примечание : статью нужно читать последовательно . Примеры кода приводятся только как примеры , на каждом шаге (пункте) статьи код примеров добавляется новыми подробностями. Например, в самом начале статьи нет обработки ошибок, указываются "классические" способы (типа, использования GetLastError , соглашения sdtcall и т.д.), которые по ходу статьи заменяются на более адекватные. Сделано так по той причине, чтобы "новые" ("необычные") конструкции не вызывали вопросов. Иначе при пришлось бы к каждому примеру вставлять примечание вида: "вот это обсуждается в том пункте ниже, а вот то - в этом вот". В любом случае в конце статьи есть ссылка на уже готовый код, написанный с учётом всего сказанного в статье. Можете просто его брать и использовать. А статья объясняет зачем и почему. Если вам не интересно "зачем и почему" - листайте в конец к заключению и ссылке на скачивание примера.

Последние материалы раздела:

Почему режется скорость Интернета по WiFi: Бесплатные советы как ускорить передачу данных
Почему режется скорость Интернета по WiFi: Бесплатные советы как ускорить передачу данных

Плохая скорость интернета через роутер - одна из наиболее «популярных» проблем всех любителей беспроводного соединения . В предыдущих статьях мы...

Контекстное меню в Windows
Контекстное меню в Windows

Из этой информационной статьи вы узнаете о том, как вызвать контекстное меню для любого файла, папки, ярлыка и т.п используя для этого несколько...

Продвижение в Instagram: самая подробная инструкция
Продвижение в Instagram: самая подробная инструкция

XXI век - стремительно меняющийся и ломающий прежние представления об успехе. Социальные сети стали феноменом, люди часами проводят время в режиме...