Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Секреты Windows: статьи о реестре, rundll32.exe, программах Недокументированные возможности Windows XP. Реестр. Часть 9


Другие наши рассылки:
  • Новости IT-мира: Ежедневно ссылки на новые новости и статьи популярных компьютерных сайтов.
  • Рецензии на новые книги: Описание новых книг о компьютерах, дизайне, бухгалтерии, психологии и др. направлениях мысли человечества.
  • Новости нашего сайта: Ежедневно ссылки на новое на нашем сайте: от ссылок на статьи до ссылок на новые/обновленные записи баз данных.

Продолжение, начало в выпусках: 21 23 26 28 30 32 34 36 38

Книга "Недокументированные возможности Windows XP. Библиотека пользователя", Глава 2. Реестр Windows XP. Часть 9. Оптимизация Windows: Другие настройки

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

Автоматическое завершение программ при выключении компьютера

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

Если данный диалог выводится очень редко, тогда с ним еще можно смириться. Но если он выводится практически при каждом завершении работы системы? Тогда реестр Windows позволяет задать для завершения работы системы режим автоматического завершения работы зависших программ. В этом случае, если какая-то программа или служба не отвечает в течение 20 секунд, которые будут даваться на завершение работы процессов, тогда работа зависшей программы будет завершаться автоматически. При этом следует учитывать, что, поскольку выполняется принудительное завершение работы процесса, существует вероятность, что все данные, которыми в это время оперировал зависший процесс, будут утеряны.

Чтобы заставить операционную систему при выходе автоматически завершать работу процессов, которые не завершили свою работу в течение определенного времени (по умолчанию, 20 секунд), необходимо присвоить параметру строкового типа AUTOENDTASKS значение 1. Данный параметр расположен в ветви реестра HKEY_CURRENT_USER\CONTROL PANEL\DESKTOP.

Если значение параметра AUTOENDTASKS равно 1, тогда можно определить значение еще несколько параметров, которые влияют на процесс автоматического завершения работы программ и служб. К ним можно отнести следующие параметры строкового типа.

HungAppTimeout Значение данного параметра определяет интервал времени (в миллисекундах) в течение которого программа должна ответить на запрос системы. Если в течение этого времени программа не ответила на запрос системы, тогда она считается зависшей. Значение данного параметра не используется при завершении работы компьютера — данный параметр предназначен для определения зависших программ в процессе работы пользователя в системе. При этом система не принимает никаких действий по завершению работы зависшей программы, даже если значение параметра AUTOENDTASKS равно 1.

Данный параметр расположен в ветви реестра HKEY_CURRENT_USER\CONTROL PANEL\DESKTOP. По умолчанию значение данного параметра равно 5000, что соответствует интервалу ожидания ответа, равному 5 секунд. В принципе, значение данного параметра можно уменьшить до 2000, что соответствует 2 секундам интервала. Хотя никакой функциональной разницы от этого изменения не будет — просто на три секунды раньше программа станет считаться зависшей. При этом, если программа все-таки ответит на запрос системы, она опять станет считаться работающей.

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

Данный параметр расположен в ветви реестра HKEY_CURRENT_USER\CONTROL PANEL\DESKTOP. По умолчанию значение данного параметра равно 20000, что соответствует интервалу ожидания ответа, равному 20 секунд. Этого интервала с избытком хватает на завершение работы программ при завершении работы операционной системы. Более того, если во время завершения работы операционной системы довольно редко зависают программы, тогда значение параметра WAITTOKILLAPPTIMEOUT можно уменьшить до 5000 — интервала в 5 секунд, как правило, также всегда хватает для корректного завершения работы программ.

WaitToKillServiceTimeout Значение данного параметра определяет интервал времени (в миллисекундах) в течение которого служба должна завершить свою работу при завершении работы операционной системы. По умолчанию значение этого параметра равно 20000. Этого также с избытком хватает для завершения работы служб, но можно присвоить этому параметру значение, равное, например, 7000. Ниже этого значения лучше не опускаться, ведь, как часто бывает, службы оперируют критичной для корректной работы операционной системы информацией (тем более, большая часть служб запущена с правами системы, то есть, может изменять значения многих ветвей реестра), некорректная запись которой может привести к повреждению реестра.

Выгрузка библиотек при выходе из программы

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

Настройками выгрузки библиотек программ руководит параметр DWORD-типа ALWAYSUNLOADDLL, расположенный в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\EXPLORER. По умолчанию значение этого параметра равно 0, что говорит о том, что библиотеки не будут выгружаться вместе с программой. Если же необходимо выгружать библиотеки, необходимо присвоить этому параметру значение 1.

Функция упреждающей выборки

Одним из нововведений операционной системы Windows XP стала возможность упреждающей выборки (prefetching) часто используемых программ. То есть, при первом запуске программы (и при запуске операционной системы) части ее кода копируются в специальную папку (%systemroot%\prefetch), а при следующих запусках программы эти части сразу берутся из папки, тем самым ускоряя запуск программы. Данная возможность включена по умолчанию.

Настройки упреждающей выборки расположены в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\CONTROL\SESSION MANAGER\MEMORY MANAGEMENT\PREFETCHPARAMETERS. При этом, параметром, управляющим работой функции упреждающей выборки, является параметр DWORD-типа ENABLEPREFETCHER. Данный параметр может содержать следующие значения.

  • 0 — полностью отключить механизм упреждающей выборки. Как правило, данный механизм действительно повышает загрузку программ, поэтому отключать его не стоит.
  • 1 — задействовать только возможность упреждающей выборки запускаемых приложений. При этом возможность упреждающего чтения при запуске компьютера использоваться не будет — как правило, эта возможность понижает скорость загрузки компьютера, поэтому, если критерий времени загрузки компьютера важен, следует использовать именно это значение параметра.
  • 2 — задействовать только возможность упреждающей выборки при запуске компьютера. Возможность упреждающей выборки запускаемых приложений использоваться не будет.
  • 3 — задействовать обе возможности. Данное значение параметра присвоено по умолчанию.
Настройки поведения при крахе системы или программы

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

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

Все настройки отправки сообщений расположены в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\PCHEALTH\ERRORREPORTING. Данная ветвь содержит в себе как набор параметров (все параметры имеют тип DWORD), так и ряд подразделов. Среди параметров, которые присутствуют в этой ветви, можно выделить следующие.

AllOrNone С помощью данного параметра можно определить, сообщения об ошибках в каких программах будут отправляться Microsoft. Если значение этого параметра равно 1, тогда будут отправляться сообщения об ошибках во всех приложениях, установленных на компьютере. Если же значение этого параметра равно 0, тогда будет выполняться отправка сообщений об ошибках только в приложениях, перечисленных в подразделе реестра HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\PCHEALTH\ERRORREPORTING\INCLUSIONLIST. При этом также можно определить приложения, сообщения об ошибках в которых не будут отправляться корпорации Microsoft. Для этого предназначена ветвь реестра HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\PCHEALTH\ERRORREPORTING\EXCLUSIONLIST. Оба приведенных подраздела реестра должны содержать в себе список параметров DWORD-типа, названных в честь названия соответствующей программы (например, для описания программы wmplayer, имя параметра должно быть равно 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_USER\SOFTWARE\MICROSOFT\OFFICE\10.0\COMMON. Данная ветвь содержит в себе следующие параметры DWORD-типа.

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

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

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

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

Кроме генерации отчетов об ошибках, операционная система по умолчанию выполняет запуск стандартного отладчика drwtsn.exe для попытки восстановления работы программы. Если эта возможность вам также не нужна (немногие пользователи в наше время знакомы с ассемблером), тогда можно отключить запуск отладчика. Для этого достаточно параметру строкового типа AUTO присвоить значение 0. Данный параметр расположен в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\AEDEBUG. Также в данной ветви присутствует параметр строкового типа DEBUGGER, который определяет путь к программе для отладки приложения.

Если же произошел крах системы, после которого нормальная работа операционной системы невозможна, тогда система записывает в файл дамп памяти, код, записанный в пределах которой, вызвал неустранимую ошибку, а после этого перезагружает компьютер или выводит экран BSOD (синий экран смерти). Как правило, обычным пользователям записываемый дамп памяти совершенно не нужен — что с ним делать? Поэтому можно отключить запись дампа памяти. Настройки поведения системы при аварийной остановке находятся в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\CONTROL\CRASHCONTROL. Данная ветвь содержит в себе следующие параметры.

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_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\WINLOGON. Если его значение равно 1, то перезагрузка оболочки, при ошибке в ней, будет выполняться. Также существует параметр, определяющий, будет ли выполняться отладка процесса csrss.exe, если в нем произойдет ошибка. Этот параметр находится в той же ветви, что и ранее рассмотренный нами параметр, и называется DEBUGSERVERCOMMAND (имеет строковый тип). По умолчанию значение этого параметра равно No, то есть, данный процесс не отлаживается. Чтобы разрешить отладку этого процесса, необходимо присвоить параметру значение Yes. Также можно определить, будет ли автоматически перезагружаться компьютер при аварийной остановке операционной системы (синий экран смерти, BSOD). Для этого используется параметр DWORD-типа AUTOREBOOT, расположенный в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\CONTROL\CRASHCONTROL. Если значение этого параметра равно 1, тогда компьютер будет автоматически перезагружаться. Если же значение этого параметра равно 0, тогда при аварийной остановке системы будет показываться синий экран смерти.

Размер кэша второго уровня

Существует возможность указания размера кэша второго уровня установленного в системе процессора. Для этого применяется параметр DWORD-типа SECONDLEVELDATACACHE. Если значение данного параметра равно 0, тогда размер кэша будет определяться HAL автоматически (если это сделать не получится, тогда будет считаться, что кэш второго уровня имеет размер 256 Кб). Если же данный параметр имеет отличное от нуля значение, то это значение и будет равно размеру кэша второго уровня в байтах.

Продолжение следует

Оригинал статьи: http://www.onestyle.com.ua/txt.php?u=130

В избранное