Windows Vista. Для профессионалов
Шрифт:
– 0x1 – драйвер представляет устройство уровня ядра.
– 0x2 – драйвер является драйвером файловой системы уровня ядра.
– 0x4 – драйвер является аргументом для адаптера (данное значение является устаревшим).
– 0x8 – драйвер используется для распознавания файловой системы.
– 0x10 – служба является программой, запускающей свой процесс.
– 0x20 – служба является программой, работающей в общем процессе. Работа нескольких служб в одном процессе позволяет экономить ресурсы компьютера.
– 0x100 – данное значение параметра может добавляться к остальным значениям. Присутствие этого значения говорит о том, что службе разрешено взаимодействовать с Рабочим столом пользователя (то есть
По умолчанию службы, запущенные от имени системы или другой учетной записи, не могут взаимодействовать с Рабочим столом текущего пользователя. Это связано с особенностями работы операционной системы Windows: каждая учетная запись имеет свой собственный Рабочий стол и может взаимодействовать только с ним. При этом отображаться может только один Рабочий стол – текущего пользователя. Поэтому, даже если служба попытается отобразить какое-либо сообщение (за исключением диалогового сообщения, которое служба может отобразить на Рабочем столе текущего пользователя, воспользовавшись специальными параметрами), пользователь этого сообщения не увидит.
Если же разрешить службе, запущенной от имени локальной системы, взаимодействовать с Рабочим столом, то она будет отображать окна не на своем Рабочем столе, а на Рабочем столе текущего пользователя.
Примечание
Запретить работу служб в интерактивном режиме можно с помощью параметра типа REG_DWORD NolnteractiveServices, расположенного в ветви HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet\Control\Windows.
• FailureActions – этот параметр REG_BINARY-типа определяет действия, которые будет выполняться в том случае, если в работе службы произошел сбой. При этом сначала в этом параметре описываются действия для первой неудачной попытки запуска, затем для второй, а потом для всех остальных.
• RequiredPrivileges – имеет тип REG_MULTI_SZ и определяет особые привилегии, которые необходимы для работы данной службы. Он впервые появился в операционной системе Windows Vista с целью повышения общей безопасности компьютера. Теперь службы, которым полностью не нужны системные права, но необходимо выполнять определенные системные операции, могут быть запущены с пониженными правами, однако при этом им будет предоставлено определенное системное право, необходимое для их работы.
Примечание
Для получения сведений о службах, установленных в операционной системе, можно использовать класс Win32_Service, который принадлежит пространству имен root\ cimv2 и является производным от классов Win32_BaseService и CIM_Service. Например, он поддерживает следующие свойства: AcceptPause (определяет, разрешено ли приостанавливать работу службы), AcceptStop (указывает, разрешено ли останавливать работу службы), Description (содержит строку описания службы), Desktoplnteract (определяет, может ли служба взаимодействовать с Рабочим столом пользователя). DisplayName (указывает название службы), ErrorControl (определяет поведение операционной системы при возникновении ошибки во время запуска данной службы). Name (ключевое свойство, определяющее имя службы), PathName (указывает путь к исполняемому файлу службы), ProcessID (определяет PID процесса запущенной службы), Started (указывает, запущена ли служба в данный момент), StartName (определяет учетную запись, от имени которой запускается служба).
Класс также поддерживает следующие методы: Create (позволяет создать службу). Delete (позволяет удалить службу), Change (позволяет
Если вы знакомы с сервером инструментариев Windows (WMI), то, наверное, уже догадались, что параметр может хранить те же константы привилегий, что и сценарии WMI.
Некоторые параметры реестра , описывающие стандартные настройки службы, также хранятся в подразделе Parameters. К ним можно отнести два параметра: ServiceDll и ServiceDllUnloadOnStop. Первый имеет тип REG_EXPAND_SZ и определяет библиотеку, необходимую для работы данной службы. Второй же параметр имеет тип REGDWORD и определяет, будут ли выгружаться из оперативной памяти компьютера библиотеки, необходимые для работы данной службы, если сама служба была остановлена.
Кроме того, некоторые службы и драйверы хранят в своей ветви реестра подразделы Performance. В данных подразделах описывается библиотека, в которой находятся счетчики производительности соответствующей службы, а также индивидуальные параметры работы этих счетчиков. Например, в данной ветви реестра может находиться параметр REG_DWORD-типа Collect Timeout, определяющий таймаут, в течение которого счетчики должны выполнить задание и ответить на запрос состояния.
Настройки служб svchost
Как вы уже узнали, служба может работать как в собственном процессе, так и в одном из общих процессов. Это позволяет экономить ресурсы компьютера. Хотя при этом появляется другая проблема: если возникнет ошибка в работе одной из служб, то будет завершена работа общего процесса, а вместе с ним и всех служб, которые в нем работали.
Одним из общих процессов для запуска служб является процесс svchost.ехе (например, общим также является процесс services.ехе). Он также называется «универсальным» процессом. Одновременно в операционной системе может существовать несколько запущенных процессов svchost.ехе. При этом каждый из них содержит службы определенного типа (например, типа netsvcs). Данные типы служб указываются как параметр строки запуска службы, расположенной в параметре Image Path ветви службы.
Все службы, исполняемый файл которых является частью файла svchost.ехе, имеют несколько настраиваемых параметров, расположенных в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ Svchost.
Эта ветвь реестра хранит набор параметров строкового типа. Их значения определяют службы, исполняемый файл которых является частью файла svchost.ехе. Название же этих параметров определяет название дочернего подраздела ветви системного реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\ CurrentVersion\ Svchost, в котором расположены настройки для этих служб. Название этих параметров также соответствуют записи SCM, под которой эти службы исполняются.
В этих подразделах могут находиться три параметра, имеющие тип REGDWORD, однако наиболее интересным из них является параметр Def aultRpcStackSize. Он определяет размер стека RPC, используемый соответствующими службами.
Основы работы драйверов
Как вы знаете, в ветви системного реестра HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services описываются не только установленные в операционной системе службы, но и драйверы. При этом драйверы описываются с помощью тех же основных параметров реестра , что и службы. Хотя значения, присваиваемые данным параметрам, могут отличаться. Так, например, параметр Туре для драйверов может использовать только значения 1, 2 и 4. А параметр Start – значения 0 и 1.
Неудержимый. Книга VIII
8. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
рейтинг книги
Законы Рода. Том 6
6. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
рейтинг книги
Восход. Солнцев. Книга I
1. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
рейтинг книги
Попаданка
Любовные романы:
любовно-фантастические романы
рейтинг книги
Возлюби болезнь свою
Научно-образовательная:
психология
рейтинг книги
