www.pudn.com > FindMail.zip > IPTypes.h


/*++ 
 
Copyright (c) 1995-1999  Microsoft Corporation 
 
Module Name: 
 
    iptypes.h 
 
*/ 
 
#ifndef IP_TYPES_INCLUDED 
#define IP_TYPES_INCLUDED 
 
#if _MSC_VER > 1000 
#pragma once 
#endif 
 
#include  
 
// Definitions and structures used by getnetworkparams and getadaptersinfo apis 
 
#define MAX_ADAPTER_DESCRIPTION_LENGTH  128 // arb. 
#define MAX_ADAPTER_NAME_LENGTH         256 // arb. 
#define MAX_ADAPTER_ADDRESS_LENGTH      8   // arb. 
#define DEFAULT_MINIMUM_ENTITIES        32  // arb. 
#define MAX_HOSTNAME_LEN                128 // arb. 
#define MAX_DOMAIN_NAME_LEN             128 // arb. 
#define MAX_SCOPE_ID_LEN                256 // arb. 
 
// 
// types 
// 
 
// Node Type 
 
#define BROADCAST_NODETYPE              1 
#define PEER_TO_PEER_NODETYPE           2 
#define MIXED_NODETYPE                  4 
#define HYBRID_NODETYPE                 8 
 
// Adapter Type 
 
#define IF_OTHER_ADAPTERTYPE            0 
#define IF_ETHERNET_ADAPTERTYPE         1 
#define IF_TOKEN_RING_ADAPTERTYPE       2 
#define IF_FDDI_ADAPTERTYPE             3 
#define IF_PPP_ADAPTERTYPE              4 
#define IF_LOOPBACK_ADAPTERTYPE         5 
#define IF_SLIP_ADAPTERTYPE             6 
 
// 
// IP_ADDRESS_STRING - store an IP address as a dotted decimal string 
// 
 
typedef struct { 
    char String[4 * 4]; 
} IP_ADDRESS_STRING, *PIP_ADDRESS_STRING, IP_MASK_STRING, *PIP_MASK_STRING; 
 
// 
// IP_ADDR_STRING - store an IP address with its corresponding subnet mask, 
// both as dotted decimal strings 
// 
 
typedef struct _IP_ADDR_STRING { 
    struct _IP_ADDR_STRING* Next; 
    IP_ADDRESS_STRING IpAddress; 
    IP_MASK_STRING IpMask; 
    DWORD Context; 
} IP_ADDR_STRING, *PIP_ADDR_STRING; 
 
// 
// ADAPTER_INFO - per-adapter information. All IP addresses are stored as 
// strings 
// 
 
typedef struct _IP_ADAPTER_INFO { 
    struct _IP_ADAPTER_INFO* Next; 
    DWORD ComboIndex; 
    char AdapterName[MAX_ADAPTER_NAME_LENGTH + 4]; 
    char Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4]; 
    UINT AddressLength; 
    BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH]; 
    DWORD Index; 
    UINT Type; 
    UINT DhcpEnabled; 
    PIP_ADDR_STRING CurrentIpAddress; 
    IP_ADDR_STRING IpAddressList; 
    IP_ADDR_STRING GatewayList; 
    IP_ADDR_STRING DhcpServer; 
    BOOL HaveWins; 
    IP_ADDR_STRING PrimaryWinsServer; 
    IP_ADDR_STRING SecondaryWinsServer; 
    time_t LeaseObtained; 
    time_t LeaseExpires; 
} IP_ADAPTER_INFO, *PIP_ADAPTER_INFO; 
 
// 
// IP_PER_ADAPTER_INFO - per-adapter IP information such as DNS server list. 
// 
 
typedef struct _IP_PER_ADAPTER_INFO { 
    UINT AutoconfigEnabled; 
    UINT AutoconfigActive; 
    PIP_ADDR_STRING CurrentDnsServer; 
    IP_ADDR_STRING DnsServerList; 
} IP_PER_ADAPTER_INFO, *PIP_PER_ADAPTER_INFO; 
 
// 
// FIXED_INFO - the set of IP-related information which does not depend on DHCP 
// 
 
typedef struct { 
    char HostName[MAX_HOSTNAME_LEN + 4] ; 
    char DomainName[MAX_DOMAIN_NAME_LEN + 4]; 
    PIP_ADDR_STRING CurrentDnsServer; 
    IP_ADDR_STRING DnsServerList; 
    UINT NodeType; 
    char ScopeId[MAX_SCOPE_ID_LEN + 4]; 
    UINT EnableRouting; 
    UINT EnableProxy; 
    UINT EnableDns; 
} FIXED_INFO, *PFIXED_INFO; 
 
#endif