странности ControlServiceEx()

Тема в разделе "WASM.WIN32", создана пользователем m_kostik, 23 окт 2010.

  1. m_kostik

    m_kostik New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2006
    Сообщения:
    9
    Здравствуйте, уважаемые коллеги!
    Проблема такая: написал я сервис, рассчитанный на посылку сообщений при помощи ControlServiceEx(). Сервис нормально создается вызовом CreateService(), запускается вызовом StartService(), удаляется вызовом DeleteService(). Но при попытке послать сервису любую (!) команду получаю системную ошибку "Параметр задан неверно". Работаю в Windows7. Вот пример кода посылки команды:

    SERVICE_CONTROL_STATUS_REASON_PARAMETR AddParametr;
    DWORD dwControl=SERVICE_CONTROL_PAUSE;

    rez = ControlServiceEx(hService, dwControl, SERVICE_CONTROL_STATUS_REASON_INFO, &AddParametr);

    Запускал прогу, которая посылает команды, "от имени администратора" - тот же результат. В журнале событий никаких записей. Для смеха создал точно такой же сервис, но рассчитанный на ControlService(), так тот работает как часы.
    Поиск по MSDN и Google ничего не прояснил. Просто не знаю что и подумать. Третий день бьюсь. У кого какие будут соображения?
     
  2. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    m_kostik
    Не пользовался этими функциями, но простое сравнение прототипов говорит о том, что AddParametr надо инициализировать. Хотя бы поле pszComment в NULL выставить.