mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-26 19:33:31 +00:00
[PSDK][DHCSCSVC][IPCONFIG] Add DhcpHandlePnpEvent stub and use it in ipconfig
Ipconfig uses DhcpHandlePnpEvent to notify the dhcp client of a changed class id.
This commit is contained in:
@@ -1244,8 +1244,10 @@ SetClassId(
|
||||
ULONG ret = 0;
|
||||
WCHAR szFriendlyName[MAX_PATH];
|
||||
WCHAR szKeyName[256];
|
||||
WCHAR szUnicodeAdapterName[MAX_ADAPTER_NAME_LENGTH + 4];
|
||||
MIB_IFROW mibEntry;
|
||||
HKEY hKey;
|
||||
DHCP_PNP_EVENT PnpEvent;
|
||||
|
||||
ConResPrintf(StdOut, IDS_HEADER);
|
||||
|
||||
@@ -1313,8 +1315,31 @@ SetClassId(
|
||||
if (pszClassId == NULL)
|
||||
pszClassId = L"";
|
||||
|
||||
RegSetValueExW(hKey, L"DhcpClassId", 0, REG_SZ, (LPBYTE)pszClassId, (wcslen(pszClassId) + 1) * sizeof(WCHAR));
|
||||
ret = RegSetValueExW(hKey, L"DhcpClassId", 0, REG_SZ, (LPBYTE)pszClassId, (wcslen(pszClassId) + 1) * sizeof(WCHAR));
|
||||
RegCloseKey(hKey);
|
||||
if (ret != ERROR_SUCCESS)
|
||||
{
|
||||
ConResPrintf(StdOut, IDS_DHCPSETIDERROR, szFriendlyName);
|
||||
DoFormatMessage(ret);
|
||||
goto done;
|
||||
}
|
||||
|
||||
mbstowcs(szUnicodeAdapterName, pFoundAdapter->AdapterName, strlen(pFoundAdapter->AdapterName) + 1);
|
||||
|
||||
ZeroMemory(&PnpEvent, sizeof(PnpEvent));
|
||||
PnpEvent.Unknown5 = 1;
|
||||
|
||||
ret = DhcpHandlePnPEvent(0,
|
||||
1,
|
||||
szUnicodeAdapterName,
|
||||
&PnpEvent,
|
||||
0);
|
||||
if (ret != ERROR_SUCCESS)
|
||||
{
|
||||
ConResPrintf(StdOut, IDS_DHCPSETIDERROR, szFriendlyName);
|
||||
DoFormatMessage(ret);
|
||||
goto done;
|
||||
}
|
||||
|
||||
ConResPrintf(StdOut, IDS_DHCPSETIDSUCCESS, szFriendlyName);
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
#include <rosdhcp.h>
|
||||
#include <winsvc.h>
|
||||
#include <dhcpcapi.h>
|
||||
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
@@ -168,11 +169,15 @@ DhcpHandlePnPEvent(
|
||||
_In_ DWORD Unknown1,
|
||||
_In_ DWORD Unknown2,
|
||||
_In_ PWSTR AdapterName,
|
||||
_In_ DWORD Unknown4,
|
||||
_In_ PDHCP_PNP_EVENT PnpEvent,
|
||||
_In_ DWORD Unknown5)
|
||||
{
|
||||
DPRINT1("DhcpHandlePnPEvent(%lx %lx %S %lx %lx)\n",
|
||||
Unknown1, Unknown2, AdapterName, Unknown4, Unknown5);
|
||||
DPRINT1("DhcpHandlePnPEvent(%lx %lx %S %p %lx)\n",
|
||||
Unknown1, Unknown2, AdapterName, PnpEvent, Unknown5);
|
||||
|
||||
if ((Unknown1 != 0) || (Unknown2 != 1) || (PnpEvent == NULL) || (Unknown5 != 0))
|
||||
return ERROR_INVALID_PARAMETER;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,21 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct _DHCP_PNP_EVENT
|
||||
{
|
||||
DWORD Unknown1;
|
||||
DWORD Unknown2;
|
||||
DWORD Unknown3;
|
||||
DWORD Unknown4;
|
||||
DWORD Unknown5;
|
||||
DWORD Unknown6;
|
||||
DWORD Unknown7;
|
||||
DWORD Unknown8;
|
||||
DWORD Unknown9;
|
||||
DWORD Unknown10;
|
||||
DWORD Unknown11;
|
||||
} DHCP_PNP_EVENT, *PDHCP_PNP_EVENT;
|
||||
|
||||
DWORD
|
||||
APIENTRY
|
||||
DhcpAcquireParameters(
|
||||
@@ -24,7 +39,7 @@ DhcpHandlePnPEvent(
|
||||
_In_ DWORD Unknown1,
|
||||
_In_ DWORD Unknown2,
|
||||
_In_ LPWSTR AdapterName,
|
||||
_In_ DWORD Unknown4,
|
||||
_In_ PDHCP_PNP_EVENT PnpEvent,
|
||||
_In_ DWORD Unknown5);
|
||||
|
||||
DWORD
|
||||
|
||||
Reference in New Issue
Block a user