mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 01:55:19 +00:00
First instance of DHCP client API. Not tested yet. Next, the control
panel. svn path=/trunk/; revision=14600
This commit is contained in:
parent
1df2f8903a
commit
d91b173cb3
4 changed files with 190 additions and 0 deletions
140
reactos/lib/dhcpcapi/dhcpcapi.c
Normal file
140
reactos/lib/dhcpcapi/dhcpcapi.c
Normal file
|
@ -0,0 +1,140 @@
|
|||
/* $Id: dllmain.c 12852 2005-01-06 13:58:04Z mf $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS system libraries
|
||||
* FILE: lib/dhcpcapi/dhcpcapi.c
|
||||
* PURPOSE: Client API for DHCP
|
||||
* PROGRAMMER: arty (ayerkes@speakeasy.net)
|
||||
* UPDATE HISTORY:
|
||||
* Created 12/04/2005
|
||||
*/
|
||||
|
||||
#include <roscfg.h>
|
||||
#include <winsock2.h>
|
||||
#include <dhcpcsdk.h>
|
||||
#include <rosdhcp_public.h>
|
||||
|
||||
#define DHCP_TIMEOUT 1000
|
||||
|
||||
#define EXPORT __declspec(dllexport) WINAPI
|
||||
|
||||
DWORD EXPORT DhcpCApiInitialize(LPDWORD Version) {
|
||||
*Version = 2;
|
||||
return 0;
|
||||
}
|
||||
|
||||
VOID EXPORT DhcpCApiCleanup() {
|
||||
}
|
||||
|
||||
DWORD EXPORT DhcpQueryHWInfo( DWORD AdapterIndex,
|
||||
PDWORD MediaType,
|
||||
PDWORD Mtu,
|
||||
PDWORD Speed ) {
|
||||
COMM_DHCP_REQ Req;
|
||||
COMM_DHCP_REPLY Reply;
|
||||
DWORD BytesRead;
|
||||
BOOL Result;
|
||||
|
||||
Req.Type = DhcpReqQueryHWInfo;
|
||||
Req.AdapterIndex = AdapterIndex;
|
||||
|
||||
Result = CallNamedPipe
|
||||
( DHCP_PIPE_NAME, &Req, sizeof(Req), &Reply, sizeof(Reply),
|
||||
&BytesRead, DHCP_TIMEOUT );
|
||||
|
||||
if( !Reply.Reply ) return 0;
|
||||
else {
|
||||
*MediaType = Reply.QueryHWInfo.MediaType;
|
||||
*Mtu = Reply.QueryHWInfo.Mtu;
|
||||
*Speed = Reply.QueryHWInfo.Speed;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
DWORD EXPORT DhcpLeaseIpAddress( DWORD AdapterIndex ) {
|
||||
COMM_DHCP_REQ Req;
|
||||
COMM_DHCP_REPLY Reply;
|
||||
DWORD BytesRead;
|
||||
BOOL Result;
|
||||
|
||||
Req.Type = DhcpReqLeaseIpAddress;
|
||||
Req.AdapterIndex = AdapterIndex;
|
||||
|
||||
Result = CallNamedPipe
|
||||
( DHCP_PIPE_NAME, &Req, sizeof(Req), &Reply, sizeof(Reply),
|
||||
&BytesRead, DHCP_TIMEOUT );
|
||||
|
||||
return Reply.Reply;
|
||||
}
|
||||
|
||||
DWORD EXPORT DhcpReleaseIpAddressLease( DWORD AdapterIndex ) {
|
||||
COMM_DHCP_REQ Req;
|
||||
COMM_DHCP_REPLY Reply;
|
||||
DWORD BytesRead;
|
||||
BOOL Result;
|
||||
|
||||
Req.Type = DhcpReqReleaseIpAddress;
|
||||
Req.AdapterIndex = AdapterIndex;
|
||||
|
||||
Result = CallNamedPipe
|
||||
( DHCP_PIPE_NAME, &Req, sizeof(Req), &Reply, sizeof(Reply),
|
||||
&BytesRead, DHCP_TIMEOUT );
|
||||
|
||||
return Reply.Reply;
|
||||
}
|
||||
|
||||
DWORD EXPORT DhcpRenewIpAddressLease( DWORD AdapterIndex ) {
|
||||
COMM_DHCP_REQ Req;
|
||||
COMM_DHCP_REPLY Reply;
|
||||
DWORD BytesRead;
|
||||
BOOL Result;
|
||||
|
||||
Req.Type = DhcpReqRenewIpAddress;
|
||||
Req.AdapterIndex = AdapterIndex;
|
||||
|
||||
Result = CallNamedPipe
|
||||
( DHCP_PIPE_NAME, &Req, sizeof(Req), &Reply, sizeof(Reply),
|
||||
&BytesRead, DHCP_TIMEOUT );
|
||||
|
||||
return Reply.Reply;
|
||||
}
|
||||
|
||||
DWORD EXPORT DhcpStaticRefreshParams( DWORD AdapterIndex,
|
||||
DWORD Address,
|
||||
DWORD Netmask ) {
|
||||
COMM_DHCP_REQ Req;
|
||||
COMM_DHCP_REPLY Reply;
|
||||
DWORD BytesRead;
|
||||
BOOL Result;
|
||||
|
||||
Req.Type = DhcpReqStaticRefreshParams;
|
||||
Req.AdapterIndex = AdapterIndex;
|
||||
Req.Body.StaticRefreshParams.IPAddress = Address;
|
||||
Req.Body.StaticRefreshParams.Netmask = Netmask;
|
||||
|
||||
Result = CallNamedPipe
|
||||
( DHCP_PIPE_NAME, &Req, sizeof(Req), &Reply, sizeof(Reply),
|
||||
&BytesRead, DHCP_TIMEOUT );
|
||||
|
||||
return Reply.Reply;
|
||||
}
|
||||
|
||||
INT STDCALL
|
||||
DllMain(PVOID hinstDll,
|
||||
ULONG dwReason,
|
||||
PVOID reserved)
|
||||
{
|
||||
switch (dwReason)
|
||||
{
|
||||
case DLL_PROCESS_ATTACH:
|
||||
DisableThreadLibraryCalls(hinstDll);
|
||||
break;
|
||||
|
||||
case DLL_PROCESS_DETACH:
|
||||
break;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* EOF */
|
16
reactos/lib/dhcpcapi/dhcpcapi.def
Normal file
16
reactos/lib/dhcpcapi/dhcpcapi.def
Normal file
|
@ -0,0 +1,16 @@
|
|||
; $Id: dhcpcapi.def 14337 2005-03-26 22:10:04Z $
|
||||
;
|
||||
; dhcpcapi.def
|
||||
;
|
||||
; ReactOS Operating System
|
||||
;
|
||||
LIBRARY dhcpcapi.dll
|
||||
EXPORTS
|
||||
DhcpCApiInitialize@4
|
||||
DhcpCApiCleanup@0
|
||||
DhcpQueryHWInfo@16
|
||||
DhcpLeaseIpAddress@4
|
||||
DhcpReleaseIpAddressLease@4
|
||||
DhcpRenewIpAddressLease@4
|
||||
DhcpStaticRefreshParams@12
|
||||
; EOF
|
7
reactos/lib/dhcpcapi/dhcpcapi.rc
Normal file
7
reactos/lib/dhcpcapi/dhcpcapi.rc
Normal file
|
@ -0,0 +1,7 @@
|
|||
#include <defines.h>
|
||||
|
||||
#define REACTOS_VERSION_DLL
|
||||
#define REACTOS_STR_FILE_DESCRIPTION "DHCP Client API\0"
|
||||
#define REACTOS_STR_INTERNAL_NAME "dhcpcapi\0"
|
||||
#define REACTOS_STR_ORIGINAL_FILENAME "dhcpcapi.dll\0"
|
||||
#include <reactos/version.rc>
|
27
reactos/lib/dhcpcapi/makefile
Normal file
27
reactos/lib/dhcpcapi/makefile
Normal file
|
@ -0,0 +1,27 @@
|
|||
# $Id: makefile 12852 2005-01-06 13:58:04Z mf $
|
||||
|
||||
PATH_TO_TOP = ../..
|
||||
|
||||
TARGET_TYPE = dynlink
|
||||
|
||||
TARGET_NAME = dhcpcapi
|
||||
|
||||
TARGET_CFLAGS = -Wall -Werror \
|
||||
-D__USE_W32API \
|
||||
-D_WIN32_IE=0x0500 \
|
||||
-D_WIN32_WINNT=0x501 \
|
||||
-DWINVER=0x600 \
|
||||
|
||||
TARGET_LFLAGS = -nostartfiles -nostdlib
|
||||
|
||||
TARGET_SDKLIBS = ntdll.a kernel32.a
|
||||
|
||||
TARGET_OBJECTS = dhcpcapi.o
|
||||
|
||||
DEP_OBJECTS = $(TARGET_OBJECTS)
|
||||
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
||||
include $(TOOLS_PATH)/helper.mk
|
||||
|
||||
include $(TOOLS_PATH)/depend.mk
|
Loading…
Reference in a new issue