windows-nt/Source/XPSP1/NT/net/dhcp/inc/dhcplib.h

402 lines
5.8 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*++
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
//------------------------------------------------------------------------