source: trunk/src/iphlpapi/iphlpapi.h@ 10367

Last change on this file since 10367 was 10067, checked in by sandervl, 22 years ago

Implemented GetIpAddrTable, GetIfTable & GetFriendlyIfIndex

File size: 4.1 KB
Line 
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
17typedef long time_t;
18#endif
19
20// FROM: IPExport.h
21//
22// IP type definitions.
23//
24typedef unsigned long IPAddr; // An IP address.
25typedef unsigned long IPMask; // An IP subnet mask.
26typedef 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
71typedef struct {
72 char String[4 * 4];
73} IP_ADDRESS_STRING, *PIP_ADDRESS_STRING, IP_MASK_STRING, *PIP_MASK_STRING;
74
75
76typedef 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
84typedef 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
106typedef 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
119typedef 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
129typedef 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
156typedef struct _MIB_IFTABLE {
157 DWORD dwNumEntries;
158 MIB_IFROW table[ANY_SIZE];
159} MIB_IFTABLE, *PMIB_IFTABLE;
160
161
162typedef 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_ */
Note: See TracBrowser for help on using the repository browser.