source: trunk/include/win/iprtrmib.h@ 21411

Last change on this file since 21411 was 21411, checked in by dmik, 15 years ago

Expose the iphlpapi.dll interface at source level through iprtrmib.h/iphlpapi.h.

File size: 3.6 KB
Line 
1/* IPRTRMIB.H */
2
3#ifndef IP_RTR_MIB_H
4#define IP_RTR_MIB_H
5
6#pragma pack(1)
7
8#ifndef _TIME_T_DEFINED
9#define _TIME_T_DEFINED
10typedef long time_t;
11#endif
12
13#define MIB_IF_TYPE_OTHER 1
14#define MIB_IF_TYPE_ETHERNET 6
15#define MIB_IF_TYPE_TOKENRING 9
16#define MIB_IF_TYPE_FDDI 15
17#define MIB_IF_TYPE_PPP 23
18#define MIB_IF_TYPE_LOOPBACK 24
19#define MIB_IF_TYPE_SLIP 28
20
21#define MIB_IF_ADMIN_STATUS_UP 1
22#define MIB_IF_ADMIN_STATUS_DOWN 2
23#define MIB_IF_ADMIN_STATUS_TESTING 3
24
25#define MIB_IF_OPER_STATUS_NON_OPERATIONAL 0
26#define MIB_IF_OPER_STATUS_UNREACHABLE 1
27#define MIB_IF_OPER_STATUS_DISCONNECTED 2
28#define MIB_IF_OPER_STATUS_CONNECTING 3
29#define MIB_IF_OPER_STATUS_CONNECTED 4
30#define MIB_IF_OPER_STATUS_OPERATIONAL 5
31
32#define MAX_ADAPTER_DESCRIPTION_LENGTH 128 // arb.
33#define MAX_ADAPTER_NAME_LENGTH 256 // arb.
34#define MAX_ADAPTER_ADDRESS_LENGTH 8 // arb.
35#define DEFAULT_MINIMUM_ENTITIES 32 // arb.
36#define MAX_HOSTNAME_LEN 128 // arb.
37#define MAX_DOMAIN_NAME_LEN 128 // arb.
38#define MAX_SCOPE_ID_LEN 256 // arb.
39
40typedef struct {
41 char String[4 * 4];
42} IP_ADDRESS_STRING, *PIP_ADDRESS_STRING, IP_MASK_STRING, *PIP_MASK_STRING;
43
44
45typedef struct _IP_ADDR_STRING {
46 struct _IP_ADDR_STRING* Next;
47 IP_ADDRESS_STRING IpAddress;
48 IP_MASK_STRING IpMask;
49 DWORD Context;
50} IP_ADDR_STRING, *PIP_ADDR_STRING;
51
52
53typedef struct _IP_ADAPTER_INFO {
54 struct _IP_ADAPTER_INFO* Next;
55 DWORD ComboIndex;
56 char AdapterName[MAX_ADAPTER_NAME_LENGTH + 4];
57 char Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4];
58 UINT AddressLength;
59 BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH];
60 DWORD Index;
61 UINT Type;
62 UINT DhcpEnabled;
63 PIP_ADDR_STRING CurrentIpAddress;
64 IP_ADDR_STRING IpAddressList;
65 IP_ADDR_STRING GatewayList;
66 IP_ADDR_STRING DhcpServer;
67 BOOL HaveWins;
68 IP_ADDR_STRING PrimaryWinsServer;
69 IP_ADDR_STRING SecondaryWinsServer;
70 time_t LeaseObtained;
71 time_t LeaseExpires;
72} IP_ADAPTER_INFO, *PIP_ADAPTER_INFO;
73
74
75typedef struct {
76 char HostName[MAX_HOSTNAME_LEN + 4] ;
77 char DomainName[MAX_DOMAIN_NAME_LEN + 4];
78 PIP_ADDR_STRING CurrentDnsServer;
79 IP_ADDR_STRING DnsServerList;
80 UINT NodeType;
81 char ScopeId[MAX_SCOPE_ID_LEN + 4];
82 UINT EnableRouting;
83 UINT EnableProxy;
84 UINT EnableDns;
85} FIXED_INFO, *PFIXED_INFO;
86
87
88#define ANY_SIZE 1
89#define MAXLEN_IFDESCR 256
90#define MAXLEN_PHYSADDR 8
91#define MAX_INTERFACE_NAME_LEN 256
92
93typedef struct _MIB_IPADDRROW {
94 DWORD dwAddr;
95 DWORD dwIndex;
96 DWORD dwMask;
97 DWORD dwBCastAddr;
98 DWORD dwReasmSize;
99 unsigned short unused1;
100 unsigned short unused2;
101} MIB_IPADDRROW, *PMIB_IPADDRROW;
102
103typedef struct _MIB_IFROW {
104 WCHAR wszName[MAX_INTERFACE_NAME_LEN];
105 DWORD dwIndex;
106 DWORD dwType;
107 DWORD dwMtu;
108 DWORD dwSpeed;
109 DWORD dwPhysAddrLen;
110 BYTE bPhysAddr[MAXLEN_PHYSADDR];
111 DWORD dwAdminStatus;
112 DWORD dwOperStatus;
113 DWORD dwLastChange;
114 DWORD dwInOctets;
115 DWORD dwInUcastPkts;
116 DWORD dwInNUcastPkts;
117 DWORD dwInDiscards;
118 DWORD dwInErrors;
119 DWORD dwInUnknownProtos;
120 DWORD dwOutOctets;
121 DWORD dwOutUcastPkts;
122 DWORD dwOutNUcastPkts;
123 DWORD dwOutDiscards;
124 DWORD dwOutErrors;
125 DWORD dwOutQLen;
126 DWORD dwDescrLen;
127 BYTE bDescr[MAXLEN_IFDESCR];
128} MIB_IFROW, *PMIB_IFROW;
129
130typedef struct _MIB_IFTABLE {
131 DWORD dwNumEntries;
132 MIB_IFROW table[ANY_SIZE];
133} MIB_IFTABLE, *PMIB_IFTABLE;
134
135
136typedef struct _MIB_IPADDRTABLE {
137 DWORD dwNumEntries;
138 MIB_IPADDRROW table[ANY_SIZE];
139} MIB_IPADDRTABLE, *PMIB_IPADDRTABLE;
140
141#pragma pack()
142
143#endif /* IP_RTR_MIB_H */
Note: See TracBrowser for help on using the repository browser.