402 lines
5.8 KiB
C
402 lines
5.8 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1994 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
dhcplib.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
This file contains proto type definitions for the dhcp lib
|
||
|
functions.
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Madan Appiah (madana) 12-Aug-1993
|
||
|
|
||
|
Environment:
|
||
|
|
||
|
User Mode - Win32 - MIDL
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
#ifndef DHCPLIB_H_INCLUDED
|
||
|
#define DHCPLIB_H_INCLUDED
|
||
|
#include <madcapcl.h>
|
||
|
|
||
|
#undef DhcpAllocateMemory
|
||
|
#undef DhcpFreeMemory
|
||
|
|
||
|
//
|
||
|
// network.c
|
||
|
//
|
||
|
|
||
|
DHCP_IP_ADDRESS
|
||
|
DhcpDefaultSubnetMask(
|
||
|
DHCP_IP_ADDRESS IpAddress
|
||
|
);
|
||
|
|
||
|
//
|
||
|
// dhcp.c
|
||
|
//
|
||
|
|
||
|
|
||
|
PVOID
|
||
|
DhcpAllocateMemory(
|
||
|
DWORD Size
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
DhcpFreeMemory(
|
||
|
PVOID Memory
|
||
|
);
|
||
|
|
||
|
|
||
|
#if DBG
|
||
|
|
||
|
#ifndef DEBUG_ALLOC
|
||
|
#define DEBUG_ALLOC 0x02000000
|
||
|
#endif
|
||
|
|
||
|
PVOID _inline
|
||
|
DhcpAllocateMemoryEx(
|
||
|
DWORD Size,
|
||
|
DWORD LineNo,
|
||
|
LPSTR FileName
|
||
|
) {
|
||
|
LPVOID Ptr = DhcpAllocateMemory(Size);
|
||
|
|
||
|
DhcpPrint((DEBUG_ALLOC, "Allocate %010x %04x %04d %s\n", Ptr, Size, LineNo, FileName));
|
||
|
return Ptr;
|
||
|
}
|
||
|
|
||
|
VOID _inline
|
||
|
DhcpFreeMemoryEx(
|
||
|
LPVOID Ptr,
|
||
|
DWORD LineNo,
|
||
|
LPSTR FileName
|
||
|
) {
|
||
|
DhcpFreeMemory(Ptr);
|
||
|
DhcpPrint((DEBUG_ALLOC, "Free %010x %04x %04d %s\n", Ptr, 0, LineNo, FileName));
|
||
|
}
|
||
|
|
||
|
|
||
|
#define DhcpAllocateMemory(Sz) DhcpAllocateMemoryEx(Sz, __LINE__, __FILE__)
|
||
|
#define DhcpFreeMemory(Ptr) DhcpFreeMemoryEx(Ptr, __LINE__, __FILE__)
|
||
|
|
||
|
#endif
|
||
|
|
||
|
LPOPTION
|
||
|
DhcpAppendOption(
|
||
|
LPOPTION Option,
|
||
|
BYTE OptionType,
|
||
|
PVOID OptionValue,
|
||
|
ULONG OptionLength,
|
||
|
LPBYTE OptionEnd
|
||
|
);
|
||
|
|
||
|
WIDE_OPTION UNALIGNED *
|
||
|
AppendWideOption(
|
||
|
WIDE_OPTION UNALIGNED *Option,
|
||
|
WORD OptionType,
|
||
|
PVOID OptionValue,
|
||
|
WORD OptionLength,
|
||
|
LPBYTE OptionEnd
|
||
|
);
|
||
|
|
||
|
WIDE_OPTION UNALIGNED *
|
||
|
AppendMadcapAddressList(
|
||
|
WIDE_OPTION UNALIGNED *Option,
|
||
|
DWORD UNALIGNED *AddrList,
|
||
|
WORD AddrCount,
|
||
|
LPBYTE OptionEnd
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
ExpandMadcapAddressList(
|
||
|
PBYTE AddrRangeList,
|
||
|
WORD AddrRangeListSize,
|
||
|
DWORD UNALIGNED *ExpandList,
|
||
|
WORD *ExpandListSize
|
||
|
);
|
||
|
|
||
|
|
||
|
LPOPTION
|
||
|
DhcpAppendClientIDOption(
|
||
|
LPOPTION Option,
|
||
|
BYTE ClientHWType,
|
||
|
LPBYTE ClientHWAddr,
|
||
|
BYTE ClientHWAddrLength,
|
||
|
LPBYTE OptionEnd
|
||
|
|
||
|
);
|
||
|
|
||
|
LPBYTE
|
||
|
DhcpAppendMagicCookie(
|
||
|
LPBYTE Option,
|
||
|
LPBYTE OptionEnd
|
||
|
|
||
|
);
|
||
|
|
||
|
LPOPTION
|
||
|
DhcpAppendEnterpriseName(
|
||
|
LPOPTION Option,
|
||
|
PCHAR DSEnterpriseName,
|
||
|
LPBYTE OptionEnd
|
||
|
);
|
||
|
|
||
|
DATE_TIME
|
||
|
DhcpCalculateTime(
|
||
|
DWORD RelativeTime
|
||
|
);
|
||
|
|
||
|
DATE_TIME
|
||
|
DhcpGetDateTime(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
DhcpReportEventW(
|
||
|
LPWSTR Source,
|
||
|
DWORD EventID,
|
||
|
DWORD EventType,
|
||
|
DWORD NumStrings,
|
||
|
DWORD DataLength,
|
||
|
LPWSTR *Strings,
|
||
|
LPVOID Data
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
DhcpReportEventA(
|
||
|
LPWSTR Source,
|
||
|
DWORD EventID,
|
||
|
DWORD EventType,
|
||
|
DWORD NumStrings,
|
||
|
DWORD DataLength,
|
||
|
LPSTR *Strings,
|
||
|
LPVOID Data
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
DhcpLogUnknownOption(
|
||
|
LPWSTR Source,
|
||
|
DWORD EventID,
|
||
|
LPOPTION Option
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
DhcpCancelWaitableTimer(
|
||
|
HANDLE TimerHandle
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
DhcpStartWaitableTimer(
|
||
|
HANDLE TimerHandle,
|
||
|
DWORD SleepTime);
|
||
|
|
||
|
|
||
|
//
|
||
|
// convert.c
|
||
|
//
|
||
|
|
||
|
LPWSTR
|
||
|
DhcpOemToUnicodeN(
|
||
|
IN LPSTR Ansi,
|
||
|
IN OUT LPWSTR Unicode,
|
||
|
IN USHORT cChars
|
||
|
);
|
||
|
|
||
|
LPWSTR
|
||
|
DhcpOemToUnicode(
|
||
|
IN LPSTR Ansi,
|
||
|
IN OUT LPWSTR Unicode
|
||
|
);
|
||
|
|
||
|
LPSTR
|
||
|
DhcpUnicodeToOem(
|
||
|
IN LPWSTR Unicode,
|
||
|
IN LPSTR Ansi
|
||
|
);
|
||
|
|
||
|
ULONG
|
||
|
DhcpUnicodeToOemSize(
|
||
|
IN LPWSTR Unicode
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
ConvertUTF8ToUnicode(
|
||
|
LPBYTE UTF8String,
|
||
|
DWORD UTF8Length,
|
||
|
LPWSTR UnicodeString,
|
||
|
DWORD UnicodeLength
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
ConvertUnicodeToUTF8(
|
||
|
LPWSTR UnicodeString,
|
||
|
DWORD UnicodeLength,
|
||
|
LPBYTE UTF8String,
|
||
|
DWORD UTF8Length
|
||
|
);
|
||
|
|
||
|
#if 0
|
||
|
|
||
|
VOID
|
||
|
DhcpIpAddressToString(
|
||
|
LPWSTR Buffer,
|
||
|
DWORD HexNumber
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
DhcpStringToIpAddress(
|
||
|
LPSTR Buffer,
|
||
|
LPDHCP_IP_ADDRESS IpAddress,
|
||
|
BOOL NetOrder
|
||
|
);
|
||
|
|
||
|
#endif
|
||
|
|
||
|
VOID
|
||
|
DhcpHexToString(
|
||
|
LPWSTR Buffer,
|
||
|
LPBYTE HexNumber,
|
||
|
DWORD Length
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
DhcpHexToAscii(
|
||
|
LPSTR Buffer,
|
||
|
LPBYTE HexNumber,
|
||
|
DWORD Length
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
DhcpDecimalToString(
|
||
|
LPWSTR Buffer,
|
||
|
BYTE Number
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
DhcpDottedStringToIpAddress(
|
||
|
LPSTR String
|
||
|
);
|
||
|
|
||
|
LPSTR
|
||
|
DhcpIpAddressToDottedString(
|
||
|
DWORD IpAddress
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
DhcpStringToHwAddress(
|
||
|
LPSTR AddressBuffer,
|
||
|
LPSTR AddressString
|
||
|
);
|
||
|
|
||
|
#if 0
|
||
|
|
||
|
DHCP_IP_ADDRESS
|
||
|
DhcpHostOrder(
|
||
|
DHCP_IP_ADDRESS NetworkOrderAddress
|
||
|
);
|
||
|
|
||
|
DHCP_IP_ADDRESS
|
||
|
DhcpNetworkOrder(
|
||
|
DHCP_IP_ADDRESS NetworkOrderAddress
|
||
|
);
|
||
|
|
||
|
#endif
|
||
|
|
||
|
LPWSTR
|
||
|
DhcpRegIpAddressToKey(
|
||
|
DHCP_IP_ADDRESS IpAddress,
|
||
|
LPWSTR KeyBuffer
|
||
|
);
|
||
|
|
||
|
DWORD
|
||
|
DhcpRegKeyToIpAddress(
|
||
|
LPWSTR Key
|
||
|
);
|
||
|
|
||
|
LPWSTR
|
||
|
DhcpRegOptionIdToKey(
|
||
|
DHCP_OPTION_ID OptionId,
|
||
|
LPWSTR KeyBuffer
|
||
|
);
|
||
|
|
||
|
DHCP_OPTION_ID
|
||
|
DhcpRegKeyToOptionId(
|
||
|
LPWSTR Key
|
||
|
);
|
||
|
|
||
|
#if DBG
|
||
|
|
||
|
VOID
|
||
|
DhcpDumpMessage(
|
||
|
DWORD DhcpDebugFlag,
|
||
|
LPDHCP_MESSAGE DhcpMessage,
|
||
|
ULONG MessageSize
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
MadcapDumpMessage(
|
||
|
DWORD DhcpDebugFlag,
|
||
|
LPMADCAP_MESSAGE MadcapMessage,
|
||
|
ULONG MessageSize
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
DhcpAssertFailed(
|
||
|
LPSTR FailedAssertion,
|
||
|
LPSTR FileName,
|
||
|
DWORD LineNumber,
|
||
|
LPSTR Message
|
||
|
);
|
||
|
|
||
|
#define DhcpAssert(Predicate) \
|
||
|
{ \
|
||
|
if (!(Predicate)) \
|
||
|
DhcpAssertFailed( #Predicate, __FILE__, __LINE__, NULL ); \
|
||
|
}
|
||
|
|
||
|
|
||
|
#define DhcpVerify(Predicate) \
|
||
|
{ \
|
||
|
if (!(Predicate)) \
|
||
|
DhcpAssertFailed( #Predicate, __FILE__, __LINE__, NULL ); \
|
||
|
}
|
||
|
|
||
|
|
||
|
#else
|
||
|
|
||
|
#define DhcpAssert(_x_)
|
||
|
#define DhcpDumpMessage(_x_, _y_, _z_)
|
||
|
#define MadcapDumpMessage(_x_, _y_, _z_)
|
||
|
#define DhcpVerify(_x_) (_x_)
|
||
|
|
||
|
#endif // not DBG
|
||
|
|
||
|
VOID
|
||
|
DhcpNTToNTPTime(
|
||
|
LPDATE_TIME AbsNTTime,
|
||
|
DWORD Offset,
|
||
|
PULONG NTPTimeStamp
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
DhcpNTPToNTTime(
|
||
|
PULONG NTPTimeStamp,
|
||
|
DWORD Offset,
|
||
|
DATE_TIME *NTTime
|
||
|
);
|
||
|
|
||
|
|
||
|
#endif DHCPLIB_H_INCLUDED
|
||
|
|
||
|
//------------------------------------------------------------------------
|
||
|
// End of file
|
||
|
//------------------------------------------------------------------------
|
||
|
|
||
|
|