1 | /* $Id: iphlpapi.h,v 1.2 2003-05-05 15:10:57 sandervl Exp $ */
|
---|
2 | /*
|
---|
3 | * IPHLPAPI library
|
---|
4 | *
|
---|
5 | */
|
---|
6 |
|
---|
7 |
|
---|
8 | #ifndef _IPHLPAPI_H_
|
---|
9 | #define _IPHLPAPI_H_
|
---|
10 |
|
---|
11 |
|
---|
12 | #pragma pack(1)
|
---|
13 |
|
---|
14 |
|
---|
15 | #ifndef _TIME_T_DEFINED
|
---|
16 | #define _TIME_T_DEFINED
|
---|
17 | typedef long time_t;
|
---|
18 | #endif
|
---|
19 |
|
---|
20 | // FROM: IPExport.h
|
---|
21 | //
|
---|
22 | // IP type definitions.
|
---|
23 | //
|
---|
24 | typedef unsigned long IPAddr; // An IP address.
|
---|
25 | typedef unsigned long IPMask; // An IP subnet mask.
|
---|
26 | typedef unsigned long IP_STATUS; // Status code returned from IP APIs.
|
---|
27 |
|
---|
28 |
|
---|
29 | #define MIB_IF_TYPE_OTHER 1
|
---|
30 | #define MIB_IF_TYPE_ETHERNET 6
|
---|
31 | #define MIB_IF_TYPE_TOKENRING 9
|
---|
32 | #define MIB_IF_TYPE_FDDI 15
|
---|
33 | #define MIB_IF_TYPE_PPP 23
|
---|
34 | #define MIB_IF_TYPE_LOOPBACK 24
|
---|
35 | #define MIB_IF_TYPE_SLIP 28
|
---|
36 |
|
---|
37 | #define MIB_IF_ADMIN_STATUS_UP 1
|
---|
38 | #define MIB_IF_ADMIN_STATUS_DOWN 2
|
---|
39 | #define MIB_IF_ADMIN_STATUS_TESTING 3
|
---|
40 |
|
---|
41 | #define MIB_IF_OPER_STATUS_NON_OPERATIONAL 0
|
---|
42 | #define MIB_IF_OPER_STATUS_UNREACHABLE 1
|
---|
43 | #define MIB_IF_OPER_STATUS_DISCONNECTED 2
|
---|
44 | #define MIB_IF_OPER_STATUS_CONNECTING 3
|
---|
45 | #define MIB_IF_OPER_STATUS_CONNECTED 4
|
---|
46 | #define MIB_IF_OPER_STATUS_OPERATIONAL 5
|
---|
47 |
|
---|
48 | // FROM: IPRTRMIB.h
|
---|
49 | //
|
---|
50 | #define ANY_SIZE 1
|
---|
51 | #define MAXLEN_IFDESCR 256
|
---|
52 | #define MAXLEN_PHYSADDR 8
|
---|
53 | #define MAX_INTERFACE_NAME_LEN 256
|
---|
54 |
|
---|
55 |
|
---|
56 | // FROM: iptypes.h
|
---|
57 | // Definitions and structures used by getnetworkparams and getadaptersinfo apis
|
---|
58 |
|
---|
59 | #define MAX_ADAPTER_DESCRIPTION_LENGTH 128 // arb.
|
---|
60 | #define MAX_ADAPTER_NAME_LENGTH 256 // arb.
|
---|
61 | #define MAX_ADAPTER_ADDRESS_LENGTH 8 // arb.
|
---|
62 | #define DEFAULT_MINIMUM_ENTITIES 32 // arb.
|
---|
63 | #define MAX_HOSTNAME_LEN 128 // arb.
|
---|
64 | #define MAX_DOMAIN_NAME_LEN 128 // arb.
|
---|
65 | #define MAX_SCOPE_ID_LEN 256 // arb.
|
---|
66 |
|
---|
67 | //
|
---|
68 | // IP_ADDRESS_STRING - store an IP address as a dotted decimal string
|
---|
69 | //
|
---|
70 |
|
---|
71 | typedef struct {
|
---|
72 | char String[4 * 4];
|
---|
73 | } IP_ADDRESS_STRING, *PIP_ADDRESS_STRING, IP_MASK_STRING, *PIP_MASK_STRING;
|
---|
74 |
|
---|
75 |
|
---|
76 | typedef struct _IP_ADDR_STRING {
|
---|
77 | struct _IP_ADDR_STRING* Next;
|
---|
78 | IP_ADDRESS_STRING IpAddress;
|
---|
79 | IP_MASK_STRING IpMask;
|
---|
80 | DWORD Context;
|
---|
81 | } IP_ADDR_STRING, *PIP_ADDR_STRING;
|
---|
82 |
|
---|
83 |
|
---|
84 | typedef struct _IP_ADAPTER_INFO {
|
---|
85 | struct _IP_ADAPTER_INFO* Next;
|
---|
86 | DWORD ComboIndex;
|
---|
87 | char AdapterName[MAX_ADAPTER_NAME_LENGTH + 4];
|
---|
88 | char Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4];
|
---|
89 | UINT AddressLength;
|
---|
90 | BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH];
|
---|
91 | DWORD Index;
|
---|
92 | UINT Type;
|
---|
93 | UINT DhcpEnabled;
|
---|
94 | PIP_ADDR_STRING CurrentIpAddress;
|
---|
95 | IP_ADDR_STRING IpAddressList;
|
---|
96 | IP_ADDR_STRING GatewayList;
|
---|
97 | IP_ADDR_STRING DhcpServer;
|
---|
98 | BOOL HaveWins;
|
---|
99 | IP_ADDR_STRING PrimaryWinsServer;
|
---|
100 | IP_ADDR_STRING SecondaryWinsServer;
|
---|
101 | time_t LeaseObtained;
|
---|
102 | time_t LeaseExpires;
|
---|
103 | } IP_ADAPTER_INFO, *PIP_ADAPTER_INFO;
|
---|
104 |
|
---|
105 |
|
---|
106 | typedef struct {
|
---|
107 | char HostName[MAX_HOSTNAME_LEN + 4] ;
|
---|
108 | char DomainName[MAX_DOMAIN_NAME_LEN + 4];
|
---|
109 | PIP_ADDR_STRING CurrentDnsServer;
|
---|
110 | IP_ADDR_STRING DnsServerList;
|
---|
111 | UINT NodeType;
|
---|
112 | char ScopeId[MAX_SCOPE_ID_LEN + 4];
|
---|
113 | UINT EnableRouting;
|
---|
114 | UINT EnableProxy;
|
---|
115 | UINT EnableDns;
|
---|
116 | } FIXED_INFO, *PFIXED_INFO;
|
---|
117 |
|
---|
118 |
|
---|
119 | typedef struct _MIB_IPADDRROW {
|
---|
120 | DWORD dwAddr;
|
---|
121 | DWORD dwIndex;
|
---|
122 | DWORD dwMask;
|
---|
123 | DWORD dwBCastAddr;
|
---|
124 | DWORD dwReasmSize;
|
---|
125 | unsigned short unused1;
|
---|
126 | unsigned short unused2;
|
---|
127 | } MIB_IPADDRROW, *PMIB_IPADDRROW;
|
---|
128 |
|
---|
129 | typedef struct _MIB_IFROW {
|
---|
130 | WCHAR wszName[MAX_INTERFACE_NAME_LEN];
|
---|
131 | DWORD dwIndex;
|
---|
132 | DWORD dwType;
|
---|
133 | DWORD dwMtu;
|
---|
134 | DWORD dwSpeed;
|
---|
135 | DWORD dwPhysAddrLen;
|
---|
136 | BYTE bPhysAddr[MAXLEN_PHYSADDR];
|
---|
137 | DWORD dwAdminStatus;
|
---|
138 | DWORD dwOperStatus;
|
---|
139 | DWORD dwLastChange;
|
---|
140 | DWORD dwInOctets;
|
---|
141 | DWORD dwInUcastPkts;
|
---|
142 | DWORD dwInNUcastPkts;
|
---|
143 | DWORD dwInDiscards;
|
---|
144 | DWORD dwInErrors;
|
---|
145 | DWORD dwInUnknownProtos;
|
---|
146 | DWORD dwOutOctets;
|
---|
147 | DWORD dwOutUcastPkts;
|
---|
148 | DWORD dwOutNUcastPkts;
|
---|
149 | DWORD dwOutDiscards;
|
---|
150 | DWORD dwOutErrors;
|
---|
151 | DWORD dwOutQLen;
|
---|
152 | DWORD dwDescrLen;
|
---|
153 | BYTE bDescr[MAXLEN_IFDESCR];
|
---|
154 | } MIB_IFROW, *PMIB_IFROW;
|
---|
155 |
|
---|
156 | typedef struct _MIB_IFTABLE {
|
---|
157 | DWORD dwNumEntries;
|
---|
158 | MIB_IFROW table[ANY_SIZE];
|
---|
159 | } MIB_IFTABLE, *PMIB_IFTABLE;
|
---|
160 |
|
---|
161 |
|
---|
162 | typedef struct _MIB_IPADDRTABLE {
|
---|
163 | DWORD dwNumEntries;
|
---|
164 | MIB_IPADDRROW table[ANY_SIZE];
|
---|
165 | } MIB_IPADDRTABLE, *PMIB_IPADDRTABLE;
|
---|
166 |
|
---|
167 | #pragma pack()
|
---|
168 |
|
---|
169 | #endif /* _IPHLPAPI_H_ */
|
---|