1 /** 2 * Windows API header module 3 * 4 * Translated from MinGW Windows headers 5 * 6 * Authors: Stewart Gordon 7 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) 8 * Source: $(DRUNTIMESRC core/sys/windows/_iprtrmib.d) 9 */ 10 /// Automatically imported and edited from the druntime module 11 /// core.sys.windows.iprtrmib for the auto-generated win32 package. 12 module win32.iprtrmib; 13 //version (Windows): 14 @system: 15 16 import win32.ipifcons; 17 import win32.windef; 18 19 // FIXME: check types of constants 20 21 enum size_t 22 MAXLEN_PHYSADDR = 8, 23 MAXLEN_IFDESCR = 256, 24 MAX_INTERFACE_NAME_LEN = 256; 25 26 enum { 27 MIB_IPNET_TYPE_OTHER = 1, 28 MIB_IPNET_TYPE_INVALID, 29 MIB_IPNET_TYPE_DYNAMIC, 30 MIB_IPNET_TYPE_STATIC 31 } 32 33 enum { 34 MIB_TCP_RTO_OTHER = 1, 35 MIB_TCP_RTO_CONSTANT, 36 MIB_TCP_RTO_RSRE, 37 MIB_TCP_RTO_VANJ 38 } 39 40 enum { 41 MIB_TCP_STATE_CLOSED = 1, 42 MIB_TCP_STATE_LISTEN, 43 MIB_TCP_STATE_SYN_SENT, 44 MIB_TCP_STATE_SYN_RCVD, 45 MIB_TCP_STATE_ESTAB, 46 MIB_TCP_STATE_FIN_WAIT1, 47 MIB_TCP_STATE_FIN_WAIT2, 48 MIB_TCP_STATE_CLOSE_WAIT, 49 MIB_TCP_STATE_CLOSING, 50 MIB_TCP_STATE_LAST_ACK, 51 MIB_TCP_STATE_TIME_WAIT, 52 MIB_TCP_STATE_DELETE_TCB // = 12 53 } 54 55 enum DWORD 56 MIB_USE_CURRENT_TTL = -1, 57 MIB_USE_CURRENT_FORWARDING = -1, 58 MIB_TCP_MAXCONN_DYNAMIC = -1; 59 60 struct MIB_IPADDRROW { 61 DWORD dwAddr; 62 DWORD dwIndex; 63 DWORD dwMask; 64 DWORD dwBCastAddr; 65 DWORD dwReasmSize; 66 ushort unused1; 67 ushort unused2; 68 } 69 alias MIB_IPADDRROW* PMIB_IPADDRROW; 70 71 struct MIB_IPADDRTABLE { 72 DWORD dwNumEntries; 73 MIB_IPADDRROW[1] _table; 74 75 MIB_IPADDRROW* table() return { return _table.ptr; } 76 } 77 alias MIB_IPADDRTABLE* PMIB_IPADDRTABLE; 78 79 struct MIB_IPFORWARDROW { 80 DWORD dwForwardDest; 81 DWORD dwForwardMask; 82 DWORD dwForwardPolicy; 83 DWORD dwForwardNextHop; 84 DWORD dwForwardIfIndex; 85 DWORD dwForwardType; 86 DWORD dwForwardProto; 87 DWORD dwForwardAge; 88 DWORD dwForwardNextHopAS; 89 DWORD dwForwardMetric1; 90 DWORD dwForwardMetric2; 91 DWORD dwForwardMetric3; 92 DWORD dwForwardMetric4; 93 DWORD dwForwardMetric5; 94 } 95 alias MIB_IPFORWARDROW* PMIB_IPFORWARDROW; 96 97 struct MIB_IPFORWARDTABLE { 98 DWORD dwNumEntries; 99 MIB_IPFORWARDROW[1] _table; 100 101 MIB_IPFORWARDROW* table() return { return _table.ptr; } 102 } 103 alias MIB_IPFORWARDTABLE* PMIB_IPFORWARDTABLE; 104 105 struct MIB_IPNETROW { 106 DWORD dwIndex; 107 DWORD dwPhysAddrLen; 108 BYTE[MAXLEN_PHYSADDR] bPhysAddr; 109 DWORD dwAddr; 110 DWORD dwType; 111 } 112 alias MIB_IPNETROW* PMIB_IPNETROW; 113 114 struct MIB_IPNETTABLE { 115 DWORD dwNumEntries; 116 MIB_IPNETROW[1] _table; 117 118 MIB_IPNETROW* table() return { return _table.ptr; } 119 } 120 alias MIB_IPNETTABLE* PMIB_IPNETTABLE; 121 122 struct MIBICMPSTATS { 123 DWORD dwMsgs; 124 DWORD dwErrors; 125 DWORD dwDestUnreachs; 126 DWORD dwTimeExcds; 127 DWORD dwParmProbs; 128 DWORD dwSrcQuenchs; 129 DWORD dwRedirects; 130 DWORD dwEchos; 131 DWORD dwEchoReps; 132 DWORD dwTimestamps; 133 DWORD dwTimestampReps; 134 DWORD dwAddrMasks; 135 DWORD dwAddrMaskReps; 136 } 137 alias MIBICMPSTATS* PMIBICMPSTATS; 138 139 struct MIBICMPINFO { 140 MIBICMPSTATS icmpInStats; 141 MIBICMPSTATS icmpOutStats; 142 } 143 alias MIBICMPINFO* PMIBICMPINFO; 144 145 struct MIB_ICMP { 146 MIBICMPINFO stats; 147 } 148 alias MIB_ICMP* PMIB_ICMP; 149 150 struct MIB_IFROW { 151 WCHAR[MAX_INTERFACE_NAME_LEN] wszName = 0; 152 DWORD dwIndex; 153 DWORD dwType; 154 DWORD dwMtu; 155 DWORD dwSpeed; 156 DWORD dwPhysAddrLen; 157 BYTE[MAXLEN_PHYSADDR] bPhysAddr; 158 DWORD dwAdminStatus; 159 DWORD dwOperStatus; 160 DWORD dwLastChange; 161 DWORD dwInOctets; 162 DWORD dwInUcastPkts; 163 DWORD dwInNUcastPkts; 164 DWORD dwInDiscards; 165 DWORD dwInErrors; 166 DWORD dwInUnknownProtos; 167 DWORD dwOutOctets; 168 DWORD dwOutUcastPkts; 169 DWORD dwOutNUcastPkts; 170 DWORD dwOutDiscards; 171 DWORD dwOutErrors; 172 DWORD dwOutQLen; 173 DWORD dwDescrLen; 174 BYTE[MAXLEN_IFDESCR] bDescr; 175 } 176 alias MIB_IFROW* PMIB_IFROW; 177 178 struct MIB_IFTABLE { 179 DWORD dwNumEntries; 180 MIB_IFROW[1] _table; 181 182 MIB_IFROW* table() return { return _table.ptr; } 183 } 184 alias MIB_IFTABLE* PMIB_IFTABLE; 185 186 struct MIB_IPSTATS { 187 DWORD dwForwarding; 188 DWORD dwDefaultTTL; 189 DWORD dwInReceives; 190 DWORD dwInHdrErrors; 191 DWORD dwInAddrErrors; 192 DWORD dwForwDatagrams; 193 DWORD dwInUnknownProtos; 194 DWORD dwInDiscards; 195 DWORD dwInDelivers; 196 DWORD dwOutRequests; 197 DWORD dwRoutingDiscards; 198 DWORD dwOutDiscards; 199 DWORD dwOutNoRoutes; 200 DWORD dwReasmTimeout; 201 DWORD dwReasmReqds; 202 DWORD dwReasmOks; 203 DWORD dwReasmFails; 204 DWORD dwFragOks; 205 DWORD dwFragFails; 206 DWORD dwFragCreates; 207 DWORD dwNumIf; 208 DWORD dwNumAddr; 209 DWORD dwNumRoutes; 210 } 211 alias MIB_IPSTATS* PMIB_IPSTATS; 212 213 struct MIB_TCPSTATS { 214 DWORD dwRtoAlgorithm; 215 DWORD dwRtoMin; 216 DWORD dwRtoMax; 217 DWORD dwMaxConn; 218 DWORD dwActiveOpens; 219 DWORD dwPassiveOpens; 220 DWORD dwAttemptFails; 221 DWORD dwEstabResets; 222 DWORD dwCurrEstab; 223 DWORD dwInSegs; 224 DWORD dwOutSegs; 225 DWORD dwRetransSegs; 226 DWORD dwInErrs; 227 DWORD dwOutRsts; 228 DWORD dwNumConns; 229 } 230 alias MIB_TCPSTATS* PMIB_TCPSTATS; 231 232 struct MIB_TCPROW { 233 DWORD dwState; 234 DWORD dwLocalAddr; 235 DWORD dwLocalPort; 236 DWORD dwRemoteAddr; 237 DWORD dwRemotePort; 238 } 239 alias MIB_TCPROW* PMIB_TCPROW; 240 241 struct MIB_TCPTABLE { 242 DWORD dwNumEntries; 243 MIB_TCPROW[1] _table; 244 245 MIB_TCPROW* table() return { return _table.ptr; } 246 } 247 alias MIB_TCPTABLE* PMIB_TCPTABLE; 248 249 struct MIB_UDPSTATS { 250 DWORD dwInDatagrams; 251 DWORD dwNoPorts; 252 DWORD dwInErrors; 253 DWORD dwOutDatagrams; 254 DWORD dwNumAddrs; 255 } 256 alias MIB_UDPSTATS* PMIB_UDPSTATS; 257 258 struct MIB_UDPROW { 259 DWORD dwLocalAddr; 260 DWORD dwLocalPort; 261 } 262 alias MIB_UDPROW* PMIB_UDPROW; 263 264 struct MIB_UDPTABLE { 265 DWORD dwNumEntries; 266 MIB_UDPROW[1] _table; 267 268 MIB_UDPROW* table() return { return _table.ptr; } 269 } 270 alias MIB_UDPTABLE* PMIB_UDPTABLE;