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

Секреты Windows: статьи о реестре, rundll32.exe, программах


Глава 6. Службы Windows Vista. 6.1. Основные сведения о службах - Хранение сведений о службе в реестре, начало
Дата: 11 сентября 2009, пятница

Новое на сайте neodn.ru:
  • Добавлено подробное описание модификатора Lathe

В конец записи

Служба представляет собой специальный тип программ, реализующих дополнительные возможности операционной системы, и, как правило, работающих в фоновом режиме без взаимодействия с пользователем. Состоят службы из трех компонентов: файла службы, программы управления службой (SCP) и диспетчера управления службами (SCM).

Файл службы является основным файлом, реализующим работу службы, а также хранящим в себе дополнительные функции взаимодействия с SCM.

Программа управления службой (SCP) предназначена для запуска, остановки, настройки службы, а также для взаимодействия с SCM (например, такими программами являются консоль services.msc или программа sc.exe). Несмотря на то, что каждая программа может поставляться со своей собственной SCP, чаще всего службы используют SCP операционной системы Windows.

Диспетчер управления службами (SCM) представляет собой файл services.exe, который запускается процессом Winlogon.exe до запуска графического интерфейса. Он выполняет следующие функции.

  • Хранит (в ветви реестра HKLM\SYSTEM\CurrentControlSet\Services) и предоставляет доступ к сведениям обо всех зарегистрированных в операционной системе службах.
  • Исполняет роль координатора SCP, и взаимодействует с ним при помощи именованного канала \PIPE\NTSVCS.
  • Управляет запуском всех служб. Для этого при запуске службы создается управляющий канал \PIPE\NET\NTCONTROLPIPEX, к которому, для завершения процесса запуска службы, должна подключиться запускаемая служба. Если она этого не сделает в течение определенного интервала времени (по умолчанию 30 секунд), SCM отменит запуск этой службы.

    Интервал ожидания подключения службы к каналу \PIPE\NET\NTCONTROLPIPEX определяется параметром REG_DWORD типа ServicesPipeTimeout. Данный параметр расположен в ветви реестра HKLM\SYSTEM\CurrentControlSet\Control.

  • Управляет завершением всех служб при завершении работы Windows. Для этого процесс csrss.exe (при завершении работы Windows) оповещает о завершении SCM. Диспетчер управления службами же, в свою очередь, оповещает все запущенные службы о необходимости завершить свою работу.

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

    Время, в течение которого процесс csrss.exe ожидает завершения работы служб, определяется значением параметра строкового типа WaitToKillServiceTimeout (в миллисекундах, по умолчанию 20000). Данный параметр расположен в ветви реестра HKLM\SYSTEM\CurrentControlSet\Control.

    Однако из этого правила есть исключение. А именно, службы, запросившие уведомление о завершении работы Windows. Если служба запросила уведомление о завершении работы, тогда диспетчер SCM уведомляет ее о завершении, после чего завершение работы Windows не произойдет до тех пор, пока служба, запросившая уведомление, не завершит свою работу. Если же такая служба не отвечает на запросы диспетчера SCM в течение трех минут, тогда она считается зависшей, и ее работа будет принудительно завершена.

Каждая зарегистрированная в операционной системе служба хранит свои настройки в отдельном подразделе, расположенном в ветви реестра HKLM\SYSTEM\CurrentControlSet\Services. Кроме личных настроек службы, в данном разделе хранятся стандартные настройки, которые мы и рассмотрим в данной главе — их краткое описание приведено ниже.

Основные стандартные параметры службы

В таблице представлены основные параметры службы, которые обязательно должны присутствовать в ветви реестра, чтобы служба была запущена.

Таблица 6.01. Параметры ветви реестра HKLM\SYSTEM\CurrentControlSet\Services\«имя службы»

  • DisplayName. Содержит «человеческое» название данной службы.
  • Description. Содержит описание службы.
  • ImagePath. Определяет путь к исполняемому файлу службы.
  • *Type. Определят тип службы.
  • Параметр может принимать следующие значения: 0х10 (запускает собственный процесс), 0х20 (работает в общем процессе), 0х100 (поддерживает взаимодействие с пользователем; данное значение добавляется к одному из предыдущих значений).
  • *Start. Определяет способ запуска службы.
  • Параметр может принимать следующие значения: 2 (автоматически с помощью SCM), 3 (вручную), 4 (не запускать).
  • *DelayedAutoStart. Если значение данного параметра равно 1, а значение параметра Start равно 2, тогда служба будет запускаться автоматически, но с использованием задержки запуска. То есть, служба будет запущена только после того, как будут запущены все службы со значением параметра Start, равным 2, но без параметра DelayedAutoStart. При этом при запуске такой службы будет использоваться наинизший приоритет поток (а после запуска приоритет потока будет восстановлен до нормального).

*данный параметр имеет тип DWORD

Группы служб

Каждая служба может быть зачислена в определенную группу. От группы зависит время, когда данная служба будет запущена. Дело в том, что все группы служб запускаются последовательно — сначала службы, принадлежащие одной группе, потом службы, принадлежащие к другой группе и т.д. Если же служба не принадлежит ни к одной из групп, она запускается одной из самых последних.

Последовательность запуска групп хранится в параметре MULTI_SZ-типа List, который расположен в ветви реестра HKLM\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder. В таблице ниже представлена некоторая часть этой последовательности, а также названия служб и драйверов, которые входят в соответствующую группу. Ну а в таблице 6.03 представлены параметры, влияющие на порядок запуска службы и группу, в которую она входит — они имеют тип REG_MULTI_SZ.

Последовательность, в которой загружаются группы служб и драйверов, можно просмотреть при помощи команды wmic loadorder get.

Таблица 6.02. Группы служб

  • EMS. нет
  • WdfLoadGroup. Wdf01000
  • **Boot Bus Extender. ACPI, isapnp, mpio, msdsm, msisadrv, pci, volmgr
  • **System Bus Extender. Aliide, amdide, cmdide, Compbatt, intelide, MountMgr, nvraid, pciide, pcmcia, viaide, volmgrx
  • SCSI miniport. Adpahci, arc, arcsas, atapi, i2omp, iirsp, msahci, nfrd960
  • Port. Нет
  • **Primary Disk. Нет
  • **SCSI Class. Нет
  • SCSI CDROM Class. cdrom
  • FSFilter Infrastructure. FltMgr
  • FSFilter System. Нет
  • FSFilter Bottom. FileInfo
  • FSFilter Copy Protection. Нет
  • FSFilter Security Enhancer. Нет
  • FSFilter Open File. Нет
  • FSFilter Physical Quota Management. Нет
  • FSFilter Virtualization. luafv
  • FSFilter Encryption. Нет
  • FSFilter Compression. Нет
  • FSFilter Imaging. Нет
  • FSFilter HSM. Нет
  • FSFilter Cluster File System. Нет
  • FSFilter System Recovery. Нет
  • FSFilter Quota Management. Нет
  • FSFilter Content Screener. Нет
  • FSFilter Continuous Backup. Нет
  • FSFilter Replication. Нет
  • FSFilter Anti-Virus. Нет
  • FSFilter Undelete. Нет
  • FSFilter Activity Monitor. Filetrace
  • FSFilter Top. Нет
  • **Filter. CLFS
  • **Boot File System. Fastfat, Fs_Rec
  • **Base. Beep, Null, usbccgp, usbehci, usbhub, usbohci, usbscan, usbuhci
  • Pointer Port. Mouhid, sermouse
  • Keyboard Port. i8042prt, kbdhid
  • Pointer Class. mouclass
  • Keyboard Class. kbdclass
  • Video Init. DXGKrnl
  • Video. Vga
  • Video Save. RDPCDD, RDPENCDD, VgaSave
  • **File System. Cdfs, Msfs, Npfs, Ntfs, udfs
  • ***Streams Drivers. RasAcd
  • ***NDIS Wrapper. NDIS
  • COM Infrastructure. DcomLaunch, RpcSs, WinDefend
  • Event Log. Eventlog
  • AudioGroup. AudioEndpointBuilder, Audiosrv
  • ProfSvc_Group. CscService, gpsvc, ProfSvc, SENS, slsvc, Themes
  • UIGroup. UxSms
  • MS_WindowsLocalValidation. SamSs
  • PlugPlay. PlugPlay, TabletInputService, wudfsvc
  • PNP_TDI. AFD, NDProxy, netbt, Smb, Tcpip, Tcpip6, tdx, ws2ifsl
  • ***NDIS. E1G60, lltdio, NativeWifiP, Ndisuio, PSched, rspndr, RT2500, tunnel, usb_rndisx, yukonwlh
  • ***TDI. Dhcp, Dnscache, dot3svc, lmhosts, Wlansvc
  • iSCSI. MSiSCSI
  • ***NetBIOSGroup. NetBIOS
  • ShellSvcGroup. ShellHWDetection
  • SchedulerGroup. Schedule
  • SpoolerGroup. Spooler
  • SmartCardGroup. SCardSvr
  • ***NetworkProvider. BFE, Browser, LanmanWorkstation, MpsSvc, WebClient
  • MS_WindowsRemoteValidation. Netlogon
  • ***NetDDEGroup. Нет
  • Parallel arbitrator. Parport
  • Extended Base. AmdK7, AmdK8, circlass, Crusoe, HDAudBus, HidBth, HidIr, HidUsb, intelppm, Modem, MODEMCSA, MSKSSRV, MSPCLOCK, MSPQM, MSTEE, ntrigdigi, Parvdm, Processor, Serial, umbus, usbcir, usbprint, ViaC7, WacomPen, WmiAcpi
  • **PCI Configuration. Нет
  • MS Transactions. MSDTC
  • *Cryptography. KSecDD
  • **PnP Filter. agp440, amdagp, crcdisk, Ecache, fvevol, gagp30kx, nv_agp, partmgr, Serenum, sisagp, uagp35, uliagpkx, viaagp
  • ***network. Bowser, CSC, DfsC, mpsdrv, mrxsmb, mrxsmb10, mrxsmb20, Mup, rdbss, srv, srv2, srvnet

*группы, начиная с этой и ниже, не присутствуют в параметре List ветви HKLM\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder

**данная группа запускается при запуске Windows в безопасном режиме и безопасном режиме с поддержкой сети.

***данная группа запускается при запуске Windows в безопасном режиме с поддержкой сети.

Таблица 6.03. Параметры ветви реестра HKLM\SYSTEM\CurrentControlSet\Services\«имя службы»

  • *Group. Определяет группу, к которой относится данная служба.
  • DependOnGroup. Определяет группы, которые должны быть запущены перед запуском данной службы. Если во время запуска службы какая-то группа еще не будет запущена, не будет запущена и данная служба.
  • DependOnService. Определяет службы, которые должны быть запущены перед запуском данной службы. Если во время запуска службы какая-то требуемая ей служба еще не будет запущена, не будет запущена и данная служба.

*данный параметр имеет строковый тип

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

Рейтинг: 0 
Оцените: 1 2 3 4 5
moemesto.ru bobrdobr.ru - добавить в социальные закладки
В начало записи
Оригинал статьи: http://www.onestyle.com.ua/txt.php?u=645

В избранное