IPTypes.h
上传用户:feituo2008
上传日期:2013-02-02
资源大小:493k
文件大小:3k
源码类别:

Email客户端

开发平台:

Visual C++

  1. /*++
  2. Copyright (c) 1995-1999  Microsoft Corporation
  3. Module Name:
  4.     iptypes.h
  5. */
  6. #ifndef IP_TYPES_INCLUDED
  7. #define IP_TYPES_INCLUDED
  8. #if _MSC_VER > 1000
  9. #pragma once
  10. #endif
  11. #include <time.h>
  12. // Definitions and structures used by getnetworkparams and getadaptersinfo apis
  13. #define MAX_ADAPTER_DESCRIPTION_LENGTH  128 // arb.
  14. #define MAX_ADAPTER_NAME_LENGTH         256 // arb.
  15. #define MAX_ADAPTER_ADDRESS_LENGTH      8   // arb.
  16. #define DEFAULT_MINIMUM_ENTITIES        32  // arb.
  17. #define MAX_HOSTNAME_LEN                128 // arb.
  18. #define MAX_DOMAIN_NAME_LEN             128 // arb.
  19. #define MAX_SCOPE_ID_LEN                256 // arb.
  20. //
  21. // types
  22. //
  23. // Node Type
  24. #define BROADCAST_NODETYPE              1
  25. #define PEER_TO_PEER_NODETYPE           2
  26. #define MIXED_NODETYPE                  4
  27. #define HYBRID_NODETYPE                 8
  28. // Adapter Type
  29. #define IF_OTHER_ADAPTERTYPE            0
  30. #define IF_ETHERNET_ADAPTERTYPE         1
  31. #define IF_TOKEN_RING_ADAPTERTYPE       2
  32. #define IF_FDDI_ADAPTERTYPE             3
  33. #define IF_PPP_ADAPTERTYPE              4
  34. #define IF_LOOPBACK_ADAPTERTYPE         5
  35. #define IF_SLIP_ADAPTERTYPE             6
  36. //
  37. // IP_ADDRESS_STRING - store an IP address as a dotted decimal string
  38. //
  39. typedef struct {
  40.     char String[4 * 4];
  41. } IP_ADDRESS_STRING, *PIP_ADDRESS_STRING, IP_MASK_STRING, *PIP_MASK_STRING;
  42. //
  43. // IP_ADDR_STRING - store an IP address with its corresponding subnet mask,
  44. // both as dotted decimal strings
  45. //
  46. typedef struct _IP_ADDR_STRING {
  47.     struct _IP_ADDR_STRING* Next;
  48.     IP_ADDRESS_STRING IpAddress;
  49.     IP_MASK_STRING IpMask;
  50.     DWORD Context;
  51. } IP_ADDR_STRING, *PIP_ADDR_STRING;
  52. //
  53. // ADAPTER_INFO - per-adapter information. All IP addresses are stored as
  54. // strings
  55. //
  56. typedef struct _IP_ADAPTER_INFO {
  57.     struct _IP_ADAPTER_INFO* Next;
  58.     DWORD ComboIndex;
  59.     char AdapterName[MAX_ADAPTER_NAME_LENGTH + 4];
  60.     char Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4];
  61.     UINT AddressLength;
  62.     BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH];
  63.     DWORD Index;
  64.     UINT Type;
  65.     UINT DhcpEnabled;
  66.     PIP_ADDR_STRING CurrentIpAddress;
  67.     IP_ADDR_STRING IpAddressList;
  68.     IP_ADDR_STRING GatewayList;
  69.     IP_ADDR_STRING DhcpServer;
  70.     BOOL HaveWins;
  71.     IP_ADDR_STRING PrimaryWinsServer;
  72.     IP_ADDR_STRING SecondaryWinsServer;
  73.     time_t LeaseObtained;
  74.     time_t LeaseExpires;
  75. } IP_ADAPTER_INFO, *PIP_ADAPTER_INFO;
  76. //
  77. // IP_PER_ADAPTER_INFO - per-adapter IP information such as DNS server list.
  78. //
  79. typedef struct _IP_PER_ADAPTER_INFO {
  80.     UINT AutoconfigEnabled;
  81.     UINT AutoconfigActive;
  82.     PIP_ADDR_STRING CurrentDnsServer;
  83.     IP_ADDR_STRING DnsServerList;
  84. } IP_PER_ADAPTER_INFO, *PIP_PER_ADAPTER_INFO;
  85. //
  86. // FIXED_INFO - the set of IP-related information which does not depend on DHCP
  87. //
  88. typedef struct {
  89.     char HostName[MAX_HOSTNAME_LEN + 4] ;
  90.     char DomainName[MAX_DOMAIN_NAME_LEN + 4];
  91.     PIP_ADDR_STRING CurrentDnsServer;
  92.     IP_ADDR_STRING DnsServerList;
  93.     UINT NodeType;
  94.     char ScopeId[MAX_SCOPE_ID_LEN + 4];
  95.     UINT EnableRouting;
  96.     UINT EnableProxy;
  97.     UINT EnableDns;
  98. } FIXED_INFO, *PFIXED_INFO;
  99. #endif