53 L"Service state 0x%lx, CheckPoint %lu",
161 if (dwControl > 127 && dwControl < 256)
201 LogEvent(
L"Service threads shut down. Set SERVICE_STOPPED status", 0, 0,
LOG_FILE);
static WCHAR ServiceName[]
VOID WINAPI ServerCtrlHandler(DWORD dwControl, DWORD dwEventType, LPVOID lpEventData, LPVOID lpContext)
#define SERVICE_ACCEPT_STOP
INT WSAAPI WSACleanup(VOID)
#define ERROR_SERVICE_SPECIFIC_ERROR
SERVICE_STATUS servStatus
DWORD WINAPI GetLastError(VOID)
#define SERVICE_START_PENDING
DWORD dwServiceSpecificExitCode
DWORD WINAPI QotdHandler(VOID *sock_)
SERVICE_STATUS_HANDLE hStatus
DWORD WINAPI WaitForMultipleObjects(IN DWORD nCount, IN CONST HANDLE *lpHandles, IN BOOL bWaitAll, IN DWORD dwMilliseconds)
BOOL WINAPI StartServiceCtrlDispatcherW(const SERVICE_TABLE_ENTRYW *lpServiceStartTable)
BOOL WINAPI SetServiceStatus(SERVICE_STATUS_HANDLE hServiceStatus, LPSERVICE_STATUS lpServiceStatus)
GLenum GLuint GLenum GLsizei const GLchar * buf
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
static SERVICES Services[NUM_SERVICES]
INT WINAPI WSAStartup(IN WORD wVersionRequested, OUT LPWSADATA lpWSAData)
int _snwprintf(wchar_t *buffer, size_t count, const wchar_t *format,...)
static BOOL CreateServers(PSERVICEINFO pServInfo)
DWORD WINAPI DiscardHandler(VOID *sock_)
#define SERVICE_CONTROL_INTERROGATE
#define SERVICE_WIN32_OWN_PROCESS
#define SERVICE_ACCEPT_PAUSE_CONTINUE
static SERVICE_STATUS_HANDLE(WINAPI *pRegisterServiceCtrlHandlerExA)(LPCSTR
DWORD WINAPI ChargenHandler(VOID *sock_)
#define SERVICE_ACCEPT_SHUTDOWN
struct _ServiceInfo * PSERVICEINFO
DWORD(WINAPI * LPHANDLER_FUNCTION_EX)(DWORD, DWORD, LPVOID, LPVOID)
#define SERVICE_CONTROL_PAUSE
SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerExW(LPCWSTR lpServiceName, LPHANDLER_FUNCTION_EX lpHandlerProc, LPVOID lpContext)
int _cdecl swprintf(const WCHAR *,...)
#define InterlockedExchange
DWORD WINAPI EchoHandler(VOID *sock_)
struct _ServiceInfo SERVICEINFO
VOID LogEvent(LPCWSTR lpMsg, DWORD errNum, DWORD exitCode, UINT flags)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
static VOID UpdateStatus(PSERVICEINFO pServInfo, DWORD NewStatus, DWORD Check)
#define SERVICE_CONTROL_CONTINUE
int _tmain(int argc, LPTSTR argv [])
DWORD WINAPI DaytimeHandler(VOID *Sock_)
#define SERVICE_CONTROL_STOP
VOID WINAPI ServiceMain(DWORD argc, LPWSTR argv[])
#define SERVICE_STOP_PENDING
SERVICE_TABLE_ENTRYW ServiceTable[]
DWORD WINAPI StartServer(LPVOID lpParam)
#define SERVICE_CONTROL_SHUTDOWN