44 DPRINT(
"PDHCP_SERVER_NAME_bind() called\n");
63 DPRINT1(
"RpcBindingFromStringBinding returned 0x%x\n",
status);
82 DPRINT(
"PDHCP_SERVER_NAME_unbind() called\n");
99 DWORD dwUnicodeSize = 0, dwAnsiSize = 0;
103 DPRINT(
"SetBinaryClassId(%S)\n", pszAdapterName);
106 L"System\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\%s",
108 DPRINT(
"KeyName %S\n", szKeyName);
117 DPRINT1(
"Error %lu\n", dwError);
127 DPRINT(
"UnicodeSize %lu\n", dwUnicodeSize);
130 if (pszUnicodeBuffer ==
NULL)
133 DPRINT1(
"Error %lu\n", dwError);
141 (
PBYTE)pszUnicodeBuffer,
145 DPRINT1(
"Error %lu\n", dwError);
157 DPRINT(
"AnsiSize %lu\n", dwAnsiSize);
160 if (pszAnsiBuffer ==
NULL)
163 DPRINT1(
"Error %lu\n", dwError);
175 DPRINT(
"AnsiBuffer %s\n", pszAnsiBuffer);
181 (
PBYTE)pszAnsiBuffer,
185 DPRINT1(
"Error %lu\n", dwError);
195 if (pszUnicodeBuffer)
333 DPRINT1(
"DhcpEnumClasses(%lx %S %lx %lx)\n",
403 DPRINT1(
"DhcpHandlePnPEvent(%lx %lx %S %p %lx)\n",
406 if ((Unknown1 != 0) || (Unknown2 != 1) || (PnpEvent ==
NULL) || (
Unknown5 != 0))
409 if (PnpEvent->Unknown5)
458 DPRINT(
"DhcpNotifyConfigChange(%S %S %lu %lu %lu %lu %d)\n",
459 ServerName,
AdapterName, NewIpAddress, IpIndex, IpAddress, SubnetMask, DhcpAction);
461 IpIndex, IpAddress, SubnetMask, DhcpAction, 0);
511 DPRINT1(
"DHCPCSVC: DhcpNotifyConfigChangeEx not implemented yet\n");
512 DPRINT1(
"DhcpNotifyConfigChangeEx(%S %S %lu %lu %lu %lu %d %lu)\n",
513 ServerName,
AdapterName, NewIpAddress, IpIndex, IpAddress, SubnetMask, DhcpAction, Unknown8);
520 if ((NewIpAddress !=
FALSE) ||
526 else if (DhcpAction == 2)
528 if ((NewIpAddress ==
FALSE) ||
534 else if (DhcpAction == 0)
557 else if (DhcpAction == 2)
569 else if (DhcpAction == 0)
642 DPRINT(
"DhcpRemoveDNSRegistrations()\n");
646 ret = Client_RemoveDNSRegistrations(
NULL);
672 DPRINT1(
"DhcpRequestParams(%lx %p %S %p %lu %p %lu %p %p %p %S)\n",
674 RecdParams.nParams, RecdParams.Params,
Buffer, pSize, RequestIdStr);
686 if (ClassId->Flags != 0)
689 if ((ClassId->Data ==
NULL) || (ClassId->nBytesData == 0))
693 if ((SendParams.nParams != 0) && (SendParams.Params ==
NULL))
696 if (RecdParams.Params ==
NULL)
701 ret = Client_RequestParams(
NULL,
725 DPRINT(
"DhcpStaticRefreshParams()\n");
729 ret = Client_StaticRefreshParams(
NULL, AdapterIndex,
Address, Netmask);
748 DPRINT1(
"DhcpUndoRequestParams(%lx %p %S %S)\n",
846 DbgPrint(
"DHCPCSVC: init_client() failed!\n");
858 DbgPrint(
"DHCPCSVC: PipeInit() failed!\n");
869 DbgPrint(
"DHCPCSVC: StartAdapterDiscovery() failed!\n");
892 DPRINT(
"Wait for pipe thread to close! %p\n", hPipeThread);
895 DPRINT(
"Waiting for pipe thread\n");
900 DPRINT(
"Wait for discovery thread to close! %p\n", hDiscoveryThread);
903 DPRINT(
"Waiting for discovery thread\n");
908 DPRINT(
"Closing events!\n");
static SERVICE_STATUS_HANDLE(WINAPI *pRegisterServiceCtrlHandlerExA)(LPCSTR
PRTL_UNICODE_STRING_BUFFER PULONG PULONG Unknown4
static DWORD const fdwReason
HANDLE StartAdapterDiscovery(HANDLE hStopEvent)
DWORD __stdcall Server_EnableDhcp(_In_ PDHCP_SERVER_NAME ServerName, _In_ LPWSTR AdapterName, _In_ BOOL Enable)
void dispatch(HANDLE hStopEvent)
#define DH_DbgPrint(_t_, _x_)
#define RegCloseKey(hKey)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES IN DWORD IN DWORD IN DWORD Unknown5
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES IN DWORD Unknown3
#define ERROR_NOT_ENOUGH_MEMORY
#define DHCPCAPI_REQUEST_SYNCHRONOUS
#define DHCPCAPI_REQUEST_PERSISTENT
#define DHCPCAPI_REGISTER_HANDLE_EVENT
static WCHAR ServiceName[]
DWORD APIENTRY DhcpCApiInitialize(_Out_ LPDWORD Version)
DWORD APIENTRY DhcpHandlePnPEvent(_In_ DWORD Unknown1, _In_ DWORD Unknown2, _In_ PWSTR AdapterName, _In_ PDHCP_PNP_EVENT PnpEvent, _In_ DWORD Unknown5)
DWORD APIENTRY DhcpRemoveDNSRegistrations(VOID)
HANDLE hAdapterStateChangedEvent
static DWORD SetBinaryClassId(_In_ PWSTR pszAdapterName)
DWORD APIENTRY DhcpReleaseParameters(_In_ PWSTR AdapterName)
DWORD APIENTRY DhcpUndoRequestParams(_In_ DWORD Flags, _In_ LPVOID Reserved, _In_ LPWSTR AdapterName, _In_ LPWSTR RequestIdStr)
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
DWORD APIENTRY DhcpFallbackRefreshParams(_In_ PWSTR AdapterName)
void __RPC_USER MIDL_user_free(void __RPC_FAR *ptr)
VOID WINAPI ServiceMain(DWORD argc, LPWSTR *argv)
static DWORD WINAPI ServiceControlHandler(DWORD dwControl, DWORD dwEventType, LPVOID lpEventData, LPVOID lpContext)
static VOID UpdateServiceStatus(DWORD dwState)
SERVICE_STATUS_HANDLE ServiceStatusHandle
DWORD APIENTRY DhcpAcquireParametersByBroadcast(_In_ PWSTR AdapterName)
DWORD APIENTRY DhcpStaticRefreshParams(DWORD AdapterIndex, DWORD Address, DWORD Netmask)
DWORD APIENTRY DhcpNotifyConfigChangeEx(_In_ LPWSTR ServerName, _In_ LPWSTR AdapterName, _In_ BOOL NewIpAddress, _In_ DWORD IpIndex, _In_ DWORD IpAddress, _In_ DWORD SubnetMask, _In_ INT DhcpAction, _In_ DWORD Unknown8)
handle_t __RPC_USER PDHCP_SERVER_NAME_bind(_In_ PDHCP_SERVER_NAME pszServerName)
DWORD APIENTRY DhcpRegisterParamChange(_In_ DWORD Flags, _In_ LPVOID Reserved, _In_ LPWSTR AdapterName, _In_ LPDHCPCAPI_CLASSID ClassId, _In_ DHCPCAPI_PARAMS_ARRAY Params, _Inout_ LPVOID Handle)
SERVICE_STATUS ServiceStatus
DWORD APIENTRY DhcpAcquireParameters(_In_ PWSTR AdapterName)
DWORD APIENTRY DhcpRequestParams(_In_ DWORD Flags, _In_ PVOID Reserved, _In_ LPWSTR AdapterName, _In_ LPDHCPCAPI_CLASSID ClassId, _In_ DHCPCAPI_PARAMS_ARRAY SendParams, _Inout_ DHCPCAPI_PARAMS_ARRAY RecdParams, _In_ LPBYTE Buffer, _Inout_ LPDWORD pSize, _In_ LPWSTR RequestIdStr)
DWORD APIENTRY DhcpNotifyConfigChange(_In_ LPWSTR ServerName, _In_ LPWSTR AdapterName, _In_ BOOL NewIpAddress, _In_ DWORD IpIndex, _In_ DWORD IpAddress, _In_ DWORD SubnetMask, _In_ INT DhcpAction)
DWORD APIENTRY DhcpEnumClasses(_In_ DWORD Unknown1, _In_ PWSTR AdapterName, _In_ DWORD Unknown3, _In_ DWORD Unknown4)
DWORD APIENTRY DhcpDeRegisterParamChange(_In_ DWORD Flags, _In_ LPVOID Reserved, _In_ LPVOID Event)
void __RPC_FAR *__RPC_USER MIDL_user_allocate(SIZE_T len)
VOID APIENTRY DhcpCApiCleanup(VOID)
void __RPC_USER PDHCP_SERVER_NAME_unbind(_In_ PDHCP_SERVER_NAME pszServerName, _In_ handle_t hBinding)
wchar_t * PDHCP_SERVER_NAME
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
#define ERROR_CALL_NOT_IMPLEMENTED
#define ERROR_INVALID_PARAMETER
#define DLL_PROCESS_ATTACH
#define DLL_PROCESS_DETACH
#define INVALID_HANDLE_VALUE
#define HeapFree(x, y, z)
#define WideCharToMultiByte
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
_ACRTIMP size_t __cdecl strlen(const char *)
#define EXCEPTION_EXECUTE_HANDLER
static IN DWORD IN LPVOID lpvReserved
_Null_terminated_ char * PSZ
#define _swprintf(buf, format,...)
_Must_inspect_result_ _Out_ PNDIS_STATUS _Out_ PNDIS_STATUS _Out_ PNDIS_HANDLE _Out_ PUINT _In_ UINT _In_ NDIS_HANDLE _In_ NDIS_HANDLE _In_ PNDIS_STRING AdapterName
#define SERVICE_ACCEPT_STOP
#define SERVICE_STOP_PENDING
#define SERVICE_CONTROL_SHUTDOWN
#define SERVICE_START_PENDING
#define SERVICE_CONTROL_STOP
#define SERVICE_ACCEPT_SHUTDOWN
#define SERVICE_CONTROL_INTERROGATE
RPC_STATUS WINAPI RpcBindingFromStringBindingW(RPC_WSTR StringBinding, RPC_BINDING_HANDLE *Binding)
RPC_STATUS WINAPI RpcStringBindingComposeW(RPC_WSTR ObjUuid, RPC_WSTR Protseq, RPC_WSTR NetworkAddr, RPC_WSTR Endpoint, RPC_WSTR Options, RPC_WSTR *StringBinding)
RPC_STATUS WINAPI RpcBindingFree(RPC_BINDING_HANDLE *Binding)
LONG WINAPI I_RpcMapWin32Status(RPC_STATUS status)
RPC_STATUS WINAPI RpcStringFreeW(RPC_WSTR *String)
SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerExW(LPCWSTR lpServiceName, LPHANDLER_FUNCTION_EX lpHandlerProc, LPVOID lpContext)
BOOL WINAPI SetServiceStatus(SERVICE_STATUS_HANDLE hServiceStatus, LPSERVICE_STATUS lpServiceStatus)
#define RpcExceptionCode()
DWORD dwServiceSpecificExitCode
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
_In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS Params
DWORD WINAPI GetLastError(void)
_Reserved_ PVOID Reserved
#define HKEY_LOCAL_MACHINE
_Must_inspect_result_ _In_ ULONG Flags
#define SERVICE_WIN32_SHARE_PROCESS