ReactOS 0.4.16-dev-2613-g9533ad7
rosdhcp.h File Reference
#include <stdarg.h>
#include <windef.h>
#include <winbase.h>
#include <winreg.h>
#include <winnls.h>
#include <ndk/kefuncs.h>
#include <ndk/rtlfuncs.h>
#include <dhcpcsdk.h>
#include <rpc.h>
#include <dhcpcsvc_c.h>
#include <dhcpcsvc_s.h>
#include "debug.h"
#include "dhcpd.h"
Include dependency graph for rosdhcp.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _ALTERNATE_CONFIGURATION
 
struct  _DHCP_ADAPTER
 

Macros

#define WIN32_NO_STATUS
 
#define _INC_WINDOWS
 
#define COM_NO_WINDOWS_H
 
#define NTOS_MODE_USER
 
#define IFNAMSIZ   MAX_INTERFACE_NAME_LEN
 
#define DHCP_DISCOVER_INTERVAL   5
 
#define DHCP_REBOOT_TIMEOUT   10
 
#define DHCP_PANIC_TIMEOUT   20
 
#define DHCP_BACKOFF_MAX   300
 
#define DHCP_DEFAULT_LEASE_TIME   43200 /* 12 hours */
 
#define _PATH_DHCLIENT_PID   "\\systemroot\\system32\\drivers\\etc\\dhclient.pid"
 
#define _SSIZE_T_DEFINED
 
#define TIME   uintTIME
 
#define INLINE   inline
 
#define PROTO(x)   x
 
#define random   rand
 
#define srandom   srand
 

Typedefs

typedef voidVOIDPTR
 
typedef unsigned char u_int8_t
 
typedef unsigned short u_int16_t
 
typedef unsigned int u_int32_t
 
typedef charcaddr_t
 
typedef int ssize_t
 
typedef u_int32_t uintTIME
 
typedef void handler_t PROTO((struct packet *))
 
typedef struct _ALTERNATE_CONFIGURATION ALTERNATE_CONFIGURATION
 
typedef struct _ALTERNATE_CONFIGURATIONPALTERNATE_CONFIGURATION
 
typedef struct _DHCP_ADAPTER DHCP_ADAPTER
 
typedef struct _DHCP_ADAPTERPDHCP_ADAPTER
 

Functions

int init_client (void)
 
void stop_client (void)
 
void AdapterInit (VOID)
 
HANDLE StartAdapterDiscovery (HANDLE hStopEvent)
 
void AdapterStop (VOID)
 
HKEY FindAdapterKey (PDHCP_ADAPTER Adapter)
 
DWORD LoadAlternateConfiguration (PDHCP_ADAPTER Adapter, HKEY AdapterKey)
 
PDHCP_ADAPTER AdapterGetFirst (VOID)
 
PDHCP_ADAPTER AdapterGetNext (PDHCP_ADAPTER)
 
PDHCP_ADAPTER AdapterFindIndex (unsigned int AdapterIndex)
 
PDHCP_ADAPTER AdapterFindName (const WCHAR *name)
 
PDHCP_ADAPTER AdapterFindInfo (struct interface_info *info)
 
PDHCP_ADAPTER AdapterFindByHardwareAddress (u_int8_t *haddr, u_int8_t hlen)
 
HANDLE InitRpc (VOID)
 
VOID ShutdownRpc (VOID)
 
VOID ApiInit (VOID)
 
VOID ApiFree (VOID)
 
VOID ApiLock (VOID)
 
VOID ApiUnlock (VOID)
 
int inet_aton (const char *s, struct in_addr *addr)
 
int warn (char *format,...)
 

Macro Definition Documentation

◆ _INC_WINDOWS

#define _INC_WINDOWS

Definition at line 7 of file rosdhcp.h.

◆ _PATH_DHCLIENT_PID

#define _PATH_DHCLIENT_PID   "\\systemroot\\system32\\drivers\\etc\\dhclient.pid"

Definition at line 35 of file rosdhcp.h.

◆ _SSIZE_T_DEFINED

#define _SSIZE_T_DEFINED

Definition at line 43 of file rosdhcp.h.

◆ COM_NO_WINDOWS_H

#define COM_NO_WINDOWS_H

Definition at line 8 of file rosdhcp.h.

◆ DHCP_BACKOFF_MAX

#define DHCP_BACKOFF_MAX   300

Definition at line 33 of file rosdhcp.h.

◆ DHCP_DEFAULT_LEASE_TIME

#define DHCP_DEFAULT_LEASE_TIME   43200 /* 12 hours */

Definition at line 34 of file rosdhcp.h.

◆ DHCP_DISCOVER_INTERVAL

#define DHCP_DISCOVER_INTERVAL   5

Definition at line 30 of file rosdhcp.h.

◆ DHCP_PANIC_TIMEOUT

#define DHCP_PANIC_TIMEOUT   20

Definition at line 32 of file rosdhcp.h.

◆ DHCP_REBOOT_TIMEOUT

#define DHCP_REBOOT_TIMEOUT   10

Definition at line 31 of file rosdhcp.h.

◆ IFNAMSIZ

Definition at line 24 of file rosdhcp.h.

◆ INLINE

#define INLINE   inline

Definition at line 60 of file rosdhcp.h.

◆ NTOS_MODE_USER

#define NTOS_MODE_USER

Definition at line 14 of file rosdhcp.h.

◆ PROTO

#define PROTO (   x)    x

Definition at line 61 of file rosdhcp.h.

◆ random

#define random   rand

Definition at line 94 of file rosdhcp.h.

◆ srandom

#define srandom   srand

Definition at line 95 of file rosdhcp.h.

◆ TIME

Definition at line 57 of file rosdhcp.h.

◆ WIN32_NO_STATUS

#define WIN32_NO_STATUS

Definition at line 6 of file rosdhcp.h.

Typedef Documentation

◆ ALTERNATE_CONFIGURATION

◆ caddr_t

typedef char* caddr_t

Definition at line 40 of file rosdhcp.h.

◆ DHCP_ADAPTER

◆ PALTERNATE_CONFIGURATION

◆ PDHCP_ADAPTER

◆ PROTO

typedef void handler_t PROTO((struct packet *))

Definition at line 63 of file rosdhcp.h.

◆ ssize_t

typedef int ssize_t

Definition at line 52 of file rosdhcp.h.

◆ u_int16_t

Definition at line 38 of file rosdhcp.h.

◆ u_int32_t

Definition at line 39 of file rosdhcp.h.

◆ u_int8_t

Definition at line 37 of file rosdhcp.h.

◆ uintTIME

Definition at line 56 of file rosdhcp.h.

◆ VOIDPTR

typedef void* VOIDPTR

Definition at line 36 of file rosdhcp.h.

Function Documentation

◆ AdapterFindByHardwareAddress()

PDHCP_ADAPTER AdapterFindByHardwareAddress ( u_int8_t haddr,
u_int8_t  hlen 
)

Definition at line 652 of file adapter.c.

652 {
653 PDHCP_ADAPTER Adapter;
654 PLIST_ENTRY ListEntry;
655
656 for(ListEntry = AdapterList.Flink;
657 ListEntry != &AdapterList;
658 ListEntry = ListEntry->Flink) {
659 Adapter = CONTAINING_RECORD( ListEntry, DHCP_ADAPTER, ListEntry );
660 if (Adapter->DhclientInfo.hw_address.hlen == hlen &&
661 !memcmp(Adapter->DhclientInfo.hw_address.haddr,
662 haddr,
663 hlen)) return Adapter;
664 }
665
666 return NULL;
667}
static LIST_ENTRY AdapterList
Definition: adapter.c:9
#define NULL
Definition: types.h:112
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
Definition: string.c:2802
struct interface_info DhclientInfo
Definition: rosdhcp.h:86
Definition: typedefs.h:120
struct _LIST_ENTRY * Flink
Definition: typedefs.h:121
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260

Referenced by AdapterDiscoveryThread(), and got_one().

◆ AdapterFindIndex()

PDHCP_ADAPTER AdapterFindIndex ( unsigned int  AdapterIndex)

Definition at line 608 of file adapter.c.

608 {
609 PDHCP_ADAPTER Adapter;
610 PLIST_ENTRY ListEntry;
611
612 for( ListEntry = AdapterList.Flink;
613 ListEntry != &AdapterList;
614 ListEntry = ListEntry->Flink ) {
615 Adapter = CONTAINING_RECORD( ListEntry, DHCP_ADAPTER, ListEntry );
616 if( Adapter->IfMib.dwIndex == indx ) return Adapter;
617 }
618
619 return NULL;
620}
MIB_IFROW IfMib
Definition: rosdhcp.h:81
DWORD dwIndex
Definition: ifmib.h:38

Referenced by Server_StaticRefreshParams().

◆ AdapterFindInfo()

PDHCP_ADAPTER AdapterFindInfo ( struct interface_info info)

Definition at line 638 of file adapter.c.

638 {
639 PDHCP_ADAPTER Adapter;
640 PLIST_ENTRY ListEntry;
641
642 for( ListEntry = AdapterList.Flink;
643 ListEntry != &AdapterList;
644 ListEntry = ListEntry->Flink ) {
645 Adapter = CONTAINING_RECORD( ListEntry, DHCP_ADAPTER, ListEntry );
646 if( ip == &Adapter->DhclientInfo ) return Adapter;
647 }
648
649 return NULL;
650}
Definition: dhcpd.h:62

Referenced by bind_lease(), got_one(), send_request(), state_panic(), and unbind_lease().

◆ AdapterFindName()

PDHCP_ADAPTER AdapterFindName ( const WCHAR name)

Definition at line 622 of file adapter.c.

622 {
623 PDHCP_ADAPTER Adapter;
624 PLIST_ENTRY ListEntry;
625 WCHAR UnicodeName[45];
626
627 for( ListEntry = AdapterList.Flink;
628 ListEntry != &AdapterList;
629 ListEntry = ListEntry->Flink ) {
630 Adapter = CONTAINING_RECORD( ListEntry, DHCP_ADAPTER, ListEntry );
631 mbstowcs(UnicodeName, (const CHAR *)Adapter->IfMib.bDescr, strlen((const CHAR *)Adapter->IfMib.bDescr) + 1);
632 if( !wcsicmp(UnicodeName, name ) ) return Adapter;
633 }
634
635 return NULL;
636}
#define wcsicmp
Definition: compat.h:15
_ACRTIMP size_t __cdecl strlen(const char *)
Definition: string.c:1592
IN PDCB IN POEM_STRING IN PUNICODE_STRING UnicodeName
Definition: fatprocs.h:1306
short WCHAR
Definition: pedump.c:58
char CHAR
Definition: pedump.c:57
mbstowcs
Definition: stdlib.h:925
BYTE bDescr[MAXLEN_IFDESCR]
Definition: ifmib.h:60
Definition: name.c:39

Referenced by Server_AcquireParameters(), Server_EnableDhcp(), Server_FallbackRefreshParams(), and Server_ReleaseParameters().

◆ AdapterGetFirst()

PDHCP_ADAPTER AdapterGetFirst ( VOID  )

◆ AdapterGetNext()

PDHCP_ADAPTER AdapterGetNext ( PDHCP_ADAPTER  This)

Definition at line 676 of file adapter.c.

677{
678 if( This->ListEntry.Flink == &AdapterList ) return NULL;
679 return CONTAINING_RECORD
680 ( This->ListEntry.Flink, DHCP_ADAPTER, ListEntry );
681}

◆ AdapterInit()

void AdapterInit ( VOID  )

◆ AdapterStop()

void AdapterStop ( VOID  )

◆ ApiFree()

VOID ApiFree ( VOID  )

◆ ApiInit()

VOID ApiInit ( VOID  )

◆ ApiLock()

VOID ApiLock ( VOID  )

◆ ApiUnlock()

VOID ApiUnlock ( VOID  )

◆ FindAdapterKey()

HKEY FindAdapterKey ( PDHCP_ADAPTER  Adapter)

Definition at line 105 of file adapter.c.

105 {
106 int i = 0;
107 PCHAR EnumKeyName =
108 "SYSTEM\\CurrentControlSet\\Control\\Class\\"
109 "{4D36E972-E325-11CE-BFC1-08002BE10318}";
110 PCHAR TargetKeyNameStart =
111 "SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\";
112 PCHAR TargetKeyName = NULL;
113 PCHAR *EnumKeysLinkage = GetSubkeyNames( EnumKeyName, "\\Linkage" );
114 PCHAR *EnumKeysTop = GetSubkeyNames( EnumKeyName, "" );
115 PCHAR RootDevice = NULL;
116 HKEY EnumKey, OutKey = NULL;
118
119 if( !EnumKeysLinkage || !EnumKeysTop ) goto cleanup;
120
121 Error = RegOpenKey( HKEY_LOCAL_MACHINE, EnumKeyName, &EnumKey );
122
123 if( Error ) goto cleanup;
124
125 for( i = 0; EnumKeysLinkage[i]; i++ ) {
126 RootDevice = RegReadString
127 ( EnumKey, EnumKeysLinkage[i], "RootDevice" );
128
129 if( RootDevice &&
130 !strcmp( RootDevice, Adapter->DhclientInfo.name ) ) {
131 TargetKeyName =
132 (CHAR*) malloc( strlen( TargetKeyNameStart ) +
133 strlen( RootDevice ) + 1);
134 if( !TargetKeyName ) goto cleanup;
135 sprintf( TargetKeyName, "%s%s",
136 TargetKeyNameStart, RootDevice );
137 Error = RegCreateKeyExA( HKEY_LOCAL_MACHINE, TargetKeyName, 0, NULL, 0, KEY_READ, NULL, &OutKey, NULL );
138 break;
139 } else {
140 free( RootDevice ); RootDevice = 0;
141 }
142 }
143
144cleanup:
145 if( RootDevice ) free( RootDevice );
146 if( EnumKeysLinkage ) free( EnumKeysLinkage );
147 if( EnumKeysTop ) free( EnumKeysTop );
148 if( TargetKeyName ) free( TargetKeyName );
149
150 return OutKey;
151}
PCHAR * GetSubkeyNames(PCHAR MainKeyName, PCHAR Append)
Definition: adapter.c:12
PCHAR RegReadString(HKEY Root, PCHAR Subkey, PCHAR Value)
Definition: adapter.c:61
BOOL Error
Definition: chkdsk.c:66
#define free
Definition: debug_ros.c:5
#define malloc
Definition: debug_ros.c:4
#define ERROR_SUCCESS
Definition: deptool.c:10
LONG WINAPI RegCreateKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD Reserved, _In_ LPSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_ LPDWORD lpdwDisposition)
Definition: reg.c:1034
static void cleanup(void)
Definition: main.c:1335
_ACRTIMP int __cdecl strcmp(const char *, const char *)
Definition: string.c:3319
unsigned long DWORD
Definition: ntddk_ex.h:95
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
Definition: glfuncs.h:248
static LONG WINAPI EnumKey(HANDLE hcKey, DWORD dwIndex, LPWSTR pszName, PDWORD pcchName, PFILETIME pftLastWriteTime, HANDLE hSpooler)
Definition: localmon.c:169
#define sprintf
Definition: sprintf.c:45
#define KEY_READ
Definition: nt_native.h:1026
char * PCHAR
Definition: typedefs.h:51
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12
#define RegOpenKey
Definition: winreg.h:551

Referenced by PrepareAdapterForService(), and Server_FallbackRefreshParams().

◆ inet_aton()

int inet_aton ( const char s,
struct in_addr addr 
)

Definition at line 32 of file compat.c.

34{
35 ULONG Octets[4] = {0,0,0,0};
36 ULONG i = 0;
37
38 if(!cp)
39 return 0;
40
41 while(*cp)
42 {
43 CHAR c = *cp;
44 cp++;
45
46 if(c == '.')
47 {
48 i++;
49 continue;
50 }
51
52 if(c < '0' || c > '9')
53 return 0;
54
55 Octets[i] *= 10;
56 Octets[i] += (c - '0');
57
58 if(Octets[i] > 255)
59 return 0;
60 }
61
62 inp->S_un.S_addr = (Octets[3] << 24) + (Octets[2] << 16) + (Octets[1] << 8) + Octets[0];
63 return 1;
64}
const GLubyte * c
Definition: glext.h:8905
POINT cp
Definition: magnifier.c:59
uint32_t ULONG
Definition: typedefs.h:59

◆ init_client()

int init_client ( void  )

Definition at line 111 of file dhclient.c.

112{
113 ApiInit();
114 AdapterInit();
115
116 tzset();
117
119 sockaddr_broadcast.sin_family = AF_INET;
121 sockaddr_broadcast.sin_addr.s_addr = INADDR_BROADCAST;
122 inaddr_any.s_addr = INADDR_ANY;
124
125 return 1; // TRUE
126}
void AdapterInit()
Definition: adapter.c:289
VOID ApiInit()
Definition: api.c:18
void(* bootp_packet_handler)(struct interface_info *, struct dhcp_packet *, int, unsigned int, struct iaddr, struct hardware *)
Definition: dispatch.c:59
void do_packet(struct interface_info *interface, struct dhcp_packet *packet, int len, unsigned int from_port, struct iaddr from, struct hardware *hfrom)
Definition: options.c:635
struct in_addr inaddr_any
Definition: dhclient.c:81
struct sockaddr_in sockaddr_broadcast
Definition: dhclient.c:82
#define REMOTE_PORT
Definition: dhcpd.h:113
#define AF_INET
Definition: tcpip.h:117
#define INADDR_BROADCAST
Definition: inet.h:82
#define INADDR_ANY
Definition: inet.h:80
#define htons(x)
Definition: module.h:215
_CRTIMP void __cdecl tzset(void)
#define memset(x, y, z)
Definition: compat.h:39

Referenced by ServiceMain().

◆ InitRpc()

HANDLE InitRpc ( VOID  )

Definition at line 65 of file api.c.

66{
68}
DWORD WINAPI RpcThreadRoutine(LPVOID lpParameter)
Definition: api.c:36
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

Referenced by ServiceMain().

◆ LoadAlternateConfiguration()

DWORD LoadAlternateConfiguration ( PDHCP_ADAPTER  Adapter,
HKEY  AdapterKey 
)

Definition at line 154 of file adapter.c.

157{
158 PWSTR pszConfigName = NULL;
159 HKEY hConfigsKey = NULL, hConfigKey = NULL;
160 PALTERNATE_CONFIGURATION pAltConfig = NULL;
162 DWORD dwError;
163
164 DPRINT("LoadAlternateConfiguration()\n");
165
166 dwSize = 0;
167 RegQueryValueExW(hAdapterKey, L"ActiveConfigurations", NULL, NULL, NULL, &dwSize);
168 if (dwSize == 0)
169 {
170 DPRINT1("There is no active configuration!\n");
171 return ERROR_SUCCESS;
172 }
173
174 pszConfigName = malloc(dwSize);
175 if (pszConfigName == NULL)
176 {
177 DPRINT1("Failed to allocate memory!\n");
179 }
180
181 dwError = RegQueryValueExW(hAdapterKey, L"ActiveConfigurations", NULL, NULL, (PBYTE)pszConfigName, &dwSize);
182 if (dwError != ERROR_SUCCESS)
183 {
184 DPRINT1("Failed to read the ActiveConfigurations value!\n");
185 goto done;
186 }
187
188 DPRINT("ActiveConfigurations: %S\n", pszConfigName);
189
190 dwError = RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"System\\CurrentControlSet\\Services\\DHCP\\Configurations", 0, KEY_READ, &hConfigsKey);
191 if (dwError != ERROR_SUCCESS)
192 {
193 DPRINT1("Failed to open configurations key!\n");
194 goto done;
195 }
196
197 dwError = RegOpenKeyExW(hConfigsKey, pszConfigName, 0, KEY_READ, &hConfigKey);
198 if (dwError != ERROR_SUCCESS)
199 {
200 DPRINT1("Failed to open configuration key %S!\n", pszConfigName);
201 goto done;
202 }
203
204 dwSize = 0;
205 RegQueryValueExW(hConfigKey, L"Options", NULL, NULL, NULL, &dwSize);
206
207 DbgPrint("Found alternate configuration: Size %lu\n", dwSize);
208 pAltConfig = malloc(dwSize);
209 if (pAltConfig == NULL)
210 {
211 DPRINT1("Failed to allocate memory!\n");
212 dwError = ERROR_NOT_ENOUGH_MEMORY;
213 goto done;
214 }
215
216 dwError = RegQueryValueExW(hConfigKey, L"Options", NULL, NULL, (PBYTE)pAltConfig, &dwSize);
217 if (dwError != ERROR_SUCCESS)
218 {
219 DPRINT1("Failed to read the alternate configuration!\n");
220 goto done;
221 }
222
223 DPRINT("IpAddress: %08lx\n", pAltConfig->IpAddress);
224 DPRINT("SubnetMask: %08lx\n", pAltConfig->SubnetMask);
225
226 Adapter->AlternateConfiguration = pAltConfig;
227 DPRINT("Success!\n");
228
229done:
230 if (dwError != ERROR_SUCCESS)
231 {
232 if (pAltConfig)
233 free(pAltConfig);
234 }
235
236 if (hConfigKey)
237 RegCloseKey(hConfigKey);
238
239 if (hConfigsKey)
240 RegCloseKey(hConfigsKey);
241
242 if (pszConfigName)
243 free(pszConfigName);
244
245 return dwError;
246}
#define DPRINT1
Definition: precomp.h:8
#define RegCloseKey(hKey)
Definition: registry.h:49
#define ERROR_NOT_ENOUGH_MEMORY
Definition: dderror.h:7
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
Definition: reg.c:3333
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4103
#define L(x)
Definition: resources.c:13
#define DbgPrint
Definition: hal.h:12
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
Definition: env.c:56
BYTE * PBYTE
Definition: pedump.c:66
#define DPRINT
Definition: sndvol32.h:73
PALTERNATE_CONFIGURATION AlternateConfiguration
Definition: rosdhcp.h:80
uint16_t * PWSTR
Definition: typedefs.h:56

Referenced by PrepareAdapterForService(), and Server_FallbackRefreshParams().

◆ ShutdownRpc()

VOID ShutdownRpc ( VOID  )

Definition at line 71 of file api.c.

72{
74}
RPC_STATUS WINAPI RpcMgmtStopServerListening(RPC_BINDING_HANDLE Binding)
Definition: rpc_server.c:1596

Referenced by ServiceMain().

◆ StartAdapterDiscovery()

HANDLE StartAdapterDiscovery ( HANDLE  hStopEvent)

Definition at line 591 of file adapter.c.

591 {
593}
DWORD WINAPI AdapterDiscoveryThread(LPVOID Context)
Definition: adapter.c:399
HANDLE hStopEvent
Definition: dhcpcsvc.c:20

Referenced by ServiceMain().

◆ stop_client()

void stop_client ( void  )

Definition at line 129 of file dhclient.c.

130{
131 // AdapterStop();
132 // ApiFree();
133 /* FIXME: Close pipe and kill pipe thread */
134}

Referenced by ServiceMain().

◆ warn()

int warn ( char format,
  ... 
)

Definition at line 42 of file util.c.

42 {
43 char buf[0x100];
44 int ret;
45 va_list arg_begin;
46 va_start( arg_begin, format );
47
48 ret = _vsnprintf( buf, sizeof(buf), format, arg_begin );
49
50 va_end( arg_begin );
51
52 DPRINT("WARN: %s\n", buf);
53
54 return ret;
55}
#define va_end(v)
Definition: stdarg.h:28
#define va_start(v, l)
Definition: stdarg.h:26
char * va_list
Definition: vadefs.h:50
return ret
Definition: mutex.c:146
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
#define _vsnprintf
Definition: _vsnprintf.c:28
Definition: format.c:58