diff --git a/base/services/dhcpcsvc/dhcp/api.c b/base/services/dhcpcsvc/dhcp/api.c index ab85e5e58f8..5730fa5db03 100644 --- a/base/services/dhcpcsvc/dhcp/api.c +++ b/base/services/dhcpcsvc/dhcp/api.c @@ -251,3 +251,14 @@ done: return ret; } + +/* Function 4 */ +DWORD +__stdcall +Server_RemoveDNSRegistrations( + _In_ PDHCP_SERVER_NAME ServerName) +{ + DPRINT1("Server_RemoveDNSRegistrations()\n"); + /* FIXME: Call dnsapi.DnsRemoveRegistrations() */ + return ERROR_SUCCESS; +} diff --git a/base/services/dhcpcsvc/dhcpcsvc.c b/base/services/dhcpcsvc/dhcpcsvc.c index 948110b2944..dd2bee797bf 100644 --- a/base/services/dhcpcsvc/dhcpcsvc.c +++ b/base/services/dhcpcsvc/dhcpcsvc.c @@ -283,6 +283,32 @@ DhcpReleaseParameters( return ret; } +/*! + * Removes all DNS Registrations which were added by the DHCP Client + * + * \return ERROR_SUCCESS on success + */ +DWORD +WINAPI +DhcpRemoveDNSRegistrations(VOID) +{ + DWORD ret; + + DPRINT("DhcpRemoveDNSRegistrations()\n"); + + RpcTryExcept + { + ret = Client_RemoveDNSRegistrations(NULL); + } + RpcExcept(EXCEPTION_EXECUTE_HANDLER) + { + ret = I_RpcMapWin32Status(RpcExceptionCode()); + } + RpcEndExcept; + + return ret; +} + DWORD APIENTRY DhcpStaticRefreshParams(DWORD AdapterIndex, diff --git a/base/services/dhcpcsvc/dhcpcsvc.spec b/base/services/dhcpcsvc/dhcpcsvc.spec index 4f246f96b43..84109c57534 100644 --- a/base/services/dhcpcsvc/dhcpcsvc.spec +++ b/base/services/dhcpcsvc/dhcpcsvc.spec @@ -28,7 +28,7 @@ @ stub DhcpReleaseIpAddressLease @ stub DhcpReleaseIpAddressLeaseEx @ stdcall DhcpReleaseParameters(wstr) -@ stub DhcpRemoveDNSRegistrations +@ stdcall DhcpRemoveDNSRegistrations() @ stub DhcpRenewIpAddressLease @ stub DhcpRenewIpAddressLeaseEx @ stub DhcpRequestOptions diff --git a/sdk/include/reactos/idl/dhcpcsvc.idl b/sdk/include/reactos/idl/dhcpcsvc.idl index 1c0e9c30679..c17b013cce9 100644 --- a/sdk/include/reactos/idl/dhcpcsvc.idl +++ b/sdk/include/reactos/idl/dhcpcsvc.idl @@ -52,4 +52,10 @@ interface dhcpcsvc [in] DWORD AdapterIndex, [in] DWORD Address, [in] DWORD Netmask); + + /* Function 4 */ + DWORD + __stdcall + RemoveDNSRegistrations( + [in, string, unique] PDHCP_SERVER_NAME ServerName); }