Чтение онлайн

ЖАНРЫ

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

Клименко Роман

Шрифт:

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

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

будет завершена автоматически. При этом все несохранённые данные будут утеряны.

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

■ WaitToKillServiceTimeout — расположен в ветви системного реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control. Его значение определяет интервал времени (в миллисекундах) в течение которого служба должна закончить свою работу при завершении работы операционной системы. По умолчанию значение этого параметра равно 20000. Этого также с избытком хватает для завершения работы служб, но можно присвоить этому параметру значение, равное, например, 7 000. Ниже этого значения лучше не опускаться, ведь, как часто бывает, службы оперируют информацией, критичной для корректной работы операционной системы (тем более, большая часть служб запущена с правами системы, то есть может изменять значения многих ветвей реестра), некорректная запись которой может привести к повреждению реестра. 

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

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

Настройками выгрузки библиотек программ руководит параметр DWORD-типа AlwaysUnloadDll, расположенный в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer. По умолчанию значение этого параметра равно 0 — это говорит о том, что библиотеки не будут выгружаться вместе с программой. Если же необходимо выгружать библиотеки, то следует присвоить этому параметру значение 1.

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

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

Настройки упреждающей выборки расположены в ветви системного реестра Windows 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-типа с именами, соответствующими определенной программе (например, для описания программы Проигрыватель 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.

Поделиться с друзьями: