Сразу же хотелось бы рассмотреть еще один диалог, доступ к которому можно получить при помощи вкладки ADVANCED диалога SYSTEM PROPERTIES. Этот диалог не влияет на интерфейс операционной системы Windows Vista, но позволяет настроить поведение операционной системы при возникновении ошибок.

В операционной системе Windows XP можно было самостоятельно сгенерировать «синий экран» с кодом 0x000000E2. Для этого нужно было присвоить параметру REG_DWORD типа CrashOnCtrlScroll, расположенному в ветви реестра HKLM\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters, значение 1. После этого (после перезагрузки компьютера) можно будет вызвать «синий экран», дважды нажав на клавишу Scroll Lock, при зажатой правой клавише Ctrl.

Данная возможность поддерживается только клавиатурами, использующими стандартный драйвер операционной системы i8042prt.sys. Как правило, это клавиатуры, работающие через порт PS/2.

Операционная система Windows Vista также содержит данный драйвер, и этот драйвер также поддерживает параметр CrashOnCtrlScroll.

Чтобы отобразить диалог STARTUP AND RECOVERY, нужно нажать на кнопку SETTINGS… поля STARTUP AND RECOVERY. Данный диалог содержит два основных поля: SYSTEM STARTUP и SYSTEM FAILURE. Первое поле мы рассмотрели, когда настраивали параметры загрузочного меню Windows Vista, поэтому сейчас давайте обратим внимание только на второе поле.

Данное поле содержит три флажка, установленных по умолчанию.

* WRITE AN EVENT TO THE SYSTEM LOG. Определяет, будет ли записываться сообщение об ошибке в системный журнал Windows Vista. * AUTOMATICALLY RESTART. Определяет, будет ли выполняться автоматическая перезагрузка компьютера при отображении «синего экрана смерти». * OVERWRITE ANY EXISTING FILE. Определяет, будет ли выполняться перезапись файла дампа содержимого оперативной памяти (memory.dmp), если он уже существует.

Виды дампов памяти

Также с помощью поля SYSTEM FAILURE можно определить, будет ли вообще создаваться дамп содержимого оперативной памяти при возникновении ошибки, и если будет, то какой. Для этого используется выпадающий список поля WRITE DEBUGGING INFORMATION. Он содержит следующие элементы.

* (NONE). Не создавать дамп памяти. * SMALL MEMORY DUMP (64 KB). Создает малый дамп памяти, размером 64 Кбайт, содержащий только информацию об ошибке. Все малые дампы памяти хранятся в каталоге %systemroot%\Minidump (в виде отдельных файлов с именами в формате mini«месяц»«день»«год»-«порядковый номер файла».dmp).

Малый дамп памяти содержит в себе следующие данные. o Список загруженных во время возникновения ошибки драйверов. o Контекст процессора (PRCB), который привел к возникновению ошибки. o Сведения о процессе, вызвавшем ошибку, и контекст его ядра (EPROCESS). o Сведения о процессе, поток которого вызвал ошибку, и его контекст ядра (ETHREAD). o Стек вызовов в режиме ядра для потока, который привел к ошибке.

Следует обратить внимание на то, что малый дамп памяти можно создавать только в том случае, если размер используемого операционной системой файла подкачки (расположенного на загрузочном томе) равен как минимум 2 Мбайт.

Данный вид дампа памяти можно загружать с помощью программы Dumpchk.exe. Эта программа анализирует дамп памяти, выводит его содержимое в удобочитаемом виде, а также указывает на секции, в которых, возможно, и возникла ошибка. Основной синтаксис данной программы: Dumpchk.exe «опции» «имя файла малого дампа». * KERNEL MEMORY DUMP. Создает только дамп оперативной памяти, содержащей ядро операционной системы. Данный тип дампа используется по умолчанию. При этом в каталоге %systemroot% будет создаваться файл memory.dmp. Размер файла memory.dmp будет равен примерно одной трети от всего объема оперативной памяти компьютера.

Дамп памяти ядра содержит в себе следующие данные. o Содержимое памяти, выделенной для ядра. o Содержимое памяти, выделенное для HAL. o Содержимое памяти, выделенное для драйверов режима ядра и других программ режима ядра.

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

* COMPLETE MEMORY DUMP. Вместо дампа ядра операционной системы создается полный дамп оперативной памяти. При этом создается файл memory.dmp, расположенный в каталоге %systemroot%, который хранит в себе содержимое всей оперативной памяти компьютера на момент возникновения ошибки. При следующем возникновении ошибки, содержимое файла memory.dmp будет перезаписано.

Следует обратить внимание на то, что полный дамп памяти можно создавать только в том случае, если размер используемого операционной системой файла подкачки как минимум на 1 Мбайт больше объема всей оперативной памяти компьютера. Кроме того, полный дамп памяти нельзя создавать на компьютерах с 32-битной операционной системой, на которых установлено более 2 Гбайт оперативной памяти.

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

Также параметры работы с дампами памяти можно просмотреть при помощи свойств класса Win32_OSRecoveryConfiguration, принадлежащего пространству имен root\cimv2. Например, данный класс поддерживает следующие свойства: AutoReboot (определяет, будет ли выполняться автоматическая перезагрузка компьютера при возникновении критической ошибки), DebugFilePath (определяет путь к файлу, в который будут помещаться данные при создании полного дампа памяти), DebugInfoType (определяет тип создаваемого при возникновении ошибки дампа памяти), KernelDumpOnly (определяет, будет ли выполняться только создание дампа памяти ядра), Name (ключевое свойство, определяющее операционную систему, настройки которой храняться в экземпляре классе), OverwriteExistingDebugFile (определяет, будет ли новый дамп памяти перезаписывать старый). SendAdminAlert (определяет, будет ли при возникновении ошибки отправляться сообщение на административную консоль), WriteToSystemLog (определяет, будет ли при возникновении ошибки информация о ней записываться в стандартный журнал операционной системы).

В операционной системе Windows Vista вы можете самостоятельно создать дамп памяти определенного запущенного в данный момент процесса. Для этого достаточно запустить программу Windows Task Manager (комбинация клавиш CTRL+SHIFT+ESC), перейти на вкладку PROCESSES, выбрать нужный процесс и в его контекстном меню выбрать команду CREATE DUMP FILE. После этого начнется процесс создания дампа памяти, по завершении которого перед вами отобразится путь к каталогу, в котором был создан дамп памяти данного процесса.

Использование групповых политик

Также для настройки оболочки можно применять групповые политики, расположенные в подразделе КОНФИГУРАЦИЯ ПОЛЬЗОВАТЕЛЯ/АДМИНИСТРАТИВНЫЕ ШАБЛОНЫ/START MENU AND TASKBAR.

Все описанные ниже групповые политики измяют значения параметров REG_DWORD типа ветви реестра HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer.

Turn off user tracking Установка данной политики позволяет отключить стандартный механизм операционных систем семейства Windows, направленный на слежение за действиями пользователя. Например, именно с помощью этого механизма возможна работа персонализированного меню ПУСК и персонализированных меню различных программ. Если вы не пользуетесь этой возможность, то для увеличения быстродействия компьютера ее можно отключить.

Данная политика влияет на значение параметра NoInstrumentation.

Do not use the search-based method when resolving shell shortcuts Установка данной политики позволяет отключить стандартный механизм операционных систем семейства Windows, направленный на восстановление ярлыков, которые из-за перемещения файла, на которые они указывали, больше не работают. После установки данной политики система не будет выполнять поиск перемещенного файла на томах NTFS.

Данная политика влияет на значение параметра NoResolveSearch.

Do not use the tracking-based method when resolving shell shortcuts Установка данной политики позволяет отключить стандартный механизм операционных систем семейства Windows, направленный на восстановление ярлыков, которые из-за перемещения файла, на которые они указывали, больше не работают. После установки данной политики система не будет выполнять поиск перемещенного файла на основе его идентификатора на томах NTFS. Вместо этого будет выдаваться сообщение о том, что ярлык указывает на несуществующий файл.

Данная политика влияет на значение параметра NoResolveTrack.

Настройка оболочки с помощью реестра

Установка активации окон при перемещении на них указателя

В Windows Vista, как и в остальных операционных системах семейства Windows, присутствует возможность активации окна при перемещении на него указателя мыши, без дополнительного щелчка мышью по нему. Это может быть очень полезно для портативных компьютеров (ноутбуков или TabletPC), где не слишком удобно пользоваться левой и правой клавишей мыши.

Для включения активации применяется два бита (это битовая маска) параметра REG_DWORD типа UserPreferencesMask, расположенного в ветви реестра HKCU\Control Panel\Desktop.

Также этот параметр может иметь тип REG_BINARY. Не забывайте, что параметры типа REG_BINARY отличаются от параметров типа REG_DWORD направлением чтения байтов. Например, если нужно установить битовую маску 0x00000001, тогда нужно добавить к значению параметра типа REG_DWORD значение 1 (то есть, изменить последний байт значения параметра). Однако, если нужно добавить эту битовую маску к параметру типа REG_BINARY, тогда значение 1 нужно добавить к первому байту значения параметра (например, чтобы добавить 1 к значению параметра 00 00 00 00, нужно изменить значение параметра на 01 00 00 00).

* 0х00000001. Установка данного бита приводит к активации окна при наведении на него указателя. При этом само окно не переходит на передний план. * 0х00000040. Установка данного бита приводит к тому, что активированные окна будут переходить на передний план.

Также можно определить время удержания курсора мыши над окном, перед тем, как оно станет активным. Для этого необходимый интервал времени (в миллисекундах) нужно указать в параметре REG_DWORD типа ActiveWndTrkTimeout, расположенном в ветви реестра HKCU\Control Panel\Desktop.

Изменение времени отображения списков меню

По умолчанию Windows Vista выполняет задержку перед отображением содержимого меню (приблизительно в половину секунды). Однако существует возможность отключения данной задержки или изменение самой величины задержки.

Для этого применяется параметр строкового типа MenuShowDelay, расположенный в ветви реестра HKCU\Control Panel\Desktop. Он содержит в себе величину задержку с миллисекундах.

Изменение цвета, которым выделяются сжатые и зашифрованные файлы и папки

По умолчанию названия сжатых файлов операционная система Windows Vista отображает синим цветом, а зашифрованных — зеленым. Однако можно самостоятельно указать цвета, которыми будут отображаться сжатые и зашифрованные файлы. Для этого нужно воспользоваться ветвью реестра HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer.

Чтобы изменить цвет названия сжатых файлов, нужно указать новый цвет в параметре REG_BINARY типа AltColor. Данный параметр имеет следующий формат значения: 0xR 0xG 0xB 00, где 0xR представляет красную компоненту цвета, 0xG зеленую, а 0xB синюю.

Чтобы изменить цвет названия сжатых файлов, нужно указать новый цвет в параметре REG_BINARY типа AltEncryptionColor.

Изменение назначения клавиш мультимедийной клавиатуры Если вы обладаете мультимедийной клавиатурой, имеющей такие дополнительные клавиши, как, например, BACK, E-MAIL, MEDIA, CALC и т.д., тогда с помощью реестра можно изменить назначение этих клавиш. Для этого нужно указать новую команду в параметре строкового типа Shell Execute в одном из подразделов данной ветви реестра.

Данная ветвь реестра может содержать в себе следующие подразделы:

* 1 — определяет команду клавиши BACK; * 2 — определяет команду клавиши FORWARD; * 3 — определяет команду клавиши REFRESH; * 4 — определяет команду клавиши STOP; * 5 — определяет команду клавиши SEARCH; * 6 — определяет команду клавиши FAVORITES; * 7 — определяет команду клавиши HOME; * 15 — определяет команду клавиши E-MAIL; * 16 — определяет команду клавиши MEDIA; * 17 — определяет команду клавиши MY COMPUTER; * 18 — определяет команду клавиши CALCULATOR.

Вместо параметра Shell Execute можно воспользоваться еще одним параметров строкового типа: Association. Значение данного параметра должно содержать расширение файла (вместе с точкой перед расширением), ассоциированная с которым программа будет запускаться после нажатия данной мультимедийной клавиши.

Настройка параметров работы файловой системы NTFS

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

Для настройки большинства возможностей файловой системы Windows Vista можно пользоваться как реестром, так и командой fsutil behavior. Мы рассмотрим оба этих способа вместе.

Все настройки файловой системы NTFS хранятся в параметрах типа REG_DWORD ветви реестра HKLM\SYSTEM\CurrentControlSet\Control\FileSystem. При этом некоторые из них, возможно, уже будут вам известны, так как они присутствовали и в предыдущих версиях Windows.

Чтобы изменить какой-нибудь параметр работы файловой системы, доступный при помощи программы fsutil.exe, нужно воспользоваться командой Fsutil behavior set «параметр» «значение». Список же всех возможных параметров можно отобразить при помощи команды Fsutil Behavior query. Также можно просмотреть текущее значение параметра. Для этого применяется команда Fsutil Behavior query «параметр».

Итак, с помощью программы fsutil.exe можно изменить значения следующих параметров.

* Allowextchar. Данная команда изменяет значение параметра реестра NtfsAllowExtendedCharacterIn8dot3Name. Она позволяет разрешить или запретить отображение символов, не относящихся к числовым символам или буквам алфавита, в именах файлов формата 8.3 (имена в формате MS-DOS). Возможные значения: 0 или 1. * disable8dot3. Данная команда изменяет значение параметра реестра NtfsDisable8dot3NameCreation. Она позволяет разрешить или запретить возможность создания имен файлов в формате 8.3. По умолчанию значение данного параметра равно 0. Возможные значения: 0 или 1. * Disablecompression. Нововведение операционной системы Windows Vista. Данная команда изменяет значение параметра NtfsDisableCompression, с помощью которого можно запретить использование стандартных возможностей сжатия операционной системы. По умолчанию значение данного параметра равно 0. Возможные значения: 0 или 1. * Disableencryption. Нововведение операционной системы Windows Vista. Данная команда изменяет значение параметра NtfsDisableEncryption, с помощью которого можно запретить использование стандартных возможностей шифрования (EFS) операционной системы. По умолчанию значение данного параметра равно 0. Возможные значения: 0 или 1. * disablelastaccess. Данная команда изменяет значение параметра реестра NtfsDisableLastAccessUpdate. Она позволяет включить или отключить механизм обновления меток последнего доступа к папкам. По умолчанию обновление меток включено, что снижает скорость открытия каталогов. Поэтому лучше установить значение данного параметра равным 1. Возможные значения: 0 или 1. * Encryptpagingfile. Нововведение операционной системы Windows Vista. Данная команда изменяет значение параметра NtfsEncryptPagingFile, с помощью которого можно указать, будет ли выполняться шифрование содержимого файла подкачки. По умолчанию значение данного параметра равно 0. Возможные значения: 0 или 1. * quotanotify. Данная команда изменяет значение параметра реестра NtfsQuotaNotifyRate. Она позволяет указать интервал (в секундах) возникновения событий записи информации о квоте в стандартный журнал Windows. Слишком большое значение частоты приводит к подвисанию компьютера во время записи в журнал, так как ко времени возникновения события, запросов на запись в журнал может накопиться очень много. По умолчанию значение равно 3600 секунд. Возможные значения: от 0 до 4294967295. * Memoryusage. Нововведение операционной системы Windows Vista. Данная команда изменяет значение параметра NtfsMemoryUsage. Позволяет определить общий размер оперативной памяти, выделяемый для нужд файловой системы. По умолчанию значение данного параметра равно 0. Возможные значения: 1 или 2. * mftzone. Данная команда изменяет значение параметра реестра NtfsMftZoneReservation. Она позволяет определить формат главной таблицы тома (MFT). При использовании значения 1 таблица MFT будет подстраиваться под хранение малого количества файлов большого размера. При использовании значения 4 таблица MFT будет подстраиваться под хранение большого количества файлов малого размера. Промежуточные значения 2 и 3 подстраивают таблицу MFT под хранение файлов среднего размера с уклоном, соответственно, в ту или иную сторону. По умолчанию значение параметра вообще равно 0. Возможные значения: 1 или 4. * SymlinkEvaluation. Нововведение операционной системы Windows Vista. Данная команда изменяет значения следующих параметров реестра: SymlinkLocalToLocalEvaluation, SymlinkLocalToRemoteEvaluation, SymlinkRemoteToLocalEvaluation, SymlinkRemoteToRemoteEvaluation. С помощью этих параметров можно определить, разрешены ли соответствующие символьные ссылки (локальная ссылка на локальную, локальная ссылка на удаленную, и т.д.). По умолчанию значения данных параметров, соответственно, равны 1, 1, 0, 0. Возможные значения: 0 или 1.

Настройка работы с эскизами страниц

Операционная система Windows Vista предоставляет больше возможностей для настройки работы с эскизами страниц, чем ее предшественницы.

Основной ветвью реестра, в которой содержатся сведения о настройках хранения кэша эскизов страниц для данной учетной записи пользователя, является ветвь HKCU\Software\Microsoft\Windows\CurrentVersion\ThumbnailCache. В ней могут находиться следующие параметры.

* Location. Данный параметр содержит в себе путь к каталогу, в котором находятся файлы, содержащие кэш эскизов страниц. В данном каталоге содержатся следующие файлы кэша эскизов страниц с расширением .db: thumbcache_32, thumbcache_96, thumbcache_256, thumbcache_1024, thumbcache_idx и thumbcache_sr. По умолчанию кэш эскизов страниц хранится в каталоге %userprofile%\AppData\Local\Microsoft\Windows\Explorer. * MaxCacheFileSize32. Определяет максимальный размер файла кэша эскизов страниц thumbcache_32. * MaxCacheFileSize96. Определяет максимальный размер файла кэша эскизов страниц thumbcache_96. * MaxCacheFileSize256. Определяет максимальный размер файла кэша эскизов страниц thumbcache_256. * MaxCacheFileSize1024. Определяет максимальный размер файла кэша эскизов страниц thumbcache_1024. * MaxPercentageOfFreeSpaceForRebalancing. Определяет процент свободного места на диске, при котором может происходить процесс ребалансировки файлов кэша эскизов. * ShrinkIfGreaterThanPercentageOfFreeSpace. Определяет, будет ли происходить сжатие файлов кэша эскизов при уменьшении свободного места на диске. * MinCacheFilesSizesWhenShrinking32. Определяет размер файла кэша эскизов thumbcache_32, при преодолении которого начнется процесс сжатия. * MinCacheFilesSizesWhenShrinking96. Определяет размер файла кэша эскизов thumbcache_96, при преодолении которого начнется процесс сжатия. * MinCacheFilesSizesWhenShrinking256. Определяет размер файла кэша эскизов thumbcache_256, при преодолении которого начнется процесс сжатия. * MinCacheFilesSizesWhenShrinking1024. Определяет размер файла кэша эскизов thumbcache_1024, при преодолении которого начнется процесс сжатия.