Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Всё о работе в Интернет" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Секреты Windows: статьи о реестре, rundll32.exe, программах Реестр Windows Vista. Запуск компьютера: Службы и драйверы
Полезные ссылки"Журнал Эффективная работа на компьютере"- компьютер для начинающих. С уважением Артём Ющенко. Адрес сайта http://artomu.com E-mail: admin@artomu.com Новости нашего сайта:
Как драйверы, так и службы являются важной частью операционной системы, влияющей как на ее работоспособность, так и на ее быстродействие. Большинство драйверов запускается еще до 1 фазы загрузки Windows Vista, тогда как службы запускаются уже при окончании 1 фазы. Несмотря на все функциональные отличия в работе служб и драйверов, сведения о них хранятся в одной и той же ветви реестра — HKLM\System\CurrentControlSet. Работа служб в Windows VistaРабота служб основана на трех компонентах: собственно файле службы, программе управления службой (SCP) и диспетчере управления службами (SCM). Файл службы Файл службы как раз и представляет саму службу. От обычной программы он отличается лишь дополнительными функциями, призванными для взаимодействия с SCM, реализованными в нем. SCP Основными функциями программы управления службой (SCP) является запуск, остановка и настройка работы службы для взаимодействия с SCM. Как правило, службы используют стандартные программы управления службами операционной системы Windows (например, такими программами являются консоль services.msc или программа командной строки sc.exe). Хотя каждая служба может поставляться со своей собственной SCP. SCM Сведения обо всех зарегистрированных в операционной системе службах содержатся в диспетчере управления службами (SCM). Постоянным представлением базы зарегистрированных в операционной системе служб в диспетчере SCM является ветвь реестра HKLM\SYSTEM\CurrentControlSet\Services. Также диспетчер SCM предназначен для взаимодействия с SCP. Для этого используется именованный канал \Pipe\Ntsvcs. И еще одним предназначением SCM является запуск и остановка служб. Для этого он создает именованный канал \Pipe\Net\NtControlPipeX, после чего ждет подключения к данному каналу запускаемой при помощи SCP службы. Если служба подключилась к каналу, SCM передает по каналу команду окончательного запуска службы. После этого служба считается запущенной. Если же в течение определенного интервала времени (по умолчанию 30 секунд) служба не подключилась к каналу, диспетчер SCM закрывает именованный канал и завершает работу такой службы, сообщая об ошибке. Интервал ожидания подключения службы к именованному каналу определяется значением параметра REG_DWORD типа ServicesPipeTimeout, расположенного в ветви реестра HKLM\SYSTEM\CurrentControlSet\Control. В операционной системе Windows Vista диспетчером управления службами является файл services.exe. Диспетчер SCM запускается процессом Winlogon.exe еще до запуска диалога входа в систему. Хранение сведений о службах и драйверах в реестреКак было сказано выше, сведения о службах, зарегистрированных в операционной системе, содержатся в ветви HKLM\SYSTEM\CurrentControlSet\Services. Также в данной ветви реестра хранятся сведения обо всех драйверах. Каждая служба или драйвер (независимо от того, работает служба в данный момент или нет) имеет отдельный подраздел в данной ветви реестра. Данный подраздел создается при регистрации службы с помощью вызова API-функции CREATESERVICE из библиотеки advapi32.dll. Каждый подраздел данной ветви содержит в себе как общие сведения о службе (или драйвере), которые одинаковы для всех служб, так и настройки конкретной службы. Например, к общим сведениям о службе относятся имя и описание службы, путь к файлу службы, способ ее запуска и многое другое. Такие сведения хранятся непосредственно в подразделе службы (а не в его дочерних подразделах), в параметрах, названия которых одинаковы для всех служб. Как правило, используются одни и те же значения всех общих параметров, не зависимо от того, определяется ли подразделом драйвер или служба. Хотя есть и исключения — например, способ запуска служб и драйверов отличается. Большинство общих параметров имеет строковый тип. Ниже мы опишем многие из них. Основные сведения о службах или драйверахК основным сведениям можно отнести название службы, ее описание и файл службы — от есть, те сведения, без которых работа службы затруднительна. DisplayName Данный параметр определяет название службы. Это название используется в различных программах, например, в консоли services.msc, как альтернативный способ идентификации службы. Основным же способом идентификации службы, который используется на уровне операционной системы, является название подраздела реестра, в котором служба описана. Description Данный параметр содержит описание службы. ImagePath Данный параметр содержит путь к исполняемому файлу, который является файлом службы. Security Данный параметр имеет тип REG_BINARY. Он определяет дескриптор защиты службы. Дескриптор защиты описывает пользователей, которые могут получить доступ к службе, а также те действия, которые разрешено совершать данным пользователям. Type Данный параметр имеет тип REG_DWORD. Он определяет тип службы или драйвера. Данный параметр может принимать следующие значения.
Права службыОсновные возможности службы определяются правами, которые данная служба имеет. Права же службы в большей мере зависят от учетной записи, от имени которой запускается служба. Однако в Windows Vista учетная запись является не самым главным способом определения прав службы. В соответствии с концепцией безопасности по умолчанию, которую приводит в жизнь корпорация Microsoft, все меньше служб запускаются от имени локальной системы и со всеми привилегиями. ObjectName Данный параметр определяет учетную запись пользователя, от имени которого запускается служба. Если данный параметр отсутствует в подразделе службы, тогда служба запускается с правами локальной системы. Этот параметр может принимать следующие значения.
ServiceSidType Данный параметр является нововведением операционной системы Windows Vista и имеет тип REG_DWORD. Он определят тип идентификатора безопасности SID, присвоенного данной службе. Если значение данного параметра равно 1, тогда служба будет использовать неограниченный SID. А если значение данного параметра равно 3, тогда ограниченный. Идентификатор безопасности (SID) служит для идентификации службы с целью определения объектов (ветвей реестра или папок файловой системы), к которым данная служба может получить доступ. Благодаря этому параметру многие службы операционной системы Windows Vista больше не требуют запуска от имени локальной системы (что снижает безопасность компьютера). Если служба запускается от имени стандартного пользователя, но требует для своей работы доступ к определенным ветвям реестра или каталогам, доступ к которым стандартному пользователю запрещен, применяется SID службы. Операционная система предоставляет данной службе доступ к соответствующим объектам на основе ее идентификатора безопасности. RequiredPrivileges Данный параметр является нововведением операционной системы Windows Vista и имеет тип REG_MULTI_SZ. Он определяет дополнительные привилегии, которые необходимы для работы этой службы. Благодаря этому параметру многие службы операционной системы Windows Vista больше не требуют запуска от имени локальной системы (что снижает безопасность компьютера). Вместо этого службы запускаются от имени стандартного пользователя, но с предоставлением отдельных дополнительных привилегий, необходимых для функционирования службы. Параметры запуска службыНа процесс запуска службы влияют значения следующих параметров. Start Данный параметр имеет тип REG_DWORD. Он определяет момент запуска службы, и будет ли служба запускаться вообще. Данный параметр может принимать следующие значения.
ErrorControl Данный параметр имеет тип REG_DWORD. Он определяет действия, которые выполнит операционная система при возникновении ошибок во время запуска службы. Данный параметр может принимать следующие значения.
DelayedAutoStart Данный параметр является нововведением операционной системы Windows Vista и имеет тип REG_DWORD. Если значение этого параметра равно 1, тогда служба будет запускаться автоматически подсистемой SMSS, однако не сразу, а через определенный промежуток времени (с задержкой). Данный параметр используется в том случае, если значение параметра start равно 2. FailureActions Данный параметр имеет тип REG_BINARY. Он определяет действия, которые будет выполнять операционная система при обнаружении ошибок в работе службы. Формат значения данного параметра следующий: сначала описываются действия для первой неудачной попытки запуска, потом для второй, а потом для всех остальных. Группы служб и драйверовБольшинство служб и драйверов операционной системы входят в одну из стандартных групп. От группы, в которую входит служба, зависит момент ее запуска. Все группы запускаются последовательно — сначала запускаются службы, принадлежащие одной группе, потом службы, принадлежащие другой группе и т.д. Если служба не принадлежит ни к одной группе, она запускается в последнюю очередь. Последовательность запуска групп описана в параметре типа REG_MULTI_SZ List, ветви HKLM\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder. Group Данный параметр определяет группу, к которой относится данная служба. Tag Данный параметр имеет тип REG_DWORD. Он определяет конкретную позицию драйвера в группе, указанной параметром Group. DependOnGroup Данный параметр имеет тип REG_MULTI_SZ. Он определяет группы, которые обязательно должны быть запущены перед запуском данной службы. Как правило, данный параметр используется для указания групп, необходимых для работы соответствующей службы. Если данная служба зависит от группы, которая запускается позже группы, в которую входит данная служба, тогда будет выдано сообщение об ошибке. DependOnService Данный параметр имеет тип REG_MULTI_SZ. Он определяет службы, которые должны быть запущены перед запуском данной службы. Как правило, данный параметр используется для указания служб, без работы которых запуск данной службы невозможен. Если данная служба зависит от службы, которая запускается позже данной службы, тогда будет выдано сообщение об ошибке. Стандартные дочерние подразделы раздела службыТакже в подразделе службы могут находиться некоторые стандартные дочерние подразделы. Подраздел Parameters Данный подраздел содержит в себе основные параметры, предназначенные для настройки работы службы. Большинство из них зависят от конкретной службы. Однако также в данном подразделе могут находиться два стандартных параметра: ServiceDll и ServiceDllUnloadOnStop. Параметр ServiceDll имеет тип REG_EXPAND_SZ. Он определяет библиотеку, необходимую для работы службы. Параметр ServiceDllUnloadOnStop имеет тип REG_DWORD. Если значение данного параметра равно 1, тогда библиотека, необходимая для работы службы, будет выгружаться из оперативной памяти компьютера при остановке работы данной службы. Подраздел Performance Данный подраздел содержит сведения о библиотеках, описывающих счетчики производительности соответствующей службы, а также индивидуальные параметры работы счетчиков производительности для данной службы. Содержимое данного подраздела было описано ранее на страницах этой книги. Общий процесс svchostСуществует два способа создания службы: либо создание отдельного файла службы, либо создание службы, входящей в один из стандартных общих процессов. Использование общих процессов позволяет экономить ресурсы компьютера, однако снижает отказоустойчивость служб. Одним из общих процессов операционной системы Windows Vista является процесс svchost.exe. Данный процесс называется «универсальным» процессом. Одновременно в операционной системе может существовать несколько запущенных процессов svchost.exe. Каждый из этих процессов содержит в себе службы определенного типа (например, тип службы netsvcs). Типы службы для общего процесса указывается как часть значения параметра ImagePath раздела службы. Настройки работы универсального процесса svchost.exe, хранятся в ветви HKLM\Software\Microsoft\Windows NT\CurrentVersion\Svchost. Данная ветвь реестра содержит в себе набор параметров строкового типа, значения которых определяют службы, работа которых основана на общем процессе svchost.exe. Название же этих параметров определяет тип службы для общего процесса, и, заодно, название дочернего подраздела ветви реестра HKLM\Software\Microsoft\Windows NT\CurrentVersion\Svchost, в котором расположены настройки для этих служб. Дочерние подразделы данной ветви реестра могут содержать в себе три параметра, имеющие тип REG_DWORD. Наиболее интересным из них является параметр DefaultRpcStackSize. Он определяет размер стека RPC, используемый соответствующими службами. Интерактивные службыИнтерактивными службами называются службы, которым разрешено взаимодействовать с рабочим столом пользователя (значение параметра Type которых больше 0x100). По умолчанию службы не могут взаимодействовать с рабочим столом текущего пользователя. Это связано с особенностью работы операционной системы Windows. Механизм рабочих столов Каждый пользователь, работающий в операционной системе, имеет свой собственный рабочий стол. Рабочий стол текущего пользователя, вошедшего в операционную систему, отображается на экране. Соответственно, рабочие столы остальных пользователей (например, пользователя, от имени которого была запущена служба) на экране отображаться не могут, ведь в определенный момент времени на экране может отображаться только один рабочий стол. При этом пользователь может взаимодействовать только со своим рабочим столом и не может получить доступ к рабочему столу других пользователей, работающих в данный момент за тем же компьютером. Если совместить вместе все приведенные выше тезисы, получается, что служба не сможет отобразить перед пользователем какое-либо диалоговое окно. Даже если она попытается это сделать, диалоговое окно будет отображено на рабочем столе пользователя, от имени которого запущена служба, а текущий пользователь это диалоговое окно не увидит. Исключением из этого правила может являться диалоговое сообщение с установленными специальными атрибутами, которое служба может отобразить на рабочем столе текущего пользователя. Механизм интерактивных служб Выходом из этого положения является разрешение службе взаимодействовать с рабочим столом при помощи параметра type. В этом случае служба будет работать не с рабочим столом пользователя, от имени которого служба была запущена, а с рабочим столом текущего пользователя. Интерактивной службой может быть лишь служба, запущенная от имени локальной системы. Вы можете запретить работу служб в интерактивном режиме. Для этого нужно параметру REG_DWORD типа NoInteractiveServices, расположенному в ветви реестра HKLM\SYSTEM\CurrentControlSet\Control\Windows, присвоить значение 1. Служба Обнаружение интерактивных службТип запуска: вручную. Учетная запись: система. Дополнительные привилегии: SETCBPRIVILEGE, SEASSIGNPRIMARYTOKENPRIVILEGE, SEINCREASEQUOTAPRIVILEGE. Файлы службы: нет. Исполняемый файл: UI0Detect.exe. Подраздел реестра: UI0Detect. Службы, необходимые для работы данной: нет. Возможность взаимодействия интерактивных служб с рабочим столом текущего пользователя основана на работе службы ОБНАРУЖЕНИЕ ИНТЕРАКТИВНЫХ СЛУЖБ. Продолжение следует Рейтинг: 0 В начало записиОцените: 1 2 3 4 5 Оригинал статьи: http://www.onestyle.com.ua/txt.php?u=361
|
В избранное | ||