Після розгляду призначення розділів формату ControlSetNNN ви знаєте, що вони призначені для зберігання налаштувань запускаються системою служб. Але як ці настройки зберігаються в реєстрі? Саме цьому питанню і присвячений даний розділ.
Всі налаштування запуску служб зберігаються в галузі реєстру HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services. Вона містить список розділів, кожен з яких визначає опису однієї служби або сервісу. Назви цих розділів, в принципі, не мають значення (але якщо для служби не існує параметра DisplayName, то для її ідентифікації буде використовуватися назва розділу, в якому вона описується). Значення мають ті параметри, які описані у відповідному розділі. До таких параметрів можна віднести наведені нижче.
DependOnService - параметр REG_MULTI_SZ-типу, визначає сервіси, які повинні бути запущені перед запуском даної служби. Значення цього параметра відображаються на вкладці Залежності діалогу Властивості, що викликається подвійним клацанням лівою кнопкою миші на рядку, що визначає дану службу в оснащенні services.msc.
DisplayName - цей параметр строкового типу визначає рядок назви служби, яка як раз і буде ідентифікувати службу в оснащенні services.msc (дана рядок буде відображатися в поле Ім'я оснащення services.msc).
Description - параметр строкового типу, визначає рядок опису для відповідної служби. Рядок буде відображатися в поле Опис діалогу Властивості для даної служби.
ErrorControl - параметр DWORD-типу, визначає поведінку системи при виникненні помилок в роботі служби і може приймати такі значення:
• 0 - ігнорувати помилку;
• 1 - попереджати користувача про помилку;
• 2 - перезавантажити комп'ютер.
Start - параметр DWORD-типу, визначає момент завантаження системи, в який буде запущена дана служба. Він може приймати наступні значення:
• 0 - служба буде запускатися завантажувача операційної системи перед початком етапу ініціалізації ядра;
• 1 - дана служба буде запускатися при ініціалізації ядра (підсистемою введення / виводу);
• 2 - служба буде запускатися диспетчером сервісів (smss.exe) при вході користувача в систему;
• 3 - дана служба запускається вручну в той момент, коли вона знадобиться який-небудь програмою;
• 4 - служба не буде запускатися ніколи.
Type - цей параметр DWORD-типу вказує на те, до якого типу належить служба, і може набувати таких значень:
• 1 - служба визначає пристрої рівня ядра;
• 2 - служба визначає драйвер файлової системи;
• 4 - служба є аргументом для адаптера;
• 8 - служба відноситься до служб файлової системи;
• 10 - служба є програмою, яка запускає свій процес;
• 20 - служба є програмою, яка запускає спільний процес;
• 100 - якщо дана бітова маска присутня в параметрі Туре, то система буде вирішувати відповідній службі взаємодія з Робочим столом (інакше служба не зможе вивести діалогове вікно, вікно повідомлення або своє вікно).
Для прикладу спробуємо зареєструвати в системі свою власну службу. Для цього достатньо лише створити свій розділ у галузі HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services, а в цьому розділі створити такі параметри, як ImagePath, DisplayName, Description, Group. Результат можна бачити на рис. 8.1.
Мал. 8.1. Створення своєї служби