windows-nt/Source/XPSP1/NT/net/dhcp/client/nt/dhcppro.h

411 lines
8.6 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*++
Copyright (c) 1994 Microsoft Corporation
Module Name:
lproto.h
Abstract:
This file contains function proto types for the NT specific
functions.
Author:
Madan Appiah (madana) Dec-7-1993
Environment:
User Mode - Win32
Revision History:
--*/
//
// dhcpreg.c
//
DWORD
DhcpRegQueryInfoKey(
HKEY KeyHandle,
LPDHCP_KEY_QUERY_INFO QueryInfo
);
DWORD
GetRegistryString(
HKEY Key,
LPWSTR ValueStringName,
LPWSTR *String,
LPDWORD StringSize
);
DWORD
DhcpRegReadParamString(
LPWSTR AdapterName,
LPWSTR RegKeyLocation,
LPWSTR ValueName,
LPWSTR *ReturnValue
);
DWORD
RegGetIpAndSubnet(
IN DHCP_CONTEXT *DhcpContext,
OUT PIP_SUBNET *TcpConf,
OUT int *Count
);
DWORD
RegSetIpAddress(
HKEY KeyHandle,
LPWSTR ValueName,
DWORD ValueType,
DHCP_IP_ADDRESS IpAddress
);
#if DBG
DWORD
RegSetTimeField(
HKEY KeyHandle,
LPWSTR ValueName,
DWORD ValueType,
time_t Time
);
#endif
DWORD
DhcpGetRegistryValue(
LPWSTR RegKey,
LPWSTR ValueName,
DWORD ValueType,
PVOID *Data
);
DWORD
DhcpSetDNSAddress(
HKEY KeyHandle,
LPWSTR ValueName,
DWORD ValueType,
DHCP_IP_ADDRESS UNALIGNED *Data,
DWORD DataLength
);
DWORD
SetDhcpOption(
LPWSTR AdapterName,
DHCP_OPTION_ID OptionId,
LPBOOL DefaultGatewaysSet,
BOOL LastKnownDefaultGateway
);
DWORD
DhcpMakeNICList(
VOID
);
DWORD
DhcpAddNICtoList(
LPWSTR AdapterName,
LPWSTR DeviceName,
PDHCP_CONTEXT *DhcpContext
);
#if defined(_PNP_POWER_)
DWORD
DhcpAddNICtoListEx(
LPWSTR AdapterName,
DWORD ipInterfaceContext,
PDHCP_CONTEXT *DhcpContext
);
#endif _PNP_POWER_
BOOL
SetOverRideDefaultGateway(
LPWSTR AdapterName
);
BOOL
DhcpGetAddressOption(
DHCP_IP_ADDRESS **ppDNSServerList,
DWORD *pNumberOfServers
);
BOOL
DhcpRegReadUseMHAsyncDnsFlag(
VOID
);
DWORD // Win32 status
DhcpInitRegistry( // Initialize registry based globals
VOID
);
VOID
DhcpCleanupRegistry( // undo the effects of InitReg call
VOID
);
DHCP_IP_ADDRESS // the static ip address of the adapter
DhcpRegReadIpAddress( // get the first ip address
LPWSTR AdapterName, // the adaptor of interest
LPWSTR ValueName // the ip address value to read
);
DWORD // status
DhcpRegReadIpAddresses( // read a set of ip addresses
IN DHCPKEY RegKeyHandle, // open key handle
IN LPWSTR ValueName, // name of value to read frm
IN WCHAR Separation, // a MULTI_SZ has L'\0', SZ has L' ' or L',' etc.
OUT PDHCP_IP_ADDRESS *AddressArray, // an array of addresses
OUT LPDWORD AddressCount // the output size of above array
);
VOID
DhcpRegInitializeClasses( // initialize the classes list
IN OUT PDHCP_CONTEXT DhcpContext // NULL or adpater context
);
DWORD // status
DhcpGetRegistryValueWithKey( // see defn of GetRegistryValue
IN HKEY KeyHandle, // keyhandle NOT location
IN LPWSTR ValueName, // value to read from registry
IN DWORD ValueType, // type of value
OUT LPVOID Data // this will be filled in
);
DWORD // status
DhcpRegExpandString( // replace '?' with AdapterName
IN LPWSTR InString, // input string to expand
IN LPWSTR AdapterName, // the adapter name
OUT LPWSTR *OutString, // the output ptr to store string
IN OUT LPWSTR Buffer // the buffer to use if non NULL
);
DWORD // status
DhcpRegReadFromLocation( // read from one location
IN LPWSTR OneLocation, // value to read from
IN LPWSTR AdapterName, // replace '?' with adapternames
OUT LPBYTE *Value, // output value
OUT DWORD *ValueType, // data type of value
OUT DWORD *ValueSize // the size in bytes
);
DWORD // status
DhcpRegReadFromAnyLocation( // read from one of many locations
IN LPWSTR MzRegLocation, // multiple locations thru REG_MULTI_MZ
IN LPWSTR AdapterName, // may have to replace '?' with AdapterName
OUT LPBYTE *Value, // data for the value read
OUT DWORD *ValueType, // type of the data
OUT DWORD *ValueSize // the size of data
);
DWORD // win32 status
DhcpRegFillParams( // get the registry config for this adapter
IN OUT PDHCP_CONTEXT DhcpContext, // adapter context to fill in
IN BOOL ReadAllInfo // read EVERYTHING or only some critical info?
);
DWORD // win32 status
DhcpRegFillFallbackConfig( // get the fallback config for this adapter
IN OUT PDHCP_CONTEXT DhcpContext // adapter context to fill in
);
VOID
DhcpRegReadClassId( // Read the class id stuff
IN PDHCP_CONTEXT DhcpContext // Input context to read for
);
#ifdef BOOTPERF
VOID
DhcpRegDeleteQuickBootValues(
IN HKEY Key
);
VOID
DhcpRegSaveQuickBootValues(
IN HKEY Key,
IN ULONG IpAddress,
IN ULONG Mask,
IN ULONGLONG LeaseExpirationTime
);
#endif BOOTPERF
//
// ioctl.c
//
DWORD
IPSetIPAddress(
DWORD IpInterfaceContext,
DHCP_IP_ADDRESS IpAddress,
DHCP_IP_ADDRESS SubnetMask
);
DWORD
IPAddIPAddress(
LPWSTR AdapterName,
DHCP_IP_ADDRESS Address,
DHCP_IP_ADDRESS SubnetMask
);
DWORD
IPDelIPAddress(
DWORD IpInterfaceContext
);
DWORD
IPResetIPAddress(
DWORD dwInterfaceContext,
DHCP_IP_ADDRESS SubnetMask
);
DWORD
SetIPAddressAndArp(
PVOID pvLocalInformation,
DWORD dwAddress,
DWORD dwSubnetMask
);
DWORD
NetBTSetIPAddress(
LPWSTR DeviceName,
DHCP_IP_ADDRESS IpAddress,
DHCP_IP_ADDRESS SubnetMask
);
DWORD
NetBTResetIPAddress(
LPWSTR DeviceName,
DHCP_IP_ADDRESS SubnetMask
);
DWORD
NetBTNotifyRegChanges(
LPWSTR DeviceName
);
DWORD
SetDefaultGateway(
DWORD Command,
DHCP_IP_ADDRESS GatewayAddress,
DWORD Metric
);
HANDLE
APIENTRY
DhcpOpenGlobalEvent(
void
);
#if defined(_PNP_POWER_) && !defined(VXD)
DWORD
IPGetIPEventRequest(
HANDLE handle,
HANDLE event,
UINT seqNo,
PIP_GET_IP_EVENT_RESPONSE responseBuffer,
DWORD responseBufferSize,
PIO_STATUS_BLOCK ioStatusBlock
);
DWORD
IPCancelIPEventRequest(
HANDLE handle,
PIO_STATUS_BLOCK ioStatusBlock
);
#endif _PNP_POWER_ && !VXD
//
// api.c
//
DWORD
DhcpApiInit(
VOID
);
VOID
DhcpApiCleanup(
VOID
);
DWORD
ProcessApiRequest(
HANDLE PipeHandle,
LPOVERLAPPED Overlap
);
//
// util.c
//
PDHCP_CONTEXT
FindDhcpContextOnNicList(
LPCWSTR AdapterName,
DWORD InterfaceContext
);
//
// dhcp.c
//
DWORD
DhcpCommonInit(
VOID
);
DWORD
SetIpConfigurationForNIC(
HKEY KeyHandle,
PDHCP_CONTEXT DhcpContext,
PDHCP_OPTIONS DhcpOptions,
DHCP_IP_ADDRESS ServerIpAddress,
DWORD dwLeaseTime,
DWORD dwT1Time,
DWORD dwT2Time,
BOOL ObtainedNewAddress
);
#ifdef BOOTPERF
DWORD
DhcpQueryHWInfoEx(
DWORD IpInterfaceContext,
DWORD *pIpInterfaceInstance,
DWORD *pOldIpAddress OPTIONAL,
DWORD *pOldMask OPTIONAL,
BOOL *pfInterfaceDown OPTIONAL,
LPBYTE HardwareAddressType,
LPBYTE *HardwareAddress,
LPDWORD HardwareAddressLength
);
#endif BOOTPERF
DWORD
IPGetWOLCapability(
IN ULONG IfIndex,
OUT PULONG pRetVal
);
DWORD
QueryIfIndex(
IN ULONG IpInterfaceContext,
IN ULONG IpInterfaceInstance
);
BOOL
IsUnidirectionalAdapter(
IN DWORD IpInterfaceContext
);