comparison fuhtark_test/include/winapi/iprtrmib.h @ 1500:91c8c3b7cbf0

add: futhark tests for generating vulkan api
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 21:36:48 +0700
parents
children
comparison
equal deleted inserted replaced
1499:1f58458b7ef7 1500:91c8c3b7cbf0
1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the w64 mingw-runtime package.
4 * No warranty is given; refer to the file DISCLAIMER within this package.
5 */
6 #ifndef __ROUTING_IPRTRMIB_H__
7 #define __ROUTING_IPRTRMIB_H__
8
9 #include <mprapi.h>
10
11 #include <ipifcons.h>
12
13 #define IPRTRMGR_PID 10000
14
15 #ifndef ANY_SIZE
16 #define ANY_SIZE 1
17 #endif
18
19 #define TCPIP_OWNING_MODULE_SIZE 16
20
21 #define IF_NUMBER 0
22 #define IF_TABLE (IF_NUMBER + 1)
23 #define IF_ROW (IF_TABLE + 1)
24 #define IP_STATS (IF_ROW + 1)
25 #define IP_ADDRTABLE (IP_STATS + 1)
26 #define IP_ADDRROW (IP_ADDRTABLE + 1)
27 #define IP_FORWARDNUMBER (IP_ADDRROW + 1)
28 #define IP_FORWARDTABLE (IP_FORWARDNUMBER + 1)
29 #define IP_FORWARDROW (IP_FORWARDTABLE + 1)
30 #define IP_NETTABLE (IP_FORWARDROW + 1)
31 #define IP_NETROW (IP_NETTABLE + 1)
32 #define ICMP_STATS (IP_NETROW + 1)
33 #define TCP_STATS (ICMP_STATS + 1)
34 #define TCP_TABLE (TCP_STATS + 1)
35 #define TCP_ROW (TCP_TABLE + 1)
36 #define UDP_STATS (TCP_ROW + 1)
37 #define UDP_TABLE (UDP_STATS + 1)
38 #define UDP_ROW (UDP_TABLE + 1)
39 #define MCAST_MFE (UDP_ROW + 1)
40 #define MCAST_MFE_STATS (MCAST_MFE + 1)
41 #define BEST_IF (MCAST_MFE_STATS + 1)
42 #define BEST_ROUTE (BEST_IF + 1)
43 #define PROXY_ARP (BEST_ROUTE + 1)
44 #define MCAST_IF_ENTRY (PROXY_ARP + 1)
45 #define MCAST_GLOBAL (MCAST_IF_ENTRY + 1)
46 #define IF_STATUS (MCAST_GLOBAL + 1)
47 #define MCAST_BOUNDARY (IF_STATUS + 1)
48 #define MCAST_SCOPE (MCAST_BOUNDARY + 1)
49 #define DEST_MATCHING (MCAST_SCOPE + 1)
50 #define DEST_LONGER (DEST_MATCHING + 1)
51 #define DEST_SHORTER (DEST_LONGER + 1)
52 #define ROUTE_MATCHING (DEST_SHORTER + 1)
53 #define ROUTE_LONGER (ROUTE_MATCHING + 1)
54 #define ROUTE_SHORTER (ROUTE_LONGER + 1)
55 #define ROUTE_STATE (ROUTE_SHORTER + 1)
56 #define MCAST_MFE_STATS_EX (ROUTE_STATE + 1)
57 #define IP6_STATS (MCAST_MFE_STATS_EX + 1)
58 #define UDP6_STATS (IP6_STATS + 1)
59 #define TCP6_STATS (UDP6_STATS + 1)
60
61 #define NUMBER_OF_EXPORTED_VARIABLES (TCP6_STATS + 1)
62
63 typedef struct _MIB_OPAQUE_QUERY {
64 DWORD dwVarId;
65 DWORD rgdwVarIndex[ANY_SIZE];
66 } MIB_OPAQUE_QUERY,*PMIB_OPAQUE_QUERY;
67
68 typedef struct _MIB_IFNUMBER {
69 DWORD dwValue;
70 } MIB_IFNUMBER,*PMIB_IFNUMBER;
71
72 #define MAXLEN_IFDESCR 256
73 #define MAXLEN_PHYSADDR 8
74
75 typedef struct _MIB_IFROW {
76 WCHAR wszName[MAX_INTERFACE_NAME_LEN];
77 DWORD dwIndex;
78 DWORD dwType;
79 DWORD dwMtu;
80 DWORD dwSpeed;
81 DWORD dwPhysAddrLen;
82 BYTE bPhysAddr[MAXLEN_PHYSADDR];
83 DWORD dwAdminStatus;
84 DWORD dwOperStatus;
85 DWORD dwLastChange;
86 DWORD dwInOctets;
87 DWORD dwInUcastPkts;
88 DWORD dwInNUcastPkts;
89 DWORD dwInDiscards;
90 DWORD dwInErrors;
91 DWORD dwInUnknownProtos;
92 DWORD dwOutOctets;
93 DWORD dwOutUcastPkts;
94 DWORD dwOutNUcastPkts;
95 DWORD dwOutDiscards;
96 DWORD dwOutErrors;
97 DWORD dwOutQLen;
98 DWORD dwDescrLen;
99 BYTE bDescr[MAXLEN_IFDESCR];
100 } MIB_IFROW,*PMIB_IFROW;
101
102 typedef struct _MIB_IFTABLE {
103 DWORD dwNumEntries;
104 MIB_IFROW table[ANY_SIZE];
105 } MIB_IFTABLE,*PMIB_IFTABLE;
106
107 #define SIZEOF_IFTABLE(X) (FIELD_OFFSET(MIB_IFTABLE,table[0]) + ((X) *sizeof(MIB_IFROW)) + ALIGN_SIZE)
108
109 typedef struct _MIBICMPSTATS {
110 DWORD dwMsgs;
111 DWORD dwErrors;
112 DWORD dwDestUnreachs;
113 DWORD dwTimeExcds;
114 DWORD dwParmProbs;
115 DWORD dwSrcQuenchs;
116 DWORD dwRedirects;
117 DWORD dwEchos;
118 DWORD dwEchoReps;
119 DWORD dwTimestamps;
120 DWORD dwTimestampReps;
121 DWORD dwAddrMasks;
122 DWORD dwAddrMaskReps;
123 } MIBICMPSTATS,*PMIBICMPSTATS;
124
125 typedef struct _MIBICMPINFO {
126 MIBICMPSTATS icmpInStats;
127 MIBICMPSTATS icmpOutStats;
128 } MIBICMPINFO;
129
130 typedef struct _MIB_ICMP {
131 MIBICMPINFO stats;
132 } MIB_ICMP,*PMIB_ICMP;
133
134 typedef enum {
135 ICMP6_DST_UNREACH = 1,ICMP6_PACKET_TOO_BIG = 2,ICMP6_TIME_EXCEEDED = 3,ICMP6_PARAM_PROB = 4,ICMP6_ECHO_REQUEST = 128,
136 ICMP6_ECHO_REPLY = 129,ICMP6_MEMBERSHIP_QUERY = 130,ICMP6_MEMBERSHIP_REPORT = 131,ICMP6_MEMBERSHIP_REDUCTION = 132,
137 ND_ROUTER_SOLICIT = 133,ND_ROUTER_ADVERT = 134,ND_NEIGHBOR_SOLICIT = 135,ND_NEIGHBOR_ADVERT = 136,ND_REDIRECT = 137
138 } ICMP6_TYPE,*PICMP6_TYPE;
139
140 typedef enum {
141 ICMP4_ECHO_REPLY = 0,ICMP4_DST_UNREACH = 3,ICMP4_SOURCE_QUENCH = 4,ICMP4_REDIRECT = 5,ICMP4_ECHO_REQUEST = 8,ICMP4_ROUTER_ADVERT = 9,
142 ICMP4_ROUTER_SOLICIT = 10,ICMP4_TIME_EXCEEDED = 11,ICMP4_PARAM_PROB = 12,ICMP4_TIMESTAMP_REQUEST = 13,ICMP4_TIMESTAMP_REPLY = 14,
143 ICMP4_MASK_REQUEST = 17,ICMP4_MASK_REPLY = 18
144 } ICMP4_TYPE,*PICMP4_TYPE;
145
146 typedef struct _MIBICMPSTATS_EX {
147 DWORD dwMsgs;
148 DWORD dwErrors;
149 DWORD rgdwTypeCount[256];
150 } MIBICMPSTATS_EX,*PMIBICMPSTATS_EX;
151
152 typedef struct _MIB_ICMP_EX {
153 MIBICMPSTATS_EX icmpInStats;
154 MIBICMPSTATS_EX icmpOutStats;
155 } MIB_ICMP_EX,*PMIB_ICMP_EX;
156
157 typedef struct _MIB_UDPSTATS {
158 DWORD dwInDatagrams;
159 DWORD dwNoPorts;
160 DWORD dwInErrors;
161 DWORD dwOutDatagrams;
162 DWORD dwNumAddrs;
163 } MIB_UDPSTATS,*PMIB_UDPSTATS;
164
165 typedef struct _MIB_UDPROW {
166 DWORD dwLocalAddr;
167 DWORD dwLocalPort;
168 } MIB_UDPROW,*PMIB_UDPROW;
169
170 typedef MIB_UDPROW MIB_UDPROW_BASIC,*PMIB_UDPROW_BASIC;
171
172 typedef struct _MIB_UDPROW_OWNER_PID {
173 DWORD dwLocalAddr;
174 DWORD dwLocalPort;
175 DWORD dwOwningPid;
176 } MIB_UDPROW_OWNER_PID,*PMIB_UDPROW_OWNER_PID;
177
178 typedef struct _MIB_UDPROW_OWNER_MODULE {
179 DWORD dwLocalAddr;
180 DWORD dwLocalPort;
181 DWORD dwOwningPid;
182 LARGE_INTEGER liCreateTimestamp;
183 __MINGW_EXTENSION union {
184 __MINGW_EXTENSION struct {
185 DWORD SpecificPortBind : 1;
186 };
187 DWORD dwFlags;
188 };
189 ULONGLONG OwningModuleInfo[TCPIP_OWNING_MODULE_SIZE];
190 } MIB_UDPROW_OWNER_MODULE,*PMIB_UDPROW_OWNER_MODULE;
191
192 typedef struct _MIB_UDP6ROW_OWNER_PID {
193 UCHAR ucLocalAddr[16];
194 DWORD dwLocalScopeId;
195 DWORD dwLocalPort;
196 DWORD dwOwningPid;
197 } MIB_UDP6ROW_OWNER_PID,*PMIB_UDP6ROW_OWNER_PID;
198
199 typedef struct _MIB_UDP6ROW_OWNER_MODULE {
200 UCHAR ucLocalAddr[16];
201 DWORD dwLocalScopeId;
202 DWORD dwLocalPort;
203 DWORD dwOwningPid;
204 LARGE_INTEGER liCreateTimestamp;
205 __MINGW_EXTENSION union {
206 __MINGW_EXTENSION struct {
207 DWORD SpecificPortBind : 1;
208 };
209 DWORD dwFlags;
210 };
211 ULONGLONG OwningModuleInfo[TCPIP_OWNING_MODULE_SIZE];
212 } MIB_UDP6ROW_OWNER_MODULE,*PMIB_UDP6ROW_OWNER_MODULE;
213
214 typedef struct _MIB_UDPTABLE {
215 DWORD dwNumEntries;
216 MIB_UDPROW table[ANY_SIZE];
217 } MIB_UDPTABLE,*PMIB_UDPTABLE;
218
219 typedef MIB_UDPTABLE MIB_UDPTABLE_BASIC,*PMIB_UDPTABLE_BASIC;
220
221 #define SIZEOF_UDPTABLE(X) (FIELD_OFFSET(MIB_UDPTABLE,table[0]) + ((X) *sizeof(MIB_UDPROW)) + ALIGN_SIZE)
222 #define SIZEOF_UDPTABLE_BASIC(X) SIZEOF_UDPTABLE(X)
223
224 typedef struct _MIB_UDPTABLE_OWNER_PID {
225 DWORD dwNumEntries;
226 MIB_UDPROW_OWNER_PID table[ANY_SIZE];
227 } MIB_UDPTABLE_OWNER_PID,*PMIB_UDPTABLE_OWNER_PID;
228
229 #define SIZEOF_UDPTABLE_OWNER_PID(X) (FIELD_OFFSET(MIB_UDPTABLE_OWNER_PID,table[0]) + ((X) *sizeof(MIB_UDPROW_OWNER_PID)) + ALIGN_SIZE)
230
231 typedef struct _MIB_UDPTABLE_OWNER_MODULE {
232 DWORD dwNumEntries;
233 MIB_UDPROW_OWNER_MODULE table[ANY_SIZE];
234 } MIB_UDPTABLE_OWNER_MODULE,*PMIB_UDPTABLE_OWNER_MODULE;
235
236 #define SIZEOF_UDPTABLE_OWNER_MODULE(X) (FIELD_OFFSET(MIB_UDPTABLE_OWNER_MODULE,table[0]) + ((X) *sizeof(MIB_UDPROW_OWNER_MODULE)) + ALIGN_SIZE)
237
238 typedef struct _MIB_UDP6TABLE_OWNER_PID {
239 DWORD dwNumEntries;
240 MIB_UDP6ROW_OWNER_PID table[ANY_SIZE];
241 } MIB_UDP6TABLE_OWNER_PID,*PMIB_UDP6TABLE_OWNER_PID;
242
243 #define SIZEOF_UDP6TABLE_OWNER_PID(X) (FIELD_OFFSET(MIB_UDP6TABLE_OWNER_PID,table[0]) + ((X) *sizeof(MIB_UDP6ROW_OWNER_PID)) + ALIGN_SIZE)
244
245 typedef struct _MIB_UDP6TABLE_OWNER_MODULE {
246 DWORD dwNumEntries;
247 MIB_UDP6ROW_OWNER_MODULE table[ANY_SIZE];
248 } MIB_UDP6TABLE_OWNER_MODULE,*PMIB_UDP6TABLE_OWNER_MODULE;
249
250 #define SIZEOF_UDP6TABLE_OWNER_MODULE(X) (FIELD_OFFSET(MIB_UDP6TABLE_OWNER_MODULE,table[0]) + ((X) *sizeof(MIB_UDP6ROW_OWNER_MODULE)) + ALIGN_SIZE)
251
252 typedef struct _MIB_TCPSTATS {
253 DWORD dwRtoAlgorithm;
254 DWORD dwRtoMin;
255 DWORD dwRtoMax;
256 DWORD dwMaxConn;
257 DWORD dwActiveOpens;
258 DWORD dwPassiveOpens;
259 DWORD dwAttemptFails;
260 DWORD dwEstabResets;
261 DWORD dwCurrEstab;
262 DWORD dwInSegs;
263 DWORD dwOutSegs;
264 DWORD dwRetransSegs;
265 DWORD dwInErrs;
266 DWORD dwOutRsts;
267 DWORD dwNumConns;
268 } MIB_TCPSTATS,*PMIB_TCPSTATS;
269
270 #define MIB_TCP_RTO_OTHER 1
271 #define MIB_TCP_RTO_CONSTANT 2
272 #define MIB_TCP_RTO_RSRE 3
273 #define MIB_TCP_RTO_VANJ 4
274
275 #define MIB_TCP_MAXCONN_DYNAMIC (DWORD)-1
276
277 typedef struct _MIB_TCPROW {
278 DWORD dwState;
279 DWORD dwLocalAddr;
280 DWORD dwLocalPort;
281 DWORD dwRemoteAddr;
282 DWORD dwRemotePort;
283 } MIB_TCPROW,*PMIB_TCPROW;
284
285 typedef MIB_TCPROW MIB_TCPROW_BASIC,*PMIB_TCPROW_BASIC;
286
287 typedef struct _MIB_TCPROW_OWNER_PID {
288 DWORD dwState;
289 DWORD dwLocalAddr;
290 DWORD dwLocalPort;
291 DWORD dwRemoteAddr;
292 DWORD dwRemotePort;
293 DWORD dwOwningPid;
294 } MIB_TCPROW_OWNER_PID,*PMIB_TCPROW_OWNER_PID;
295
296 typedef struct _MIB_TCPROW_OWNER_MODULE {
297 DWORD dwState;
298 DWORD dwLocalAddr;
299 DWORD dwLocalPort;
300 DWORD dwRemoteAddr;
301 DWORD dwRemotePort;
302 DWORD dwOwningPid;
303 LARGE_INTEGER liCreateTimestamp;
304 ULONGLONG OwningModuleInfo[TCPIP_OWNING_MODULE_SIZE];
305 } MIB_TCPROW_OWNER_MODULE,*PMIB_TCPROW_OWNER_MODULE;
306
307 typedef struct _MIB_TCP6ROW_OWNER_PID {
308 UCHAR ucLocalAddr[16];
309 DWORD dwLocalScopeId;
310 DWORD dwLocalPort;
311 UCHAR ucRemoteAddr[16];
312 DWORD dwRemoteScopeId;
313 DWORD dwRemotePort;
314 DWORD dwState;
315 DWORD dwOwningPid;
316 } MIB_TCP6ROW_OWNER_PID,*PMIB_TCP6ROW_OWNER_PID;
317
318 typedef struct _MIB_TCP6ROW_OWNER_MODULE {
319 UCHAR ucLocalAddr[16];
320 DWORD dwLocalScopeId;
321 DWORD dwLocalPort;
322 UCHAR ucRemoteAddr[16];
323 DWORD dwRemoteScopeId;
324 DWORD dwRemotePort;
325 DWORD dwState;
326 DWORD dwOwningPid;
327 LARGE_INTEGER liCreateTimestamp;
328 ULONGLONG OwningModuleInfo[TCPIP_OWNING_MODULE_SIZE];
329 } MIB_TCP6ROW_OWNER_MODULE,*PMIB_TCP6ROW_OWNER_MODULE;
330
331 #define MIB_TCP_STATE_CLOSED 1
332 #define MIB_TCP_STATE_LISTEN 2
333 #define MIB_TCP_STATE_SYN_SENT 3
334 #define MIB_TCP_STATE_SYN_RCVD 4
335 #define MIB_TCP_STATE_ESTAB 5
336 #define MIB_TCP_STATE_FIN_WAIT1 6
337 #define MIB_TCP_STATE_FIN_WAIT2 7
338 #define MIB_TCP_STATE_CLOSE_WAIT 8
339 #define MIB_TCP_STATE_CLOSING 9
340 #define MIB_TCP_STATE_LAST_ACK 10
341 #define MIB_TCP_STATE_TIME_WAIT 11
342 #define MIB_TCP_STATE_DELETE_TCB 12
343
344 typedef struct _MIB_TCPTABLE {
345 DWORD dwNumEntries;
346 MIB_TCPROW table[ANY_SIZE];
347 } MIB_TCPTABLE,*PMIB_TCPTABLE;
348
349 typedef MIB_TCPTABLE MIB_TCPTABLE_BASIC,*PMIB_TCPTABLE_BASIC;
350
351 #define SIZEOF_TCPTABLE(X) (FIELD_OFFSET(MIB_TCPTABLE,table[0]) + ((X) *sizeof(MIB_TCPROW)) + ALIGN_SIZE)
352 #define SIZEOF_TCPTABLE_BASIC(X) SIZEOF_TCPTABLE(X)
353
354 typedef struct _MIB_TCPTABLE_OWNER_PID {
355 DWORD dwNumEntries;
356 MIB_TCPROW_OWNER_PID table[ANY_SIZE];
357 } MIB_TCPTABLE_OWNER_PID,*PMIB_TCPTABLE_OWNER_PID;
358
359 #define SIZEOF_TCPTABLE_OWNER_PID(X) (FIELD_OFFSET(MIB_TCPTABLE_OWNER_PID,table[0]) + ((X) *sizeof(MIB_TCPROW_OWNER_PID)) + ALIGN_SIZE)
360
361 typedef struct _MIB_TCPTABLE_OWNER_MODULE {
362 DWORD dwNumEntries;
363 MIB_TCPROW_OWNER_MODULE table[ANY_SIZE];
364 } MIB_TCPTABLE_OWNER_MODULE,*PMIB_TCPTABLE_OWNER_MODULE;
365
366 #define SIZEOF_TCPTABLE_OWNER_MODULE(X) (FIELD_OFFSET(MIB_TCPTABLE_OWNER_MODULE,table[0]) + ((X) *sizeof(MIB_TCPROW_OWNER_MODULE)) + ALIGN_SIZE)
367
368 typedef struct _MIB_TCP6TABLE_OWNER_PID {
369 DWORD dwNumEntries;
370 MIB_TCP6ROW_OWNER_PID table[ANY_SIZE];
371 } MIB_TCP6TABLE_OWNER_PID,*PMIB_TCP6TABLE_OWNER_PID;
372
373 #define SIZEOF_TCP6TABLE_OWNER_PID(X) (FIELD_OFFSET(MIB_TCP6TABLE_OWNER_PID,table[0]) + ((X) *sizeof(MIB_TCP6ROW_OWNER_PID)) + ALIGN_SIZE)
374
375 typedef struct _MIB_TCP6TABLE_OWNER_MODULE {
376 DWORD dwNumEntries;
377 MIB_TCP6ROW_OWNER_MODULE table[ANY_SIZE];
378 } MIB_TCP6TABLE_OWNER_MODULE,*PMIB_TCP6TABLE_OWNER_MODULE;
379
380 #define SIZEOF_TCP6TABLE_OWNER_MODULE(X) (FIELD_OFFSET(MIB_TCP6TABLE_OWNER_MODULE,table[0]) + ((X) *sizeof(MIB_TCP6ROW_OWNER_PID)) + ALIGN_SIZE)
381
382 #define MIB_SECURITY_TCP_SYN_ATTACK 0x00000001
383
384 #define MIB_USE_CURRENT_TTL ((DWORD)-1)
385 #define MIB_USE_CURRENT_FORWARDING ((DWORD)-1)
386
387 typedef struct _MIB_IPSTATS {
388 DWORD dwForwarding;
389 DWORD dwDefaultTTL;
390 DWORD dwInReceives;
391 DWORD dwInHdrErrors;
392 DWORD dwInAddrErrors;
393 DWORD dwForwDatagrams;
394 DWORD dwInUnknownProtos;
395 DWORD dwInDiscards;
396 DWORD dwInDelivers;
397 DWORD dwOutRequests;
398 DWORD dwRoutingDiscards;
399 DWORD dwOutDiscards;
400 DWORD dwOutNoRoutes;
401 DWORD dwReasmTimeout;
402 DWORD dwReasmReqds;
403 DWORD dwReasmOks;
404 DWORD dwReasmFails;
405 DWORD dwFragOks;
406 DWORD dwFragFails;
407 DWORD dwFragCreates;
408 DWORD dwNumIf;
409 DWORD dwNumAddr;
410 DWORD dwNumRoutes;
411 } MIB_IPSTATS,*PMIB_IPSTATS;
412
413 #define MIB_IP_FORWARDING 1
414 #define MIB_IP_NOT_FORWARDING 2
415
416 #define MIB_IPADDR_PRIMARY 0x0001
417 #define MIB_IPADDR_DYNAMIC 0x0004
418 #define MIB_IPADDR_DISCONNECTED 0x0008
419 #define MIB_IPADDR_DELETED 0x0040
420 #define MIB_IPADDR_TRANSIENT 0x0080
421
422 typedef struct _MIB_IPADDRROW {
423 DWORD dwAddr;
424 DWORD dwIndex;
425 DWORD dwMask;
426 DWORD dwBCastAddr;
427 DWORD dwReasmSize;
428 unsigned short unused1;
429 unsigned short wType;
430 } MIB_IPADDRROW,*PMIB_IPADDRROW;
431
432 typedef struct _MIB_IPADDRTABLE {
433 DWORD dwNumEntries;
434 MIB_IPADDRROW table[ANY_SIZE];
435 } MIB_IPADDRTABLE,*PMIB_IPADDRTABLE;
436
437 #define SIZEOF_IPADDRTABLE(X) (FIELD_OFFSET(MIB_IPADDRTABLE,table[0]) + ((X) *sizeof(MIB_IPADDRROW)) + ALIGN_SIZE)
438
439 typedef struct _MIB_IPFORWARDNUMBER {
440 DWORD dwValue;
441 } MIB_IPFORWARDNUMBER,*PMIB_IPFORWARDNUMBER;
442
443 typedef struct _MIB_IPFORWARDROW {
444 DWORD dwForwardDest;
445 DWORD dwForwardMask;
446 DWORD dwForwardPolicy;
447 DWORD dwForwardNextHop;
448 DWORD dwForwardIfIndex;
449 DWORD dwForwardType;
450 DWORD dwForwardProto;
451 DWORD dwForwardAge;
452 DWORD dwForwardNextHopAS;
453 DWORD dwForwardMetric1;
454 DWORD dwForwardMetric2;
455 DWORD dwForwardMetric3;
456 DWORD dwForwardMetric4;
457 DWORD dwForwardMetric5;
458 } MIB_IPFORWARDROW,*PMIB_IPFORWARDROW;
459
460 #define MIB_IPROUTE_TYPE_OTHER 1
461 #define MIB_IPROUTE_TYPE_INVALID 2
462 #define MIB_IPROUTE_TYPE_DIRECT 3
463 #define MIB_IPROUTE_TYPE_INDIRECT 4
464
465 #define MIB_IPROUTE_METRIC_UNUSED (DWORD)-1
466
467 #define MIB_IPPROTO_OTHER 1
468 #define MIB_IPPROTO_LOCAL 2
469 #define MIB_IPPROTO_NETMGMT 3
470 #define MIB_IPPROTO_ICMP 4
471 #define MIB_IPPROTO_EGP 5
472 #define MIB_IPPROTO_GGP 6
473 #define MIB_IPPROTO_HELLO 7
474 #define MIB_IPPROTO_RIP 8
475 #define MIB_IPPROTO_IS_IS 9
476 #define MIB_IPPROTO_ES_IS 10
477 #define MIB_IPPROTO_CISCO 11
478 #define MIB_IPPROTO_BBN 12
479 #define MIB_IPPROTO_OSPF 13
480 #define MIB_IPPROTO_BGP 14
481
482 #define MIB_IPPROTO_NT_AUTOSTATIC 10002
483 #define MIB_IPPROTO_NT_STATIC 10006
484 #define MIB_IPPROTO_NT_STATIC_NON_DOD 10007
485
486 typedef struct _MIB_IPFORWARDTABLE {
487 DWORD dwNumEntries;
488 MIB_IPFORWARDROW table[ANY_SIZE];
489 } MIB_IPFORWARDTABLE,*PMIB_IPFORWARDTABLE;
490
491 #define SIZEOF_IPFORWARDTABLE(X) (FIELD_OFFSET(MIB_IPFORWARDTABLE,table[0]) + ((X) *sizeof(MIB_IPFORWARDROW)) + ALIGN_SIZE)
492
493 typedef struct _MIB_IPNETROW {
494 DWORD dwIndex;
495 DWORD dwPhysAddrLen;
496 BYTE bPhysAddr[MAXLEN_PHYSADDR];
497 DWORD dwAddr;
498 DWORD dwType;
499 } MIB_IPNETROW,*PMIB_IPNETROW;
500
501 #define MIB_IPNET_TYPE_OTHER 1
502 #define MIB_IPNET_TYPE_INVALID 2
503 #define MIB_IPNET_TYPE_DYNAMIC 3
504 #define MIB_IPNET_TYPE_STATIC 4
505
506 typedef struct _MIB_IPNETTABLE {
507 DWORD dwNumEntries;
508 MIB_IPNETROW table[ANY_SIZE];
509 } MIB_IPNETTABLE,*PMIB_IPNETTABLE;
510
511 #define SIZEOF_IPNETTABLE(X) (FIELD_OFFSET(MIB_IPNETTABLE,table[0]) + ((X) *sizeof(MIB_IPNETROW)) + ALIGN_SIZE)
512
513 typedef struct _MIB_IPMCAST_OIF {
514 DWORD dwOutIfIndex;
515 DWORD dwNextHopAddr;
516 DWORD dwReserved;
517 DWORD dwReserved1;
518 } MIB_IPMCAST_OIF,*PMIB_IPMCAST_OIF;
519
520 typedef struct _MIB_IPMCAST_MFE {
521 DWORD dwGroup;
522 DWORD dwSource;
523 DWORD dwSrcMask;
524 DWORD dwUpStrmNgbr;
525 DWORD dwInIfIndex;
526 DWORD dwInIfProtocol;
527 DWORD dwRouteProtocol;
528 DWORD dwRouteNetwork;
529 DWORD dwRouteMask;
530 ULONG ulUpTime;
531 ULONG ulExpiryTime;
532 ULONG ulTimeOut;
533 ULONG ulNumOutIf;
534 DWORD fFlags;
535 DWORD dwReserved;
536 MIB_IPMCAST_OIF rgmioOutInfo[ANY_SIZE];
537 } MIB_IPMCAST_MFE,*PMIB_IPMCAST_MFE;
538
539 typedef struct _MIB_MFE_TABLE {
540 DWORD dwNumEntries;
541 MIB_IPMCAST_MFE table[ANY_SIZE];
542 } MIB_MFE_TABLE,*PMIB_MFE_TABLE;
543
544 #define SIZEOF_BASIC_MIB_MFE (ULONG)(FIELD_OFFSET(MIB_IPMCAST_MFE,rgmioOutInfo[0]))
545
546 #define SIZEOF_MIB_MFE(X) (SIZEOF_BASIC_MIB_MFE + ((X) *sizeof(MIB_IPMCAST_OIF)))
547
548 typedef struct _MIB_IPMCAST_OIF_STATS {
549 DWORD dwOutIfIndex;
550 DWORD dwNextHopAddr;
551 DWORD dwDialContext;
552 ULONG ulTtlTooLow;
553 ULONG ulFragNeeded;
554 ULONG ulOutPackets;
555 ULONG ulOutDiscards;
556 } MIB_IPMCAST_OIF_STATS,*PMIB_IPMCAST_OIF_STATS;
557
558 typedef struct _MIB_IPMCAST_MFE_STATS {
559 DWORD dwGroup;
560 DWORD dwSource;
561 DWORD dwSrcMask;
562 DWORD dwUpStrmNgbr;
563 DWORD dwInIfIndex;
564 DWORD dwInIfProtocol;
565 DWORD dwRouteProtocol;
566 DWORD dwRouteNetwork;
567 DWORD dwRouteMask;
568 ULONG ulUpTime;
569 ULONG ulExpiryTime;
570 ULONG ulNumOutIf;
571 ULONG ulInPkts;
572 ULONG ulInOctets;
573 ULONG ulPktsDifferentIf;
574 ULONG ulQueueOverflow;
575 MIB_IPMCAST_OIF_STATS rgmiosOutStats[ANY_SIZE];
576 } MIB_IPMCAST_MFE_STATS,*PMIB_IPMCAST_MFE_STATS;
577
578 typedef struct _MIB_MFE_STATS_TABLE {
579 DWORD dwNumEntries;
580 MIB_IPMCAST_MFE_STATS table[ANY_SIZE];
581 } MIB_MFE_STATS_TABLE,*PMIB_MFE_STATS_TABLE;
582
583 #define SIZEOF_BASIC_MIB_MFE_STATS (ULONG)(FIELD_OFFSET(MIB_IPMCAST_MFE_STATS,rgmiosOutStats[0]))
584 #define SIZEOF_MIB_MFE_STATS(X) (SIZEOF_BASIC_MIB_MFE_STATS + ((X) *sizeof(MIB_IPMCAST_OIF_STATS)))
585
586 typedef struct _MIB_IPMCAST_MFE_STATS_EX {
587 DWORD dwGroup;
588 DWORD dwSource;
589 DWORD dwSrcMask;
590 DWORD dwUpStrmNgbr;
591 DWORD dwInIfIndex;
592 DWORD dwInIfProtocol;
593 DWORD dwRouteProtocol;
594 DWORD dwRouteNetwork;
595 DWORD dwRouteMask;
596 ULONG ulUpTime;
597 ULONG ulExpiryTime;
598 ULONG ulNumOutIf;
599 ULONG ulInPkts;
600 ULONG ulInOctets;
601 ULONG ulPktsDifferentIf;
602 ULONG ulQueueOverflow;
603 ULONG ulUninitMfe;
604 ULONG ulNegativeMfe;
605 ULONG ulInDiscards;
606 ULONG ulInHdrErrors;
607 ULONG ulTotalOutPackets;
608 MIB_IPMCAST_OIF_STATS rgmiosOutStats[ANY_SIZE];
609 } MIB_IPMCAST_MFE_STATS_EX,*PMIB_IPMCAST_MFE_STATS_EX;
610
611 typedef struct _MIB_MFE_STATS_TABLE_EX {
612 DWORD dwNumEntries;
613 MIB_IPMCAST_MFE_STATS_EX table[ANY_SIZE];
614 } MIB_MFE_STATS_TABLE_EX,*PMIB_MFE_STATS_TABLE_EX;
615
616 #define SIZEOF_BASIC_MIB_MFE_STATS_EX (ULONG)(FIELD_OFFSET(MIB_IPMCAST_MFE_STATS_EX,rgmiosOutStats[0]))
617 #define SIZEOF_MIB_MFE_STATS_EX(X) (SIZEOF_BASIC_MIB_MFE_STATS_EX + ((X) *sizeof(MIB_IPMCAST_OIF_STATS)))
618
619 typedef struct _MIB_IPMCAST_GLOBAL {
620 DWORD dwEnable;
621 } MIB_IPMCAST_GLOBAL,*PMIB_IPMCAST_GLOBAL;
622
623 typedef struct _MIB_IPMCAST_IF_ENTRY {
624 DWORD dwIfIndex;
625 DWORD dwTtl;
626 DWORD dwProtocol;
627 DWORD dwRateLimit;
628 ULONG ulInMcastOctets;
629 ULONG ulOutMcastOctets;
630 } MIB_IPMCAST_IF_ENTRY,*PMIB_IPMCAST_IF_ENTRY;
631
632 typedef struct _MIB_IPMCAST_IF_TABLE {
633 DWORD dwNumEntries;
634 MIB_IPMCAST_IF_ENTRY table[ANY_SIZE];
635 } MIB_IPMCAST_IF_TABLE,*PMIB_IPMCAST_IF_TABLE;
636
637 #define SIZEOF_MCAST_IF_TABLE(X) (FIELD_OFFSET(MIB_IPMCAST_IF_TABLE,table[0]) + ((X) *sizeof(MIB_IPMCAST_IF_ENTRY)) + ALIGN_SIZE)
638
639 typedef struct _MIB_IPMCAST_BOUNDARY {
640 DWORD dwIfIndex;
641 DWORD dwGroupAddress;
642 DWORD dwGroupMask;
643 DWORD dwStatus;
644 } MIB_IPMCAST_BOUNDARY,*PMIB_IPMCAST_BOUNDARY;
645
646 typedef struct _MIB_IPMCAST_BOUNDARY_TABLE {
647 DWORD dwNumEntries;
648 MIB_IPMCAST_BOUNDARY table[ANY_SIZE];
649 } MIB_IPMCAST_BOUNDARY_TABLE,*PMIB_IPMCAST_BOUNDARY_TABLE;
650
651 #define SIZEOF_BOUNDARY_TABLE(X) (FIELD_OFFSET(MIB_IPMCAST_BOUNDARY_TABLE,table[0]) + ((X) *sizeof(MIB_IPMCAST_BOUNDARY)) + ALIGN_SIZE)
652
653 typedef struct {
654 DWORD dwGroupAddress;
655 DWORD dwGroupMask;
656 } MIB_BOUNDARYROW,*PMIB_BOUNDARYROW;
657
658 typedef struct {
659 DWORD dwTtl;
660 DWORD dwRateLimit;
661 } MIB_MCAST_LIMIT_ROW,*PMIB_MCAST_LIMIT_ROW;
662
663 #define MAX_SCOPE_NAME_LEN 255
664
665 #define SN_UNICODE
666 typedef WCHAR SN_CHAR;
667 typedef SN_CHAR SCOPE_NAME_BUFFER[MAX_SCOPE_NAME_LEN+1],*SCOPE_NAME;
668
669 typedef struct _MIB_IPMCAST_SCOPE {
670 DWORD dwGroupAddress;
671 DWORD dwGroupMask;
672 SCOPE_NAME_BUFFER snNameBuffer;
673 DWORD dwStatus;
674 } MIB_IPMCAST_SCOPE,*PMIB_IPMCAST_SCOPE;
675
676 typedef struct _MIB_IPDESTROW {
677 #ifdef __cplusplus
678 MIB_IPFORWARDROW ForwardRow;
679 #else
680 MIB_IPFORWARDROW;
681 #endif
682 DWORD dwForwardPreference;
683 DWORD dwForwardViewSet;
684 } MIB_IPDESTROW,*PMIB_IPDESTROW;
685
686 typedef struct _MIB_IPDESTTABLE {
687 DWORD dwNumEntries;
688 MIB_IPDESTROW table[ANY_SIZE];
689 } MIB_IPDESTTABLE,*PMIB_IPDESTTABLE;
690
691 typedef struct _MIB_BEST_IF {
692 DWORD dwDestAddr;
693 DWORD dwIfIndex;
694 } MIB_BEST_IF,*PMIB_BEST_IF;
695
696 typedef struct _MIB_PROXYARP {
697 DWORD dwAddress;
698 DWORD dwMask;
699 DWORD dwIfIndex;
700 } MIB_PROXYARP,*PMIB_PROXYARP;
701
702 typedef struct _MIB_IFSTATUS {
703 DWORD dwIfIndex;
704 DWORD dwAdminStatus;
705 DWORD dwOperationalStatus;
706 WINBOOL bMHbeatActive;
707 WINBOOL bMHbeatAlive;
708 } MIB_IFSTATUS,*PMIB_IFSTATUS;
709
710 typedef struct _MIB_ROUTESTATE {
711 WINBOOL bRoutesSetToStack;
712 } MIB_ROUTESTATE,*PMIB_ROUTESTATE;
713
714 typedef struct _MIB_OPAQUE_INFO {
715 DWORD dwId;
716 __MINGW_EXTENSION union {
717 ULONGLONG ullAlign;
718 BYTE rgbyData[1];
719 };
720 } MIB_OPAQUE_INFO,*PMIB_OPAQUE_INFO;
721
722 #define MAX_MIB_OFFSET 8
723
724 #define MIB_INFO_SIZE(S) (MAX_MIB_OFFSET + sizeof(S))
725 #define MIB_INFO_SIZE_IN_DWORDS(S) ((MIB_INFO_SIZE(S))/sizeof(DWORD) + 1)
726
727 #define DEFINE_MIB_BUFFER(X,Y,Z) DWORD __rgdwBuff[MIB_INFO_SIZE_IN_DWORDS(Y)]; PMIB_OPAQUE_INFO X = (PMIB_OPAQUE_INFO)__rgdwBuff; Y *Z = (Y *)(X->rgbyData)
728
729 #define CAST_MIB_INFO(X,Y,Z) Z = (Y)(X->rgbyData)
730 #endif