mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-26 19:33:31 +00:00
[NETCFGX] Call DhcpFallbackRefreshParams when the alternate configuration has been changed
This commit is contained in:
@@ -6,6 +6,8 @@
|
||||
#include <dhcpcsdk.h>
|
||||
#include <dhcpcapi.h>
|
||||
|
||||
typedef DWORD (WINAPI *PDHCPFALLBACKREFRESHPARAMS)(PWSTR pAdapterName);
|
||||
|
||||
typedef struct
|
||||
{
|
||||
DWORD EnableSecurityFilters;
|
||||
@@ -3789,6 +3791,7 @@ INetCfgComponentControl_fnApplyPnpChanges(
|
||||
INetCfgPnpReconfigCallback *pICallback)
|
||||
{
|
||||
TcpipSettings *pCurrentConfig, *pOldConfig;
|
||||
LPOLESTR pAdapterName;
|
||||
ULONG NTEInstance;
|
||||
DWORD DhcpApiVersion;
|
||||
DWORD dwSize;
|
||||
@@ -3797,6 +3800,11 @@ INetCfgComponentControl_fnApplyPnpChanges(
|
||||
|
||||
TcpipConfNotifyImpl *This = (TcpipConfNotifyImpl*)iface;
|
||||
|
||||
if (FAILED(StringFromCLSID(&This->NetCfgInstanceId, &pAdapterName)))
|
||||
{
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
pCurrentConfig = This->pCurrentConfig;
|
||||
pOldConfig = This->pOldConfig;
|
||||
|
||||
@@ -3895,6 +3903,20 @@ INetCfgComponentControl_fnApplyPnpChanges(
|
||||
CreateIpForwardEntry(&RouterMib);
|
||||
}
|
||||
|
||||
|
||||
/* Notify the DHCP client of the changed alternate configuration */
|
||||
if (!RtlEqualMemory(&pCurrentConfig->AltConfig, &pOldConfig->AltConfig, sizeof(AlternateConfiguration)))
|
||||
{
|
||||
HMODULE hDhcpModule = LoadLibraryW(L"dhcpcsvc.dll");
|
||||
if (hDhcpModule)
|
||||
{
|
||||
PDHCPFALLBACKREFRESHPARAMS pFunc = (PDHCPFALLBACKREFRESHPARAMS)GetProcAddress(hDhcpModule, "DhcpFallbackRefreshParams");
|
||||
(pFunc)(pAdapterName);
|
||||
|
||||
FreeLibrary(hDhcpModule);
|
||||
}
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user