ReactOS 0.4.17-dev-116-ga4b6fe9
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 DPRINT1("SERVICE_CONTROL_PARAMCHANGE!\n");
64 return NO_ERROR;
65
67 return NO_ERROR;
68
69 default:
71 }
72 return NO_ERROR;
73}
74
75VOID
78 DWORD argc,
79 LPWSTR *argv)
80{
82
85
86 DPRINT("ServiceMain() called\n");
87
94 SvcStatus.dwWaitHint = 4000;
95
98 NULL);
99
101 {
102 DPRINT1("DNSRSLVR: Unable to register service control handler (%lx)\n", GetLastError());
103 return; // FALSE
104 }
105
107
109
111 0,
114 NULL,
115 0,
116 NULL);
117
118 if (!hThread)
119 {
121 DPRINT("Can't create RpcThread\n");
123 }
124 else
125 {
127 }
128
129 DPRINT("ServiceMain() done\n");
131}
132
133BOOL
134WINAPI
136 _In_ HINSTANCE hinstDLL,
139{
141
142 switch (fdwReason)
143 {
146 hDllInstance = hinstDLL;
147 break;
148
150 break;
151 }
152
153 return TRUE;
154}
155
156/* EOF */
static SERVICE_STATUS_HANDLE(WINAPI *pRegisterServiceCtrlHandlerExA)(LPCSTR
static DWORD const fdwReason
#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
MonoAssembly int argc
Definition: metahost.c:107
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:135
VOID WINAPI ServiceMain(DWORD argc, LPWSTR *argv)
Definition: dnsrslvr.c:77
SERVICE_STATUS SvcStatus
Definition: dnsrslvr.c:20
DWORD WINAPI RpcThreadRoutine(LPVOID lpParameter)
Definition: rpcserver.c:20
HINSTANCE hDllInstance
Definition: dnsrslvr.c:18
#define L(x)
Definition: resources.c:13
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
PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE
Definition: minwinbase.h:124
static LPCWSTR LPVOID pvReserved
Definition: asmcache.c:749
#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:329
short WCHAR
Definition: pedump.c:58
#define SERVICE_ACCEPT_PARAMCHANGE
Definition: winsvc.h:31
#define SERVICE_CONTROL_PARAMCHANGE
Definition: winsvc.h:47
#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:46
#define SERVICE_START_PENDING
Definition: winsvc.h:22
#define SERVICE_RUNNING
Definition: winsvc.h:24
#define SERVICE_CONTROL_STOP
Definition: winsvc.h:42
#define SERVICE_ACCEPT_SHUTDOWN
Definition: winsvc.h:30
#define SERVICE_CONTROL_INTERROGATE
Definition: winsvc.h:45
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:831
BOOL WINAPI SetServiceStatus(SERVICE_STATUS_HANDLE hServiceStatus, LPSERVICE_STATUS lpServiceStatus)
Definition: sctrl.c:1016
#define DPRINT
Definition: sndvol32.h:73
DWORD dwServiceType
Definition: winsvc.h:105
DWORD dwWin32ExitCode
Definition: winsvc.h:108
DWORD dwControlsAccepted
Definition: winsvc.h:107
DWORD dwWaitHint
Definition: winsvc.h:111
DWORD dwCurrentState
Definition: winsvc.h:106
DWORD dwCheckPoint
Definition: winsvc.h:110
DWORD dwServiceSpecificExitCode
Definition: winsvc.h:109
uint16_t * LPWSTR
Definition: typedefs.h:56
SERVICE_STATUS_HANDLE hServiceStatus
Definition: main.c:10
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
#define WINAPI
Definition: msvc.h:6
#define SERVICE_WIN32_OWN_PROCESS
Definition: cmtypes.h:962