2 * Copyright (C) 2003 Juan Lang
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 #ifndef WINE_IPRTRMIB_H__
19 #define WINE_IPRTRMIB_H__
21 #define MAX_INTERFACE_NAME_LEN 256
25 #define MAXLEN_IFDESCR 256
26 #define MAXLEN_PHYSADDR 8
28 //It should be 16 according to Lei Shen blog (http://www.mychinaworks.com/blog/lshen/2008/04/16/220/
29 #define TCPIP_OWNING_MODULE_SIZE 16
31 typedef struct _MIB_IFROW
33 WCHAR wszName
[MAX_INTERFACE_NAME_LEN
];
39 BYTE bPhysAddr
[MAXLEN_PHYSADDR
];
48 DWORD dwInUnknownProtos
;
51 DWORD dwOutNUcastPkts
;
56 BYTE bDescr
[MAXLEN_IFDESCR
];
57 } MIB_IFROW
,*PMIB_IFROW
;
59 typedef struct _MIB_IFTABLE
63 } MIB_IFTABLE
, *PMIB_IFTABLE
;
65 typedef struct _MIBICMPSTATS
77 DWORD dwTimestampReps
;
82 typedef struct _MIBICMPINFO
84 MIBICMPSTATS icmpInStats
;
85 MIBICMPSTATS icmpOutStats
;
88 typedef struct _MIB_ICMP
91 } MIB_ICMP
,*PMIB_ICMP
;
93 typedef struct _MIB_UDPSTATS
100 } MIB_UDPSTATS
,*PMIB_UDPSTATS
;
102 typedef struct _MIB_UDPROW
106 } MIB_UDPROW
, *PMIB_UDPROW
;
108 typedef struct _MIB_UDPTABLE
112 } MIB_UDPTABLE
, *PMIB_UDPTABLE
;
114 typedef struct _MIB_TCPSTATS
116 DWORD dwRtoAlgorithm
;
121 DWORD dwPassiveOpens
;
122 DWORD dwAttemptFails
;
131 } MIB_TCPSTATS
, *PMIB_TCPSTATS
;
133 typedef struct _MIBICMPSTATS_EX
137 DWORD rgdwTypeCount
[256];
138 } MIBICMPSTATS_EX
, *PMIBICMPSTATS_EX
;
140 typedef struct _MIB_ICMP_EX
142 MIBICMPSTATS_EX icmpInStats
;
143 MIBICMPSTATS_EX icmpOutStats
;
144 } MIB_ICMP_EX
,*PMIB_ICMP_EX
;
146 typedef struct _MIB_TCPROW
153 } MIB_TCPROW
, *PMIB_TCPROW
;
155 #define MIB_TCP_STATE_CLOSED 1
156 #define MIB_TCP_STATE_LISTEN 2
157 #define MIB_TCP_STATE_SYN_SENT 3
158 #define MIB_TCP_STATE_SYN_RCVD 4
159 #define MIB_TCP_STATE_ESTAB 5
160 #define MIB_TCP_STATE_FIN_WAIT1 6
161 #define MIB_TCP_STATE_FIN_WAIT2 7
162 #define MIB_TCP_STATE_CLOSE_WAIT 8
163 #define MIB_TCP_STATE_CLOSING 9
164 #define MIB_TCP_STATE_LAST_ACK 10
165 #define MIB_TCP_STATE_TIME_WAIT 11
166 #define MIB_TCP_STATE_DELETE_TCB 12
168 typedef struct _MIB_TCPTABLE
172 } MIB_TCPTABLE
, *PMIB_TCPTABLE
;
174 typedef struct _MIB_IPSTATS
180 DWORD dwInAddrErrors
;
181 DWORD dwForwDatagrams
;
182 DWORD dwInUnknownProtos
;
186 DWORD dwRoutingDiscards
;
189 DWORD dwReasmTimeout
;
199 } MIB_IPSTATS
, *PMIB_IPSTATS
;
201 typedef struct _MIB_IPADDRROW
208 unsigned short unused1
;
209 unsigned short wType
;
210 } MIB_IPADDRROW
, *PMIB_IPADDRROW
;
212 typedef struct _MIB_IPADDRTABLE
215 MIB_IPADDRROW table
[1];
216 } MIB_IPADDRTABLE
, *PMIB_IPADDRTABLE
;
219 typedef struct _MIB_IPFORWARDNUMBER
222 }MIB_IPFORWARDNUMBER
,*PMIB_IPFORWARDNUMBER
;
224 typedef struct _MIB_IPFORWARDROW
228 DWORD dwForwardPolicy
;
229 DWORD dwForwardNextHop
;
230 DWORD dwForwardIfIndex
;
232 DWORD dwForwardProto
;
234 DWORD dwForwardNextHopAS
;
235 DWORD dwForwardMetric1
;
236 DWORD dwForwardMetric2
;
237 DWORD dwForwardMetric3
;
238 DWORD dwForwardMetric4
;
239 DWORD dwForwardMetric5
;
240 }MIB_IPFORWARDROW
, *PMIB_IPFORWARDROW
;
242 #define MIB_IPROUTE_TYPE_OTHER 1
243 #define MIB_IPROUTE_TYPE_INVALID 2
244 #define MIB_IPROUTE_TYPE_DIRECT 3
245 #define MIB_IPROUTE_TYPE_INDIRECT 4
247 #define MIB_IPPROTO_OTHER 1
248 #define MIB_IPPROTO_LOCAL 2
249 #define MIB_IPPROTO_NETMGMT 3
250 #define MIB_IPPROTO_ICMP 4
251 #define MIB_IPPROTO_EGP 5
252 #define MIB_IPPROTO_GGP 6
253 #define MIB_IPPROTO_HELLO 7
254 #define MIB_IPPROTO_RIP 8
255 #define MIB_IPPROTO_IS_IS 9
256 #define MIB_IPPROTO_ES_IS 10
257 #define MIB_IPPROTO_CISCO 11
258 #define MIB_IPPROTO_BBN 12
259 #define MIB_IPPROTO_OSPF 13
260 #define MIB_IPPROTO_BGP 14
262 #define MIB_IPPROTO_NT_AUTOSTATIC 10002
263 #define MIB_IPPROTO_NT_STATIC 10006
264 #define MIB_IPPROTO_NT_STATIC_NON_DOD 10007
266 typedef struct _MIB_IPFORWARDTABLE
269 MIB_IPFORWARDROW table
[1];
270 } MIB_IPFORWARDTABLE
, *PMIB_IPFORWARDTABLE
;
272 typedef struct _MIB_IPNETROW
276 BYTE bPhysAddr
[MAXLEN_PHYSADDR
];
279 } MIB_IPNETROW
, *PMIB_IPNETROW
;
281 #define MIB_IPNET_TYPE_OTHER 1
282 #define MIB_IPNET_TYPE_INVALID 2
283 #define MIB_IPNET_TYPE_DYNAMIC 3
284 #define MIB_IPNET_TYPE_STATIC 4
286 typedef struct _MIB_IPNETTABLE
289 MIB_IPNETROW table
[1];
290 } MIB_IPNETTABLE
, *PMIB_IPNETTABLE
;
292 typedef struct _MIB_TCPROW_OWNER_MODULE
{
299 LARGE_INTEGER liCreateTimestamp
;
300 ULONGLONG OwningModuleInfo
[TCPIP_OWNING_MODULE_SIZE
];
301 } MIB_TCPROW_OWNER_MODULE
, *PMIB_TCPROW_OWNER_MODULE
;
304 TCPIP_OWNER_MODULE_INFO_BASIC
305 } TCPIP_OWNER_MODULE_INFO_CLASS
, *PTCPIP_OWNER_MODULE_INFO_CLASS
;
308 TCP_TABLE_BASIC_LISTENER
,
309 TCP_TABLE_BASIC_CONNECTIONS
,
311 TCP_TABLE_OWNER_PID_LISTENER
,
312 TCP_TABLE_OWNER_PID_CONNECTIONS
,
313 TCP_TABLE_OWNER_PID_ALL
,
314 TCP_TABLE_OWNER_MODULE_LISTENER
,
315 TCP_TABLE_OWNER_MODULE_CONNECTIONS
,
316 TCP_TABLE_OWNER_MODULE_ALL
317 } TCP_TABLE_CLASS
, *PTCP_TABLE_CLASS
;
319 #endif /* WINE_IPRTRMIB_H__ */