c中的windows服务代码,在哪里写服务逻辑代码?

时间:2012-12-25 08:00:39

标签: c windows service winsock winexe

标题很一般,但我的疑问是具体的。 我怀疑在哪里编写服务逻辑代码(在服务控制处理程序或ServiceMain中),就像服务将执行的任何功能一样。它在ServiceMain中吗?  我已经在MSDN上查看了与服务相关的这些主题。但是,没有帮助我     http://msdn.microsoft.com/en-us/library/ms687414%28VS.85%29.aspx     http://msdn.microsoft.com/en-us/library/ms685984%28v=vs.85%29.aspx

基本上,我想使用服务启动一个在Windows上监听的套接字。这个监听套接字逻辑代码将在服务文件中,因为我将使用winexe实用程序将此服务从linux框发送到Windows框。目前,winexe在windows上发送winexesvc服务文件。因此,最终我将替换现有的winexesvc服务,以便在Windows上发送时执行特定端口功能的监听。 (服务骨架将保持不变,但其执行逻辑的任务会改变,对吗?)。请告诉我是否遗漏了什么。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

服务控制处理程序应该只处理发送到服务的控制消息(您链接的示例中显示的是SERVICE_CONTROL_STOPSERVICE_CONTROL_INTERROGATE)。这些控制消息从环境发送到服务。

当完成所有必需的初始化时,应在ServiceMain函数中实现服务的逻辑。在帖子中URL的示例中,服务逻辑代码被放入SvcInit函数(这可能不是实现服务逻辑的函数的最合适的名称)。