ReactOS 0.4.16-dev-306-g647d351
dnsrslvr.c
Go to the documentation of this file.
1/*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS DNS Resolver
4 * FILE: base/services/dnsrslvr/dnsrslvr.c
5 * PURPOSE: DNS Resolver Service
6 * PROGRAMMER: Christoph von Wittich
7 */
8
9/* INCLUDES *****************************************************************/
10
11#include "precomp.h"
12
13#define NDEBUG
14#include <debug.h>
15
16/* GLOBALS ******************************************************************/
17
21static WCHAR ServiceName[] = L"Dnscache";
22
24
25/* FUNCTIONS *****************************************************************/
26
27static
28VOID
31 DWORD NewStatus,
33{
34 if (Increment > 0)
36 else
38
39 SvcStatus.dwCurrentState = NewStatus;
41}
42
43static
47 DWORD dwControl,
48 DWORD dwEventType,
49 LPVOID lpEventData,
50 LPVOID lpContext)
51{
52 switch (dwControl)
53 {
60 break;
61
63 return NO_ERROR;
64
65 default:
67 }
68 return NO_ERROR;
69}
70
71VOID
74 DWORD argc,
75 LPWSTR *argv)
76{
78
81
82 DPRINT("ServiceMain() called\n");
83
90 SvcStatus.dwWaitHint = 4000;
91
94 NULL);
95
97 {
98 DPRINT1("DNSRSLVR: Unable to register service control handler (%lx)\n", GetLastError());
99 return; // FALSE
100 }
101
103
105
107 0,
110 NULL,
111 0,
112 NULL);
113
114 if (!hThread)
115 {
117 DPRINT("Can't create RpcThread\n");
119 }
120 else
121 {
123 }
124
125 DPRINT("ServiceMain() done\n");
127}
128
129BOOL
130WINAPI
132 _In_ HINSTANCE hinstDLL,
133 _In_ DWORD fdwReason,
135{
137
138 switch (fdwReason)
139 {
142 hDllInstance = hinstDLL;
143 break;
144
146 break;
147 }
148
149 return TRUE;
150}
151
152/* EOF */
static SERVICE_STATUS_HANDLE(WINAPI *pRegisterServiceCtrlHandlerExA)(LPCSTR
static int argc
Definition: ServiceArgs.c:12
#define DPRINT1
Definition: precomp.h:8
VOID DnsIntCacheFree(VOID)
Definition: cache.c:36
VOID DnsIntCacheInitialize(VOID)
Definition: cache.c:21
#define NO_ERROR
Definition: dderror.h:5
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define CloseHandle
Definition: compat.h:739
#define ERROR_CALL_NOT_IMPLEMENTED
Definition: compat.h:102
#define DLL_PROCESS_ATTACH
Definition: compat.h:131
#define DLL_PROCESS_DETACH
Definition: compat.h:130
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
Definition: loader.c:85
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)
Definition: thread.c:137
static WCHAR ServiceName[]
Definition: dnsrslvr.c:21
static VOID UpdateServiceStatus(HANDLE hServiceStatus, DWORD NewStatus, DWORD Increment)
Definition: dnsrslvr.c:29
static DWORD WINAPI ServiceControlHandler(DWORD dwControl, DWORD dwEventType, LPVOID lpEventData, LPVOID lpContext)
Definition: dnsrslvr.c:46
SERVICE_STATUS_HANDLE ServiceStatusHandle
Definition: dnsrslvr.c:19
BOOL WINAPI DllMain(_In_ HINSTANCE hinstDLL, _In_ DWORD fdwReason, _In_ PVOID pvReserved)
Definition: dnsrslvr.c:131
VOID WINAPI ServiceMain(DWORD argc, LPWSTR *argv)
Definition: dnsrslvr.c:73
SERVICE_STATUS SvcStatus
Definition: dnsrslvr.c:20
DWORD WINAPI RpcThreadRoutine(LPVOID lpParameter)
Definition: rpcserver.c:20
HINSTANCE hDllInstance
Definition: dnsrslvr.c:18
IN OUT PLONG IN OUT PLONG Addend IN OUT PLONG IN LONG Increment
Definition: CrNtStubs.h:46
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
BOOL ReadHostsFile(VOID)
Definition: hostsfile.c:291
static LPCSTR DWORD void * pvReserved
Definition: str.c:196
#define argv
Definition: mplay32.c:18
HANDLE hThread
Definition: wizard.c:28
#define _In_
Definition: no_sal2.h:158
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:325
#define L(x)
Definition: ntvdm.h:50
RPC_STATUS WINAPI RpcMgmtStopServerListening(RPC_BINDING_HANDLE Binding)
Definition: rpc_server.c:1596
SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerExW(LPCWSTR lpServiceName, LPHANDLER_FUNCTION_EX lpHandlerProc, LPVOID lpContext)
Definition: sctrl.c:812
BOOL WINAPI SetServiceStatus(SERVICE_STATUS_HANDLE hServiceStatus, LPSERVICE_STATUS lpServiceStatus)
Definition: sctrl.c:997
#define DPRINT
Definition: sndvol32.h:73
DWORD dwServiceType
Definition: winsvc.h:99
DWORD dwWin32ExitCode
Definition: winsvc.h:102
DWORD dwControlsAccepted
Definition: winsvc.h:101
DWORD dwWaitHint
Definition: winsvc.h:105
DWORD dwCurrentState
Definition: winsvc.h:100
DWORD dwCheckPoint
Definition: winsvc.h:104
DWORD dwServiceSpecificExitCode
Definition: winsvc.h:103
SERVICE_STATUS_HANDLE hServiceStatus
Definition: main.c:10
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
DWORD(WINAPI * LPTHREAD_START_ROUTINE)(LPVOID)
Definition: winbase.h:754
#define WINAPI
Definition: msvc.h:6
#define SERVICE_STOPPED
Definition: winsvc.h:21
#define SERVICE_ACCEPT_STOP
Definition: winsvc.h:28
#define SERVICE_STOP_PENDING
Definition: winsvc.h:23
#define SERVICE_CONTROL_SHUTDOWN
Definition: winsvc.h:40
#define SERVICE_START_PENDING
Definition: winsvc.h:22
#define SERVICE_RUNNING
Definition: winsvc.h:24
#define SERVICE_CONTROL_STOP
Definition: winsvc.h:36
#define SERVICE_ACCEPT_SHUTDOWN
Definition: winsvc.h:30
#define SERVICE_CONTROL_INTERROGATE
Definition: winsvc.h:39
#define SERVICE_WIN32_OWN_PROCESS
Definition: cmtypes.h:962
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * LPWSTR
Definition: xmlstorage.h:184