Чтобы удалить опцию остановки из службы управления mmc. С сервисом .net вы:
ServicesToRun = new ServiceBase[] { new Service1() };
ServicesToRun[0].CanStop = false;
Для win32 см. Документацию по SERVICE_STATUS и SetServiceStatus функциям. Не тестировал эту опцию.
Тем не менее, я не думаю (и надеюсь, что я прав), что в пользовательском пространстве есть возможность предотвратить остановку службы администратором. Администратор все еще может остановить службу, убив процесс из TaskManager или TaskKill.