2013-09-15 3 views
0

У меня есть служба Windows. Я также разработал драйвер для устройства. Я хочу, чтобы мое обслуживание запускалось только при подключении устройства.Регистрация приложения для запуска в системном событии

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

Есть ли другой способ запуска службы или приложения из системного события.

+0

Зачем это запрещено? (Документация?) Я думаю, что окна делают то же самое. Некоторые службы запускаются только при необходимости. – Rik

+0

@Rik Я знаю, что есть http://blogs.msdn.com/b/wpdblog/archive/2009/08/15/introducing-device-services.aspx, которые можно запустить из файла inf, но они не regualr services – user844541

ответ

0

В разделе StartService Function documentation обсуждаются условия запуска службы, в том числе обсуждения того, когда они не могут быть использованы, и как проверить это условие. Он, в частности, говорит, что:

При запуске службы драйвер, функция StartService не возврата, пока драйвер не завершит инициализацию.

Итак, вы должны завершить инициализацию устройства перед выпуском StartService, но это должно быть возможно?

+0

Спасибо! но является ли обслуживание водителя регулярным сервисом? потому что из того, что я увидел, «Служба драйверов соответствует протоколам драйвера устройства. Она похожа на приложение-сервис, но не взаимодействует с SCM» – user844541

+0

В своем вопросе и вашем комментарии вы цитировали неопубликованные источники. Это верно даже после того, как Рик попросил вас об этом. Предоставьте полную информацию, чтобы люди могли дать полезные ответы. В частности, в приведенной здесь ссылке обсуждаются взаимодействия SCM с драйверами. Эта служба драйверов относительно новая, поэтому ваша цитата может быть датирована? –

0

Что я буду делать, так это зарегистрировать приложение как задачу в планировщике заданий и установить триггер для события в журнале событий.

Тогда в моем драйвере я подниму это конкретное событие.

Таким образом, я могу запустить приложение из драйвера.

+0

Я не собираюсь говорить, что это не сработает, но я бы не считал это надежным, потому что просто слишком много «движущихся частей», которые могут сломаться. Если это служит вашей цели, это достаточно хорошо. –

Смежные вопросы