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
|
|
//------------------------------------------------------------------------
|
|
|
|
|