ServiceMain

【勇芳软件工作室】汉化HomePreviousNext

ServiceMain函数是服务进程指定为特定服务的入口点函数的函数。该函数可以有任何应用程序定义的名称。

VOID WINAPI ServiceMain(

DWORD 【dwArgc】,//参数数量
LPTSTR *【lpszArgv】//参数字符串指针数组的地址
); 

参数

【dwArgc】

指定【lpszArgv】数组中的参数数。

【lpszArgv】

指向指向以null结尾的参数字符串的指针数组。数组中的第一个参数是服务的名称,后续参数是由调用StartService函数的进程传递给服务的任何字符串以启动该服务。

返回值

此函数不返回值。

备注

服务过程可以启动一个或多个服务。对于可以启动的每个服务,服务进程具有SERVICE_TABLE_ENTRY结构,指定服务名称和指向该服务的ServiceMain函数的指针。

当服务控制管理器接收到启动服务的请求时,它启动服务进程(如果尚未运行)。服务进程的主线程使用指向SERVICE_TABLE_ENTRY结构数组的指针调用StartServiceCtrlDispatcher函数。然后,服务控制管理器向该服务进程的服务控制分派器发送启动请求。服务控制调度程序创建一个新线程来执行正在启动的服务的ServiceMain功能。

该函数应立即调用RegisterServiceCtrlHandler函数来指定一个处理器函数来处理控制请求。接下来,它应该调用SetServiceStatus功能将状态信息发送到服务控制管理器。在这些调用之后,该函数完成服务的初始化任务,然后等待服务终止。

在服务准备好终止之前,ServiceMain函数不会返回。

也可以看看

处理器, RegisterServiceCtrlHandler, SetServiceStatus, SERVICE_TABLE_ENTRY, StartServiceCtrlDispatcher