嗯,我最近开始开发驱动程序,所以我认为我应该让一个类以编程方式启动服务。但是,当然,像往常一样,我在路上遇到了一些麻烦。正在启动一项服务?
我使用StartService来启动它,但由于某种原因它只是挂起,我已经做了一些关于互联网的研究,它似乎等待ServiceMain函数的保证,告诉控制管理器该服务已经成功初始化并正在运行。
问题是,似乎没有任何工作,我已经使用StartServiceCtrlDispatcher()初始化ServiceMain函数,但它似乎永远不会被调用,我已经将一些代码插入到servicemain函数中以确保它被调用,并且这不是因为某种奇怪的原因。
我确定过程中没有其他函数失败,CreateService返回成功,就像OpenService一样,但是一旦我到达StartService,它就会挂起,并且它会让我再次调用StartService的唯一方法是在我重新启动后。所以,我想我问的是,如果有任何简单的解释我可以如何解决这个问题,也许一些代码,如果你们不介意。
在此先感谢。 非常感谢。
你实际上是在开发服务还是仅仅是一个启动服务的程序?如果你正在开发这个服务,那么这听起来像你的问题在那里(而不是在另一个调用StartService的程序中)。安装服务后,如果尝试通过“控制面板”的“服务”部分启动它,会发生什么情况? – TheUndeadFish 2010-09-20 02:47:43
是的,我正在开发该服务,但现在它只是将消息打印到调试器,我可以使用OSRloader进行注册和启动。我不确定服务本身是否需要其中的任何内容才能正常工作,但现在它只具有driverentry功能。 – David 2010-09-20 02:54:47