From 2e13f97a62cea02ccff182847ed50644c89efad4 Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Sun, 24 May 2026 10:57:35 +0200 Subject: [PATCH] [DHCPCSVC][REACTOS] Pass the SendParams parameter to the RequestParams server function --- base/services/dhcpcsvc/dhcp/api.c | 13 +++++++++---- base/services/dhcpcsvc/dhcpcsvc.c | 2 +- sdk/include/reactos/idl/dhcpcsvc.idl | 27 ++++++++++++++++++++++++++- 3 files changed, 36 insertions(+), 6 deletions(-) diff --git a/base/services/dhcpcsvc/dhcp/api.c b/base/services/dhcpcsvc/dhcp/api.c index f9bc794cee3..1abaf57763b 100644 --- a/base/services/dhcpcsvc/dhcp/api.c +++ b/base/services/dhcpcsvc/dhcp/api.c @@ -348,7 +348,6 @@ Server_RemoveDNSRegistrations( return ERROR_SUCCESS; } - /* Function 7 */ DWORD __stdcall @@ -356,11 +355,17 @@ Server_RequestParams( _In_ PDHCP_SERVER_NAME ServerName, _In_ LPWSTR AdapterName, _In_ DHCPCAPI_CLASSID *ClassId, - _In_ DWORD Unknown4, + _In_ DHCPCAPI_PARAMS_ARRAY *SendParams, _In_ DWORD Unknown5, _In_ DWORD Unknown6) { - DPRINT1("Server_RequestParams(%S %p)\n", AdapterName, ClassId); - UNIMPLEMENTED; + DPRINT1("Server_RequestParams(%S %p %p %lx %lx)\n", + AdapterName, ClassId, SendParams, Unknown5, Unknown6); + + if (SendParams != NULL) + { + DPRINT1("SendParams nParams %lu Params %p\n", SendParams->nParams, SendParams->Params); + } + return ERROR_SUCCESS; } diff --git a/base/services/dhcpcsvc/dhcpcsvc.c b/base/services/dhcpcsvc/dhcpcsvc.c index 0908394b885..4016e0b0e2b 100644 --- a/base/services/dhcpcsvc/dhcpcsvc.c +++ b/base/services/dhcpcsvc/dhcpcsvc.c @@ -701,7 +701,7 @@ DhcpRequestParams( ret = Client_RequestParams(NULL, AdapterName, ClassId, - 0, + &SendParams, 0, 0); } diff --git a/sdk/include/reactos/idl/dhcpcsvc.idl b/sdk/include/reactos/idl/dhcpcsvc.idl index 4db71233a57..f6717016154 100644 --- a/sdk/include/reactos/idl/dhcpcsvc.idl +++ b/sdk/include/reactos/idl/dhcpcsvc.idl @@ -7,6 +7,31 @@ typedef [handle] wchar_t *PDHCP_SERVER_NAME; cpp_quote("#ifndef _DHCPCSDK_") +typedef struct _DHCPAPI_PARAMS +{ + ULONG Flags; + ULONG OptionId; + BOOL IsVendor; +#if defined(__midl) || defined(__WIDL__) + [size_is(nBytesData), unique] LPBYTE Data; +#else + LPBYTE Data; +#endif + DWORD nBytesData; +} DHCPAPI_PARAMS, *PDHCPAPI_PARAMS, *LPDHCPAPI_PARAMS; + +typedef struct _DHCPAPI_PARAMS DHCPCAPI_PARAMS, *PDHCPCAPI_PARAMS, *LPDHCPCAPI_PARAMS; + +typedef struct _DHCPCAPI_PARAMS_ARARAY +{ + ULONG nParams; +#if defined(__midl) || defined(__WIDL__) + [size_is(nParams), unique] LPDHCPCAPI_PARAMS Params; +#else + LPDHCPCAPI_PARAMS Params; +#endif +} DHCPCAPI_PARAMS_ARRAY, *PDHCPCAPI_PARAMS_ARRAY, *LPDHCPCAPI_PARAMS_ARRAY; + typedef struct _DHCPCAPI_CLASSID { ULONG Flags; @@ -91,7 +116,7 @@ interface dhcpcsvc [in, unique, string] PDHCP_SERVER_NAME ServerName, [in, string] LPWSTR AdapterName, [in, unique] DHCPCAPI_CLASSID *ClassId, - [in] DWORD Unknown4, + [in, unique] DHCPCAPI_PARAMS_ARRAY *SendParams, [in] DWORD Unknown5, [in] DWORD Unknown6); }