winapi_ui_automation/shared/
iprtrmib.rs1use shared::ipmib::MIB_IPFORWARDROW;
13use shared::minwindef::{BOOL, BYTE, DWORD};
14use shared::ntdef::{PWCHAR, ULONGLONG, WCHAR};
15pub const MAX_SCOPE_NAME_LEN: usize = 255;
16pub const MAX_MIB_OFFSET: usize = 8;
17const ANY_SIZE: usize = 1;
18STRUCT!{struct MIB_OPAQUE_QUERY {
19 dwVarId: DWORD,
20 rgdwVarIndex: [DWORD; ANY_SIZE],
21}}
22pub type PMIB_OPAQUE_QUERY = *mut MIB_OPAQUE_QUERY;
23ENUM!{enum TCP_TABLE_CLASS {
24 TCP_TABLE_BASIC_LISTENER = 0,
25 TCP_TABLE_BASIC_CONNECTIONS = 1,
26 TCP_TABLE_BASIC_ALL = 2,
27 TCP_TABLE_OWNER_PID_LISTENER = 3,
28 TCP_TABLE_OWNER_PID_CONNECTIONS = 4,
29 TCP_TABLE_OWNER_PID_ALL = 5,
30 TCP_TABLE_OWNER_MODULE_LISTENER = 6,
31 TCP_TABLE_OWNER_MODULE_CONNECTIONS = 7,
32 TCP_TABLE_OWNER_MODULE_ALL = 8,
33}}
34pub type PTCP_TABLE_CLASS = *mut TCP_TABLE_CLASS;
35ENUM!{enum UDP_TABLE_CLASS {
36 UDP_TABLE_BASIC = 0,
37 UDP_TABLE_OWNER_PID = 1,
38 UDP_TABLE_OWNER_MODULE = 2,
39}}
40pub type PUDP_TABLE_CLASS = *mut UDP_TABLE_CLASS;
41ENUM!{enum TCPIP_OWNER_MODULE_INFO_CLASS {
42 TCPIP_OWNER_MODULE_INFO_BASIC = 0,
43}}
44pub type PTCPIP_OWNER_MODULE_INFO_CLASS = *mut TCPIP_OWNER_MODULE_INFO_CLASS;
45STRUCT!{struct TCPIP_OWNER_MODULE_BASIC_INFO {
46 pModuleName: PWCHAR,
47 pModulePath: PWCHAR,
48}}
49pub type PTCPIP_OWNER_MODULE_BASIC_INFO = *mut TCPIP_OWNER_MODULE_BASIC_INFO;
50STRUCT!{struct MIB_IPMCAST_BOUNDARY {
51 dwIfIndex: DWORD,
52 dwGroupAddress: DWORD,
53 dwGroupMask: DWORD,
54 dwStatus: DWORD,
55}}
56pub type PMIB_IPMCAST_BOUNDARY = *mut MIB_IPMCAST_BOUNDARY;
57STRUCT!{struct MIB_IPMCAST_BOUNDARY_TABLE {
58 dwNumEntries: DWORD,
59 table: [MIB_IPMCAST_BOUNDARY; ANY_SIZE],
60}}
61pub type PMIB_IPMCAST_BOUNDARY_TABLE = *mut MIB_IPMCAST_BOUNDARY_TABLE;
62STRUCT!{struct MIB_BOUNDARYROW {
63 dwGroupAddress: DWORD,
64 dwGroupMask: DWORD,
65}}
66pub type PMIB_BOUNDARYROW = *mut MIB_BOUNDARYROW;
67STRUCT!{struct MIB_MCAST_LIMIT_ROW {
68 dwTtl: DWORD,
69 dwRateLimit: DWORD,
70}}
71pub type PMIB_MCAST_LIMIT_ROW = *mut MIB_MCAST_LIMIT_ROW;
72pub type SN_CHAR = WCHAR;
73pub type SCOPE_NAME_BUFFER = [SN_CHAR; MAX_SCOPE_NAME_LEN + 1];
74pub type SCOPE_NAME = *mut SCOPE_NAME_BUFFER;
75STRUCT!{struct MIB_IPMCAST_SCOPE {
76 dwGroupAddress: DWORD,
77 dwGroupMask: DWORD,
78 snNameBuffer: SCOPE_NAME_BUFFER,
79 dwStatus: DWORD,
80}}
81pub type PMIB_IPMCAST_SCOPE = *mut MIB_IPMCAST_SCOPE;
82STRUCT!{struct MIB_IPDESTROW {
83 ForwardRow: MIB_IPFORWARDROW,
84 dwForwardPreference: DWORD,
85 dwForwardViewSet: DWORD,
86}}
87pub type PMIB_IPDESTROW = *mut MIB_IPDESTROW;
88STRUCT!{struct MIB_IPDESTTABLE {
89 dwNumEntries: DWORD,
90 table: [MIB_IPDESTROW; ANY_SIZE],
91}}
92pub type PMIB_IPDESTTABLE = *mut MIB_IPDESTTABLE;
93STRUCT!{struct MIB_BEST_IF {
94 dwDestAddr: DWORD,
95 dwIfIndex: DWORD,
96}}
97pub type PMIB_BEST_IF = *mut MIB_BEST_IF;
98STRUCT!{struct MIB_PROXYARP {
99 dwAddress: DWORD,
100 dwMask: DWORD,
101 dwIfIndex: DWORD,
102}}
103pub type PMIB_PROXYARP = *mut MIB_PROXYARP;
104STRUCT!{struct MIB_IFSTATUS {
105 dwIfIndex: DWORD,
106 dwAdminStatus: DWORD,
107 dwOperationalStatus: DWORD,
108 bMHbeatActive: BOOL,
109 bMHbeatAlive: BOOL,
110}}
111pub type PMIB_IFSTATUS = *mut MIB_IFSTATUS;
112STRUCT!{struct MIB_ROUTESTATE {
113 bRoutesSetToStack: BOOL,
114}}
115pub type PMIB_ROUTESTATE = *mut MIB_ROUTESTATE;
116UNION!{union MIB_OPAQUE_INFO_u {
117 [u64; 1],
118 ullAlign ullAlign_mut: ULONGLONG,
119 rgbyData rgbyData_mut: [BYTE; 1],
120}}
121STRUCT!{struct MIB_OPAQUE_INFO {
122 dwId: DWORD,
123 u: MIB_OPAQUE_INFO_u,
124}}
125pub type PMIB_OPAQUE_INFO = *mut MIB_OPAQUE_INFO;