好吧,我最近开始开发驱动程序,所以我想我应该创建一个以编程方式启动服务的类。但是,当然,像往常一样,我在途中遇到了一些麻烦。
我正在使用StartService来启动它,但由于某种原因它只是挂起,我已经在互联网上做了一些研究,它似乎等待来自ServiceMain函数的保证告诉控制管理器该服务已经成功已初始化并正在运行。
问题是,似乎没有任何工作,我已经使用StartServiceCtrlDispatcher()初始化了ServiceMain函数,但它似乎永远不会被调用,我已经将一些代码插入到servicemain函数中以确保它被调用,并且它不是出于某种奇怪的原因。
我确保过程中没有其他功能失败,CreateService会返回成功,OpenService也是如此,但是一旦我到达StartService,它就会挂起,而且它让我再次调用StartService的唯一方法是我重新启动后。
所以,我想我要问的是,如果有任何关于我如何解决这个问题的简单解释,可能会有一些代码,如果你们不介意的话。
提前致谢。 非常感激。
答案 0 :(得分:0)
我相信有很多示例代码here:)
一般来说,如果StartService
挂起,那是因为你给它了垃圾数据。无论有问题的服务有多么糟糕,StartService
都应立即返回。