273 lines
7.9 KiB
C++
273 lines
7.9 KiB
C++
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1997.
|
|
//
|
|
// File: T C P I P . H
|
|
//
|
|
// Contents: Tcpip config memory structure definitions
|
|
//
|
|
// Notes:
|
|
//
|
|
// Author: tongl 13 Nov, 1997
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
#include "ncstring.h"
|
|
|
|
#define ZERO_ADDRESS L"0.0.0.0"
|
|
#define FF_ADDRESS L"255.0.0.0"
|
|
|
|
typedef vector<tstring *> VSTR;
|
|
typedef VSTR::iterator VSTR_ITER;
|
|
typedef VSTR::const_iterator VSTR_CONST_ITER;
|
|
|
|
//(08/18/98 nsun): for multiple interfaces of WAN adapters
|
|
typedef vector<GUID> IFACECOL; // interface collection
|
|
typedef IFACECOL::iterator IFACEITER; // interface iterator
|
|
|
|
struct HANDLES
|
|
{
|
|
HWND m_hList;
|
|
HWND m_hAdd;
|
|
HWND m_hEdit;
|
|
HWND m_hRemove;
|
|
HWND m_hUp;
|
|
HWND m_hDown;
|
|
};
|
|
|
|
//
|
|
// ADAPTER_INFO data strucut:
|
|
// contains adapter specific info for Tcpip
|
|
//
|
|
|
|
enum BindingState
|
|
{
|
|
BINDING_ENABLE,
|
|
BINDING_DISABLE,
|
|
BINDING_UNSET
|
|
};
|
|
|
|
enum ConnectionType
|
|
{
|
|
CONNECTION_LAN,
|
|
CONNECTION_RAS_PPP,
|
|
CONNECTION_RAS_SLIP,
|
|
CONNECTION_RAS_VPN,
|
|
CONNECTION_UNSET
|
|
};
|
|
|
|
struct BACKUP_CFG_INFO
|
|
{
|
|
tstring m_strIpAddr;
|
|
tstring m_strSubnetMask;
|
|
tstring m_strDefGw;
|
|
tstring m_strPreferredDns;
|
|
tstring m_strAlternateDns;
|
|
tstring m_strPreferredWins;
|
|
tstring m_strAlternateWins;
|
|
BOOL m_fAutoNet;
|
|
};
|
|
|
|
struct ADAPTER_INFO
|
|
{
|
|
private:
|
|
ADAPTER_INFO(const& ADAPTER_INFO); // do not allow others to use!
|
|
|
|
public:
|
|
ADAPTER_INFO() {}
|
|
~ADAPTER_INFO();
|
|
|
|
ADAPTER_INFO & operator=(const ADAPTER_INFO & info); // copy operator
|
|
HRESULT HrSetDefaults(const GUID* pguid,
|
|
PCWSTR szNetCardDescription,
|
|
PCWSTR szNetCardBindName,
|
|
PCWSTR szNetCardTcpipBindPath);
|
|
void ResetOldValues();
|
|
|
|
public:
|
|
//There is no Pnp for the backup config info
|
|
BACKUP_CFG_INFO m_BackupInfo;
|
|
|
|
// If the netcard has been unbound from NCPA (or anywhere else)
|
|
BindingState m_BindingState;
|
|
|
|
// Remember the initial bind state of the adapter
|
|
BindingState m_InitialBindingState;
|
|
|
|
// Inst Guid of net card ( we get the guid to identify cards from answer file )
|
|
// tstring m_strServiceName;
|
|
GUID m_guidInstanceId;
|
|
|
|
// Bindname of the net card, such as El59x1{inst guid}
|
|
tstring m_strBindName;
|
|
|
|
// Bind path name from Tcpip's linkage\Bind key to the adapter
|
|
tstring m_strTcpipBindPath;
|
|
|
|
// Bind path name from NetBt's linkage key to the adapter
|
|
tstring m_strNetBtBindPath;
|
|
|
|
// User viewable net card description
|
|
tstring m_strDescription;
|
|
|
|
tstring m_strDnsDomain; // DNS -> Domain name
|
|
tstring m_strOldDnsDomain;
|
|
|
|
VSTR m_vstrIpAddresses; // IP Address
|
|
VSTR m_vstrOldIpAddresses;
|
|
|
|
VSTR m_vstrSubnetMask; // SubnetMask
|
|
VSTR m_vstrOldSubnetMask;
|
|
|
|
VSTR m_vstrDefaultGateway; // Default Gateways
|
|
VSTR m_vstrOldDefaultGateway;
|
|
|
|
VSTR m_vstrDefaultGatewayMetric; // Default gateway metrics
|
|
VSTR m_vstrOldDefaultGatewayMetric;
|
|
|
|
VSTR m_vstrDnsServerList; // DNS -> DNS server Search Order list
|
|
VSTR m_vstrOldDnsServerList;
|
|
|
|
VSTR m_vstrWinsServerList; // WINS -> WINS server Serach Order list
|
|
VSTR m_vstrOldWinsServerList;
|
|
|
|
// $REVIEW (tongl 9/6/98)Filter information (Added per bugs #109161, #216559)
|
|
VSTR m_vstrTcpFilterList; // Options -> Filterng -> TCP Ports
|
|
VSTR m_vstrOldTcpFilterList;
|
|
|
|
VSTR m_vstrUdpFilterList; // Options -> Filterng -> UDP Ports
|
|
VSTR m_vstrOldUdpFilterList;
|
|
|
|
VSTR m_vstrIpFilterList; // Options -> Filterng -> IP Protocols
|
|
VSTR m_vstrOldIpFilterList;
|
|
|
|
// ATMARP client configurable parameters ( all per adapter based )
|
|
VSTR m_vstrARPServerList; // list of ARP server addresses
|
|
VSTR m_vstrOldARPServerList;
|
|
|
|
VSTR m_vstrMARServerList; // list of MAR server addresses
|
|
VSTR m_vstrOldMARServerList;
|
|
|
|
DWORD m_dwMTU; // Maximum Transmission Unit
|
|
DWORD m_dwOldMTU;
|
|
|
|
DWORD m_dwInterfaceMetric; // metric for interface-local routes
|
|
DWORD m_dwOldInterfaceMetric;
|
|
|
|
DWORD m_dwNetbiosOptions; // (New, added inNT5 Beta2): Option to turn NetBt off
|
|
DWORD m_dwOldNetbiosOptions;
|
|
|
|
// RAS connection specific parameters
|
|
// No dynamic reconfig, so no need to remember old values
|
|
DWORD m_dwFrameSize;
|
|
BOOL m_fUseRemoteGateway : 1;
|
|
BOOL m_fUseIPHeaderCompression : 1;
|
|
BOOL m_fIsDemandDialInterface : 1;
|
|
|
|
BOOL m_fEnableDhcp : 1; // DHCP Enable -> Obtain an IP Address from a DHCP Server
|
|
BOOL m_fOldEnableDhcp : 1;
|
|
|
|
BOOL m_fDisableDynamicUpdate : 1; // Disable Ip address dynamic update on DNS server
|
|
BOOL m_fOldDisableDynamicUpdate : 1;
|
|
|
|
BOOL m_fEnableNameRegistration : 1;
|
|
BOOL m_fOldEnableNameRegistration : 1;
|
|
|
|
BOOL m_fPVCOnly : 1; // PVC only
|
|
BOOL m_fOldPVCOnly : 1;
|
|
|
|
// Is this card only added from answerfile,
|
|
// i.e. not on binding path to Tcpip yet
|
|
BOOL m_fIsFromAnswerFile : 1;
|
|
|
|
// Is this an ATM card ?
|
|
// ( ATM cards needs extra property page for ARP Client configuration)
|
|
BOOL m_fIsAtmAdapter : 1;
|
|
|
|
// Is this a WanAdapter ?
|
|
// ( Wan adapters only have static parameters and don't show in UI)
|
|
BOOL m_fIsWanAdapter : 1;
|
|
|
|
|
|
// Is this a 1394 NET device?
|
|
// (1394 devices currently do not need any special properties,
|
|
// but they are associated with a specific arp module).
|
|
BOOL m_fIs1394Adapter : 1;
|
|
|
|
// Is this an fake adapter that represents a RAS connection,
|
|
// but is not an adapter and does not bind
|
|
BOOL m_fIsRasFakeAdapter : 1;
|
|
|
|
// Is the card marked as for deletion
|
|
BOOL m_fDeleted : 1;
|
|
|
|
// Has this card been newly added. Valid only after calling
|
|
// MarkNewlyAddedCards.
|
|
// or Has the interfaces of the card been changed if it is a WAN adapter
|
|
// Previously was m_fNewlyAdded
|
|
BOOL m_fNewlyChanged : 1;
|
|
|
|
// (08/18/98 nsun) added for multiple interfaces of WAN adapters
|
|
// m_IfaceIds: collection of interface IDs
|
|
BOOL m_fIsMultipleIfaceMode : 1;
|
|
|
|
BOOL m_fBackUpSettingChanged : 1;
|
|
|
|
IFACECOL m_IfaceIds;
|
|
};
|
|
|
|
typedef vector<ADAPTER_INFO *> VCARD;
|
|
|
|
|
|
//
|
|
// GLOBAL_INFO - TCP/IP global information data structure.
|
|
struct GLOBAL_INFO
|
|
{
|
|
public:
|
|
tstring m_strHostName; // DNS Host Name
|
|
|
|
tstring m_strHostNameFromAnswerFile; // DNS Host Name from the answerfile
|
|
|
|
//IPSec is removed from connection UI
|
|
/*
|
|
tstring m_strIpsecPol; // the ipsec local policy
|
|
GUID m_guidIpsecPol;
|
|
*/
|
|
|
|
VSTR m_vstrDnsSuffixList; // DNS: domain search suffix list
|
|
VSTR m_vstrOldDnsSuffixList;
|
|
|
|
BOOL m_fEnableLmHosts : 1; // WINS -> Enable LMHOSTS Lookup
|
|
BOOL m_fOldEnableLmHosts : 1;
|
|
|
|
BOOL m_fUseDomainNameDevolution : 1; // DNS: whether parent doamins should be searched
|
|
BOOL m_fOldUseDomainNameDevolution : 1;
|
|
|
|
BOOL m_fEnableRouter : 1; // ROUTING -> Enable IP Forwarding
|
|
|
|
// unattended install for RRAS
|
|
BOOL m_fEnableIcmpRedirect : 1;
|
|
BOOL m_fDeadGWDetectDefault : 1;
|
|
BOOL m_fDontAddDefaultGatewayDefault : 1;
|
|
|
|
// $REVIEW (tongl 9/6/98)Filter information (Added per bugs #109161, #216559)
|
|
BOOL m_fEnableFiltering : 1; // Options -> Filtering -> Enabled Filtering
|
|
BOOL m_fOldEnableFiltering : 1;
|
|
|
|
private:
|
|
GLOBAL_INFO(const & GLOBAL_INFO); // no not allow others to use!
|
|
|
|
public:
|
|
GLOBAL_INFO() {};
|
|
~GLOBAL_INFO();
|
|
|
|
GLOBAL_INFO& operator=(GLOBAL_INFO& glb); // copy operator
|
|
|
|
HRESULT HrSetDefaults();
|
|
|
|
void ResetOldValues();
|
|
|
|
};
|