Книга: Недокументированные и малоизвестные возможности Windows XP

Настройки поведения при крахе системы или программы

Настройки поведения при крахе системы или программы

При крахе операционной системы или программы (под крахом понимается ошибка, после появления которой работа программы или системы аварийно останавливается) задействуется сразу несколько механизмов операционной системы Windows XP. 

К ним можно отнести запись ошибки в журнал событий (eventvwr.msc), попытку выполнения отладки программы, отправку сведений об ошибке корпорации Microsoft, создание дампа памяти, если произошел крах операционной системы.

Подробнее работа журнала событий будет рассмотрена при описании консоли управления Microsoft, сейчас же будут описаны параметры реестра, относящиеся к отправке корпорации Microsoft сообщений о возникшей ошибке. Механизм отправки сообщений об ошибках задумывался как способ поиска и устранения ошибок в программах корпорации Microsoft. При этом попытка отправки отчета об ошибке происходит даже в том случае, когда компьютер не подключен к Интернету. Именно поэтому иногда необходимо отключить отправку сообщений об ошибках. Например, когда компьютер не имеет доступа к Интернету или когда нет желания платить за дополнительный трафик.

Все настройки отправки сообщений расположены в ветви системного реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftPCHealthErrorReporting. Она содержит как параметры, имеющие тип DWORD, так и подразделы. Среди параметров, которые присутствуют в этой ветви, можно выделить следующие.

? AllOrNone — с его помощью можно определить, сообщения об ошибках в каких программах будут отправляться Microsoft. Если значение этого параметра равно 1, то будут отправляться сообщения об ошибках во всех приложениях, установленных на компьютере. Если же значение этого параметра равно 0, то сообщения об ошибках будут отправляться только в приложениях, перечисленных в подразделе реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftPCHealthErrorReportingInclusionList. При этом также можно определить приложения, сообщения об ошибках в которых не будут отправляться корпорации Microsoft. Для этого предназначена ветвь реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftPCHealthErrorReportingExclusionList. Оба приведенных подраздела реестра должны содержать параметры DWORD-типа с именами, соответствующими определенной программе (например, для описания программы Проигрыватель Windows Media имя параметра должно быть равно wmplayer.exe). Значения этих параметров должны быть равны 1.

? DoReport — определяет, будет ли задействован механизм отправки сообщений о крахе программы Microsoft. Если значение этого параметра равно 0, то при возникновении ошибки в приложении никаких отчетов корпорации Microsoft отправляться не будет.

? DoTextLog — при установке значения равным 0 не будут записываться сообщения о крахе программ в журнал. По умолчанию параметр не существует.

? IncludeKernelFaults — если значение равно 0, то при крахе операционной системы не будет происходить попытка отправки сообщения Microsoft. Значение этого параметра используется, только если значение параметра DoReport равно 1, а значение параметра ShowUI равно 3.

? IncludeMicrosoftApps — если значение равно 0, то при крахе программ, созданных Microsoft, не будет происходить попытка отправки сообщения Microsoft. Значение данного параметра используется, только если значение параметра DoReport равно 1, а значение параметра ShowUI равно 3.

? IncludeWindowsApps — если значение равно 0, то при крахе компонентов операционной системы Windows XP не будет происходить попытка отправки сообщения Microsoft. Значение данного параметра используется, только если значение параметра DoReport равно 1, а значение параметра ShowUI равно 3.

Отдельно можно определить настройки отправки отчетов об ошибках в продуктах из комплекта Office. Для этого предназначена ветвь реестра HKEY_CURRENT_USERSoftwareMicrosoftOffice10.0Common. Она содержит следующие параметры DWORD-типа.

? DWNoExternalURL — если значение равно 1, то соединение с сервером Microsoft для отправки сообщений об ошибках будет запрещено.

? DWNoFileCollection — при установке значения равным 1 будет запрещена отправка файлов, запрашиваемых сервером обработки ошибок (иногда серверу обработки ошибок необходимы дополнительные файлы для определения причины возникшей ошибки, в этом случае он отправляет запрос на передачу этих файлов).

? DWNoSecondLevelCollection — если значение равно 1, то будет запрещена отправка серверу обработки ошибок файлов, используемых программой, в которой произошла ошибка, а также содержимого реестра компьютера пользователя.

? DWNeverUpload — при установке значения равным 1 будет запрещена загрузка файлов на удаленный компьютер.

По умолчанию параметры не существуют.

Кроме генерации отчетов об ошибках, операционная система по умолчанию запускает стандартный отладчик drwtsn.exe для попытки восстановления работы программы. Если эта возможность вам также не нужна (не многие пользователи в наше время знакомы с «Ассемблером»), то можно отключить запуск отладчика. Для этого достаточно параметру строкового типа Auto присвоить значение 0. Он расположен в ветви реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionAeDebug. В данной ветви также присутствует параметр строкового типа Debugger, который определяет путь к программе для отладки приложения.

Если же произошел крах системы, после которого нормальная работа операционной системы невозможна, то система записывает в файл дамп памяти. В этом дампе находится содержимое памяти, вызвавшее неустранимую ошибку. После записи дампа памяти система перезагружает компьютер или выводит экран BSOD («синий экран смерти»). Как правило, обычным пользователям записываемый дамп памяти совершенно не нужен — что с ним делать? Поэтому можно отключить запись дампа памяти. Настройки поведения системы при аварийной остановке  находятся в ветви реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCrashControl. Она включает в себя следующие параметры.

? CrashDumpEnabled — этот параметр DWORD-типа определяет, будет ли система записывать дамп памяти, и если да, то какой размер дампа для этого будет использоваться. Если значение параметра равно 0, то запись дампа памяти при ошибке будет запрещена. Если значение равно 1, то при аварийной остановке будет создан малый дамп памяти (размером 64 Кбайт). Если значение равно 2, то при ошибке будет создаваться дамп памяти ядра. Если же значение равно 3, то будет создаваться файл, содержащий полный дамп памяти (равный объему установленной в системе оперативной памяти).

? DumpFile — параметр REG_EXPAND_SZ-типа указывает путь к файлу (и название файла), в который будет записываться полный дамп памяти (если значение параметра CrashDumpEnabled равно 3). Например, по умолчанию значение равно %systemRoot%Memory.dmp.

? KernelDumpOnly — если значение данного параметра DWORD-типа равно 1, то при ошибке в работе операционной системы в журнал отладки будет записываться только информация о состоянии ядра операционной системы при ошибке. Если же значение равно 0, то в журнал будут заноситься не только сведения о состоянии ядра, но и сведения о состоянии памяти и всех остальных устройств, установленных на компьютере. По умолчанию параметр не существует.

? LogEvent — при установке значения этого параметра DWORD-типа равным 0 в системный журнал не будут записываться сведения о произошедших ошибках в работе операционной системы.

? MinidumpDir — этот параметр REG_EXPAND_SZ-типа определяет путь к каталогу, в который будут записываться файлы малого дампа, если значение параметра CrashDumpEnabled равно 1. Стоит заметить, что в случае использования создания полного дампа памяти будет происходить запись дампа в единственный файл — при каждой новой ошибке данный файл будет переписываться. Если же используются малые дампы памяти, то для каждой ошибки будет создаваться свой файл малого дампа памяти. По умолчанию значение параметра равно %SystemRoot%Minidump.

? Overwrite — параметр DWORD-типа, указывает, будет ли переписываться файл журнала, если достигнут предел этого файла. Если значение равно 1, то при достижении предела файла журнала этот файл будет удален, а на его месте будет создан новый файл. Если же значение равно 0, то в файл журнала не будет записываться информация об ошибке, если он уже существует. По умолчанию значение этого параметра равно 1.

? SendAlert — этот параметр DWORD-типа определяет, будет ли послано сообщение о произошедшей ошибке администратору. По умолчанию значение равно 1, то есть сообщения администратору отсылаться будут.

По умолчанию, если возникает ошибка оболочки Windows XP, система автоматически перезагружает оболочки. За это отвечает DWORD-параметр AutoRestartShell, расположенный в ветви реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon. Если его значение равно 1, то перезагрузка оболочки при ошибке в ней будет выполняться. Существует также параметр, определяющий, будет ли выполняться отладка процесса csrss.exe, если в нем произойдет ошибка. Он находится в той же ветви, что и ранее рассмотренный параметр, и называется DebugServerCommand (имеет строковый тип). По умолчанию значение этого параметра равно по, то есть данный процесс не отлаживается. Чтобы разрешить отладку этого процесса, необходимо присвоить параметру значение yes. Можно также определить, будет ли автоматически перезагружаться компьютер при аварийной остановке операционной системы («синий экран смерти», BSOD). Для этого используется DWORD-параметр AutoReboot, расположенный в ветви системного реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCrashControl. Если значение этого параметра равно 1, то компьютер будет автоматически перезагружаться. Если же значение равно 0, то при аварийной остановке системы будет выводиться «синий экран смерти».

Оглавление книги


Генерация: 2.233. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз