/*++ 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 );