93 /*
94 * custom code goes here.
95 */
96
97
while(g_bStop == FALSE)
98 {
99 Sleep(1000);
100 }
101
102
UpdateService(SERVICE_STOPPED);
103 }
104
105
int
106 main(DWORD argc, LPSTR argv[])
107 {
108 SERVICE_TABLE_ENTRY dispTable[2];
109 BOOL ret = FALSE;
110
111
memset(&dispTable, 0x00, sizeof(SERVICE_TABLE_ENTRY) * 2);
112
113
dispTable[0].lpServiceName = SERVICE_NAME;
114 dispTable[0].lpServiceProc = ServiceMain ;
115
116
// start service, service execution
117 // begins in ServiceMain function
118 ret =
119 StartServiceCtrlDispatcher(dispTable);
120
121
return(ret == FALSE ? 1 : 0);
122 }
Analysis
■
At line 106, the program’s main() function is declared.This function serves only
to set up the ServiceMain function.The ServiceMain function is then executed as
the service’s main ...