У меня есть служба Windows А это зависит от сервиса B.
Согласно этому Статья в Microsoft KB Я могу добавить раздел реестра, чтобы Windows дождалась B начинается перед запуском А.
Могу ли я ожидать обслуживания А быть закрытым до B когда я закрываю Windows?
К сожалению, не раньше Windows Vista.
Вот слово из уст лошади: http://support.microsoft.com/kb/203878
В Windows Vista (и более новых версиях) есть функция «Заказ завершения работы службы». Это контролируется параметром реестра PreShutDownOrder (кратко упомянутым в http://technet.microsoft.com/en-us/magazine/2007.03.vistakernel.aspx).
Поиск "PreShutDownOrder" с "site: microsoft.com" в Google возвращает очень мало результатов. Похоже, что это только квазидокументированное Microsoft. Я бы поигрался с ним и посмотрел, делает ли он то, что вы хотите.
Вот запись в блоге, в которой упоминается это из блога «Ask Perf» (действительно отличный блог, кстати, если вам нравится знать о внутренностях Windows): https://techcommunity.microsoft.com/t5/Ask-The-Performance-Team/WS2008-Service-Shutdown-and-Crash-Handling/ba-p/372708
Служба, у которой есть другие службы, зависящие от нее, закрывает другие службы, прежде чем закрывать себя, когда вы делаете это вручную.
Изменить: Эван Андерсон опубликовал ссылку о том, что он не использует зависимости при выключении ОС в случае работы от ИБП и т. Д. Это хороший и верный момент (хотя он не упоминает Windows новее 2000).