Difference between revisions of "Unit IPHlpAPI"

From Ultibo.org
Jump to: navigation, search
 
(13 intermediate revisions by the same user not shown)
Line 5: Line 5:
 
----
 
----
  
'''Ultibo IP Helper interface unit'''
+
'''Ultibo IP Helper Interface unit'''
  
''To be documented''
+
This unit provides a subset of the Windows IP Helper API functions for querying and managing configuration of the TCP/IP transport and associated protocols.
 +
 
 +
Note: Not all functions are currently implemented, more will be added as they are required.
  
 
=== Constants ===
 
=== Constants ===
Line 67: Line 69:
 
<br />   
 
<br />   
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''MIB operation status constants''' <code> MIB_IF_OPER_STATUS_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''MIB operation status''' <code> MIB_IF_OPER_STATUS_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 93: Line 95:
 
<br />   
 
<br />   
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''MIB type constants''' <code> MIB_IF_TYPE_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''MIB type''' <code> MIB_IF_TYPE_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 116: Line 118:
 
|-
 
|-
 
| <code>MIB_IF_TYPE_SLIP = 28;</code>
 
| <code>MIB_IF_TYPE_SLIP = 28;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IF_TYPE_IEEE80211 = 71;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>IF_TYPE_OTHER  = MIB_IF_TYPE_OTHER;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IF_TYPE_ETHERNET_CSMACD = MIB_IF_TYPE_ETHERNET;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IF_TYPE_ISO88025_TOKENRING = MIB_IF_TYPE_TOKENRING;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IF_TYPE_FDDI = MIB_IF_TYPE_FDDI;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IF_TYPE_PPP = MIB_IF_TYPE_PPP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IF_TYPE_SOFTWARE_LOOPBACK = MIB_IF_TYPE_LOOPBACK;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IF_TYPE_SLIP = MIB_IF_TYPE_SLIP;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IF_TYPE_ATM = 37;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IF_TYPE_IEEE80211 = MIB_IF_TYPE_IEEE80211;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IF_TYPE_TUNNEL = 131;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IF_TYPE_IEEE1394 = 144;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IF_TYPE_IEEE80216_WMAN = 237;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IF_TYPE_WWANPP = 243;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IF_TYPE_WWANPP2 = 244;</code>
 
| &nbsp;
 
| &nbsp;
 
|-
 
|-
Line 122: Line 171:
 
<br />   
 
<br />   
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''MIB admin status constants''' <code> MIB_IF_ADMIN_STATUS_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''MIB admin status''' <code> MIB_IF_ADMIN_STATUS_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 139: Line 188:
 
<br />   
 
<br />   
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''MIB TCP constants''' <code> MIB_TCP_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''MIB TCP''' <code> MIB_TCP_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 162: Line 211:
 
<br />   
 
<br />   
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''MIB TCP state constants''' <code> MIB_TCP_STATE_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''MIB TCP state''' <code> MIB_TCP_STATE_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 206: Line 255:
 
<br />  
 
<br />  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''MIB current constants''' <code> MIB_USE_CURRENT_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''MIB current''' <code> MIB_USE_CURRENT_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 220: Line 269:
 
<br />   
 
<br />   
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''MIB IP constants''' <code> MIB_IP_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''MIB IP''' <code> MIB_IP_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 234: Line 283:
 
<br />   
 
<br />   
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''MIB IP route type constants''' <code> MIB_IPROUTE_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''MIB IP route type''' <code> MIB_IPROUTE_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 257: Line 306:
 
<br />   
 
<br />   
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''MIB IP protocol constants''' <code> MIB_IPPROTO_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''MIB IP protocol''' <code> MIB_IPPROTO_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 316: Line 365:
 
<br />   
 
<br />   
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''MIB IP network type constants''' <code> MIB_IPNET_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''MIB IP network type''' <code> MIB_IPNET_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 339: Line 388:
 
----
 
----
  
''To be documented''
+
 
 +
'''IP address'''
 +
 
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| <code>IPAddr = Cardinal;</code>
 +
| style="width: 40%;"|An IP address
 +
|-
 +
|}
 +
 
 +
'''IP mask'''
 +
 
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| <code>IPMask = Cardinal;</code>
 +
| style="width: 40%;"|An IP netmask
 +
|-
 +
|}
 +
 
 +
'''IP status'''
 +
 
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| <code>IP_STATUS = Cardinal;</code>
 +
| style="width: 40%;"|Status code returned from IP APIs
 +
|-
 +
|}
 +
 +
'''MIB if number'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TMibIfnumber = MIB_IFNUMBER;</code>
 +
 
 +
<code>PMibIfnumber = PMIB_IFNUMBER;</code>
 +
 
 +
<code>PMIB_IFNUMBER = ^MIB_IFNUMBER;</code>
 +
 
 +
<code>MIB_IFNUMBER = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>dwValue: DWORD;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''MIB if row'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TMibIfRow = MIB_IFROW;</code>
 +
 
 +
<code>PMibIfRow = PMIB_IFROW;</code>
 +
 
 +
<code>PMIB_IFROW = ^MIB_IFROW;</code>
 +
 
 +
<code>MIB_IFROW = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>wszName: array [0..MAX_INTERFACE_NAME_LEN - 1] of WideChar;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>dwIndex: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwType: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwMtu: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwSpeed: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwPhysAddrLen: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>bPhysAddr: array [0..MAXLEN_PHYSADDR - 1] of Byte;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwAdminStatus: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwOperStatus: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwLastChange: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwInOctets: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwInUcastPkts: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwInNUcastPkts: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwInDiscards: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwInErrors: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwInUnknownProtos: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwOutOctets: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwOutUcastPkts: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwOutNUcastPkts: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwOutDiscards: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwOutErrors: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwOutQLen: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwDescrLen: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>bDescr: array[0..MAXLEN_IFDESCR - 1] of Byte;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''MIB if table'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TMibIftable = MIB_IFTABLE;</code>
 +
 
 +
<code>PMibIftable = PMIB_IFTABLE;</code>
 +
 
 +
<code>PMIB_IFTABLE = ^MIB_IFTABLE;</code>
 +
 
 +
<code>MIB_IFTABLE = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>dwNumEntries: DWORD;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>table: array [0..ANY_SIZE - 1] of MIB_IFROW;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''MIB ICMP statistics'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TMibIcmpStats = MIBICMPSTATS;</code>
 +
 
 +
<code>PMibIcmpStats = ^TMibIcmpStats; </code>
 +
 
 +
<code>MIBICMPSTATS = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>dwMsgs: DWORD;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>dwErrors: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwDestUnreachs: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwTimeExcds: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwParmProbs: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwSrcQuenchs: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwRedirects: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwEchos: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwEchoReps: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwTimestamps: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwTimestampReps: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwAddrMasks: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwAddrMaskReps: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''MIB ICMP information'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TMibIcmpInfo = MIBICMPINFO;</code>
 +
 
 +
<code>PMibIcmpInfo = ^TMibIcmpInfo;</code>
 +
 
 +
<code>MIBICMPINFO = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>icmpInStats: MIBICMPSTATS;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>icmpOutStats: MIBICMPSTATS;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''MIB ICMP'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TMibIcmp = MIB_ICMP;</code>
 +
 
 +
<code>PMibIcmp = PMIB_ICMP;</code>
 +
 
 +
<code>PMIB_ICMP = ^MIB_ICMP;</code>
 +
 
 +
<code>MIB_ICMP = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>stats: MIBICMPINFO;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''MIB UDP statistics'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TMibUdpStats = MIB_UDPSTATS;</code>
 +
 
 +
<code>PMibUdpStats = PMIB_UDPSTATS;</code>
 +
 
 +
<code>PMIB_UDPSTATS = ^MIB_UDPSTATS;</code>
 +
 
 +
<code>MIB_UDPSTATS = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>dwInDatagrams: DWORD;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>dwNoPorts: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwInErrors: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwOutDatagrams: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwNumAddrs: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''MIB UDP row'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TMibUdpRow = MIB_UDPROW;</code>
 +
 
 +
<code>PMibUdpRow = PMIB_UDPROW;</code>
 +
 
 +
<code>PMIB_UDPROW = ^MIB_UDPROW;</code>
 +
 
 +
<code>MIB_UDPROW = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>dwLocalAddr: DWORD;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>dwLocalPort: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''MIB UDP table'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TMibUdpTable = MIB_UDPTABLE;</code>
 +
 
 +
<code>PMibUdpTable = PMIB_UDPTABLE;</code>
 +
 
 +
<code>PMIB_UDPTABLE = ^MIB_UDPTABLE;</code>
 +
 
 +
<code>MIB_UDPTABLE = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>dwNumEntries: DWORD;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>table: array [0..ANY_SIZE - 1] of MIB_UDPROW;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''MIB TCP statistics'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TMibTcpStats = MIB_TCPSTATS;</code>
 +
 
 +
<code>PMibTcpStats = PMIB_TCPSTATS;</code>
 +
 
 +
<code>PMIB_TCPSTATS = ^MIB_TCPSTATS;</code>
 +
 
 +
<code>MIB_TCPSTATS = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>dwRtoAlgorithm: DWORD;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>dwRtoMin: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwRtoMax: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwMaxConn: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwActiveOpens: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwPassiveOpens: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwAttemptFails: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwEstabResets: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwCurrEstab: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwInSegs: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwOutSegs: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwRetransSegs: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwInErrs: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwOutRsts: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwNumConns: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''MIB TCP row'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TMibTcpRow = MIB_TCPROW;</code>
 +
 
 +
<code>PMibTcpRow = PMIB_TCPROW;</code>
 +
 
 +
<code>PMIB_TCPROW = ^MIB_TCPROW;</code>
 +
 
 +
<code>MIB_TCPROW = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>dwState: DWORD;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>dwLocalAddr: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwLocalPort: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwRemoteAddr: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwRemotePort: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''MIB TCP table'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TMibTcpTable = MIB_TCPTABLE;</code>
 +
 
 +
<code>PMibTcpTable = PMIB_TCPTABLE;</code>
 +
 
 +
<code>PMIB_TCPTABLE = ^MIB_TCPTABLE;</code>
 +
 
 +
<code>MIB_TCPTABLE = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>dwNumEntries: DWORD;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>table: array [0..ANY_SIZE - 1] of MIB_TCPROW;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''MIB IP statistics'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TMibIpStats = MIB_IPSTATS;</code>
 +
 
 +
<code>PMibIpStats = PMIB_IPSTATS;</code>
 +
 
 +
<code>PMIB_IPSTATS = ^MIB_IPSTATS;</code>
 +
 
 +
<code>MIB_IPSTATS = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>dwForwarding: DWORD;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>dwDefaultTTL: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwInReceives: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwInHdrErrors: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwInAddrErrors: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwForwDatagrams: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwInUnknownProtos: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwInDiscards: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwInDelivers: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwOutRequests: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwRoutingDiscards: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwOutDiscards: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwOutNoRoutes: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwReasmTimeout: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwReasmReqds: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwReasmOks: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwReasmFails: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwFragOks: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwFragFails: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwFragCreates: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwNumIf: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwNumAddr: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwNumRoutes: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''MIB IP address row'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TMibIpAddrRow = MIB_IPADDRROW;</code>
 +
 
 +
<code>PMibIpAddrRow = PMIB_IPADDRROW;</code>
 +
 
 +
<code>PMIB_IPADDRROW = ^MIB_IPADDRROW;</code>
 +
 
 +
<code>MIB_IPADDRROW = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>dwAddr: DWORD;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>dwIndex: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwMask: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwBCastAddr: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwReasmSize: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>unused1: Word;</code>
 +
| &nbsp;
 +
|-
 +
| <code>unused2: Word;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''MIB IP address table'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TMibIpAddrTable = MIB_IPADDRTABLE;</code>
 +
 
 +
<code>PMibIpAddrTable = PMIB_IPADDRTABLE;</code>
 +
 
 +
<code>PMIB_IPADDRTABLE = ^MIB_IPADDRTABLE;</code>
 +
 
 +
<code>MIB_IPADDRTABLE = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>dwNumEntries: DWORD;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>table: array [0..ANY_SIZE - 1] of MIB_IPADDRROW;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''MIB IP forward number'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TMibIpForwardNumber = MIB_IPFORWARDNUMBER;</code>
 +
 
 +
<code>PMibIpForwardNumber = PMIB_IPFORWARDNUMBER;</code>
 +
 
 +
<code>PMIB_IPFORWARDNUMBER = ^MIB_IPFORWARDNUMBER;</code>
 +
 
 +
<code>MIB_IPFORWARDNUMBER = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>dwValue: DWORD;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''MIB IP forward row'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TMibIpForwardRow = MIB_IPFORWARDROW;</code>
 +
 
 +
<code>PMibIpForwardRow = PMIB_IPFORWARDROW;</code>
 +
 
 +
<code>PMIB_IPFORWARDROW = ^MIB_IPFORWARDROW;</code>
 +
 
 +
<code>MIB_IPFORWARDROW = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>dwForwardDest: DWORD;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>dwForwardMask: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwForwardPolicy: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwForwardNextHop: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwForwardIfIndex: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwForwardType: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwForwardProto: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwForwardAge: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwForwardNextHopAS: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwForwardMetric1: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwForwardMetric2: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwForwardMetric3: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwForwardMetric4: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwForwardMetric5: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''MIB IP forward table'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TMibIpForwardTable = MIB_IPFORWARDTABLE;</code>
 +
 
 +
<code>PMibIpForwardTable = PMIB_IPFORWARDTABLE;</code>
 +
 
 +
<code>PMIB_IPFORWARDTABLE = ^MIB_IPFORWARDTABLE;</code>
 +
 
 +
<code>MIB_IPFORWARDTABLE = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>dwNumEntries: DWORD;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>table: array [0..ANY_SIZE - 1] of MIB_IPFORWARDROW;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''MIB IP net row'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TMibIpNetRow = MIB_IPNETROW;</code>
 +
 
 +
<code>PMibIpNetRow = PMIB_IPNETROW;</code>
 +
 
 +
<code>PMIB_IPNETROW = ^MIB_IPNETROW;</code>
 +
 
 +
<code>MIB_IPNETROW = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>dwIndex: DWORD;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>dwPhysAddrLen: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>bPhysAddr: array [0..MAXLEN_PHYSADDR - 1] of BYTE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwAddr: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>dwType: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 +
'''MIB IP net table'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TMibIpNetTable = MIB_IPNETTABLE;</code>
 +
 
 +
<code>PMibIpNetTable = PMIB_IPNETTABLE; </code>
 +
 
 +
<code>PMIB_IPNETTABLE = ^MIB_IPNETTABLE;</code>
 +
 
 +
<code>MIB_IPNETTABLE = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>dwNumEntries: DWORD;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>table: array [0..ANY_SIZE - 1] of MIB_IPNETROW;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''IP adapter index map'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TIpAdapterIndexMap = IP_ADAPTER_INDEX_MAP;</code>
 +
 
 +
<code>PIpAdapterIndexMap = PIP_ADAPTER_INDEX_MAP;</code>
 +
 
 +
<code>PIP_ADAPTER_INDEX_MAP = ^IP_ADAPTER_INDEX_MAP;</code>
 +
 
 +
<code>IP_ADAPTER_INDEX_MAP = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Index: ULONG;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>Name: array [0..MAX_ADAPTER_NAME - 1] of WideChar;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''IP interface info'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TIpInterfaceInfo = IP_INTERFACE_INFO;</code>
 +
 
 +
<code>PIpInterfaceInfo = PIP_INTERFACE_INFO;</code>
 +
 
 +
<code>PIP_INTERFACE_INFO = ^IP_INTERFACE_INFO;</code>
 +
 
 +
<code>IP_INTERFACE_INFO = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>NumAdapters: Longint;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>Adapter: array [0..0] of IP_ADAPTER_INDEX_MAP;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''IP unidirectional adapter address'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TIpUnidirectionalAdapterAddress = IP_UNIDIRECTIONAL_ADAPTER_ADDRESS;</code>
 +
 
 +
<code>PIpUnidirectionalAdapterAddress = PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS;</code>
 +
 
 +
<code>PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS = ^IP_UNIDIRECTIONAL_ADAPTER_ADDRESS;</code>
 +
 
 +
<code>IP_UNIDIRECTIONAL_ADAPTER_ADDRESS = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>NumAdapters: ULONG;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>Address: array [0..0] of IPAddr;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''IP address string'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TIpAddressString = IP_ADDRESS_STRING;</code>
 +
 
 +
<code>PIpAddressString = PIP_MASK_STRING;</code>
 +
 
 +
<code>PIP_ADDRESS_STRING = ^IP_ADDRESS_STRING;</code>
 +
 
 +
<code>IP_MASK_STRING = IP_ADDRESS_STRING;</code>
 +
 
 +
<code>PIP_MASK_STRING = ^IP_MASK_STRING;</code>
 +
 
 +
<code>IP_ADDRESS_STRING = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>S: array [0..15] of Char;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''IP addr string'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TIpAddrString = IP_ADDR_STRING;</code>
 +
 
 +
<code>PIpAddrString = PIP_ADDR_STRING;</code>
 +
 
 +
<code>PIP_ADDR_STRING = ^IP_ADDR_STRING;</code>
 +
 
 +
<code>IP_ADDR_STRING = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Next: PIP_ADDR_STRING;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>IpAddress: IP_ADDRESS_STRING;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IpMask: IP_MASK_STRING;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Context: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div> 
 +
 
 +
'''IP adapter information'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TIpAdapterInfo = IP_ADAPTER_INFO;</code>
 +
 
 +
<code>PIpAdapterInfo = PIP_ADAPTER_INFO;</code>
 +
 
 +
<code>PIP_ADAPTER_INFO = ^IP_ADAPTER_INFO;</code>
 +
 
 +
<code>IP_ADAPTER_INFO = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Next: PIP_ADAPTER_INFO;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>ComboIndex: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AdapterName: array [0..MAX_ADAPTER_NAME_LENGTH + 3] of Char;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Description: array [0..MAX_ADAPTER_DESCRIPTION_LENGTH + 3] of Char;</code>
 +
| &nbsp;
 +
|-
 +
| <code>AddressLength: UINT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Address: array [0..MAX_ADAPTER_ADDRESS_LENGTH - 1] of BYTE;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Index: DWORD;</code>
 +
| &nbsp;
 +
|-
 +
| <code>Type_: UINT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DhcpEnabled: UINT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CurrentIpAddress: PIP_ADDR_STRING;</code>
 +
| &nbsp;
 +
|-
 +
| <code>IpAddressList: IP_ADDR_STRING;</code>
 +
| &nbsp;
 +
|-
 +
| <code>GatewayList: IP_ADDR_STRING;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DhcpServer: IP_ADDR_STRING;</code>
 +
| &nbsp;
 +
|-
 +
| <code>HaveWins: BOOL;</code>
 +
| &nbsp;
 +
|-
 +
| <code>PrimaryWinsServer: IP_ADDR_STRING;</code>
 +
| &nbsp;
 +
|-
 +
| <code>SecondaryWinsServer: IP_ADDR_STRING;</code>
 +
| &nbsp;
 +
|-
 +
| <code>LeaseObtained: time_t;</code>
 +
| &nbsp;
 +
|-
 +
| <code>LeaseExpires: time_t;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''IP per adapter information'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TIpPerAdapterInfo = IP_PER_ADAPTER_INFO;</code>
 +
 
 +
<code>PIpPerAdapterInfo = PIP_PER_ADAPTER_INFO;</code>
 +
 
 +
<code>PIP_PER_ADAPTER_INFO = ^IP_PER_ADAPTER_INFO;</code>
 +
 
 +
<code>IP_PER_ADAPTER_INFO = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>AutoconfigEnabled: UINT;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>AutoconfigActive: UINT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CurrentDnsServer: PIP_ADDR_STRING;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DnsServerList: IP_ADDR_STRING;</code>
 +
| &nbsp;
 +
|-
 +
 
 +
|}
 +
</div></div>
 +
 
 +
'''Fixed information'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>TFixedInfo = FIXED_INFO;</code>
 +
 
 +
<code>PFixedInfo = PFIXED_INFO; </code>
 +
 
 +
<code>PFIXED_INFO = ^FIXED_INFO;</code>
 +
 
 +
<code>FIXED_INFO = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>HostName: array [0..MAX_HOSTNAME_LEN + 3] of Char;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>DomainName: array[0..MAX_DOMAIN_NAME_LEN + 3] of Char;</code>
 +
| &nbsp;
 +
|-
 +
| <code>CurrentDnsServer: PIP_ADDR_STRING;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DnsServerList: IP_ADDR_STRING;</code>
 +
| &nbsp;
 +
|-
 +
| <code>NodeType: UINT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ScopeId: array [0..MAX_SCOPE_ID_LEN + 3] of Char;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EnableRouting: UINT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EnableProxy: UINT;</code>
 +
| &nbsp;
 +
|-
 +
| <code>EnableDns: UINT;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
  
 
=== Public variables ===
 
=== Public variables ===
 
----
 
----
  
''To be documented''
+
''None defined''
  
 
=== Function declarations ===
 
=== Function declarations ===
 
----
 
----
  
 +
 +
'''Initialization functions'''
 +
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function IPHelperStart:Boolean;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Initialize and start the Winsock2 provider</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| Only called internally by IP Helper functions
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function IPHelperStop:Boolean;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Terminate and stop the Winsock2 provider</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| Only called internally by IP Helper functions
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''Helper functions'''
 +
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function IPHelperConvertError(Status:Integer):DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a Winsock2 error to an error code</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
  
 
'''IP helper functions'''
 
'''IP helper functions'''
Line 354: Line 1,437:
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<pre style="border: 0; padding-bottom:0px;">function GetNumberOfInterfaces(var pdwNumIf: DWORD): DWORD;</pre>
 
<pre style="border: 0; padding-bottom:0px;">function GetNumberOfInterfaces(var pdwNumIf: DWORD): DWORD;</pre>
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Retrieve the number of interfaces on the local computer</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
| None documented
+
| See the Windows IP Helper documentation for additional information
 
|-
 
|-
 
|}
 
|}
Line 366: Line 1,449:
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<pre style="border: 0; padding-bottom:0px;">function GetIfEntry(pIfRow: PMIB_IFROW): DWORD;</pre>
 
<pre style="border: 0; padding-bottom:0px;">function GetIfEntry(pIfRow: PMIB_IFROW): DWORD;</pre>
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Retrieve information for the specified interface on the local computer</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
| None documented
+
| See the Windows IP Helper documentation for additional information
 
|-
 
|-
 
|}
 
|}
Line 378: Line 1,461:
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<pre style="border: 0; padding-bottom:0px;">function GetIfTable(pIfTable: PMIB_IFTABLE; var pdwSize: DWORD; bOrder: BOOL): DWORD;</pre>
 
<pre style="border: 0; padding-bottom:0px;">function GetIfTable(pIfTable: PMIB_IFTABLE; var pdwSize: DWORD; bOrder: BOOL): DWORD;</pre>
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Retrieve the MIB-II interface table</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
| None documented
+
| See the Windows IP Helper documentation for additional information
 
|-
 
|-
 
|}
 
|}
Line 390: Line 1,473:
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<pre style="border: 0; padding-bottom:0px;">function GetIpAddrTable(pIpAddrTable: PMIB_IPADDRTABLE; var pdwSize: DWORD; bOrder: BOOL): DWORD;</pre>
 
<pre style="border: 0; padding-bottom:0px;">function GetIpAddrTable(pIpAddrTable: PMIB_IPADDRTABLE; var pdwSize: DWORD; bOrder: BOOL): DWORD;</pre>
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Retrieve the interface to IPv4 address mapping table</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
| None documented
+
| See the Windows IP Helper documentation for additional information
 
|-
 
|-
 
|}
 
|}
Line 402: Line 1,485:
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<pre style="border: 0; padding-bottom:0px;">function GetIpNetTable(pIpNetTable: PMIB_IPNETTABLE; var pdwSize: DWORD; bOrder: BOOL): DWORD;</pre>
 
<pre style="border: 0; padding-bottom:0px;">function GetIpNetTable(pIpNetTable: PMIB_IPNETTABLE; var pdwSize: DWORD; bOrder: BOOL): DWORD;</pre>
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Retrieve the IPv4 to physical address mapping table</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
| None documented
+
| See the Windows IP Helper documentation for additional information
 
|-
 
|-
 
|}
 
|}
Line 414: Line 1,497:
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<pre style="border: 0; padding-bottom:0px;">function GetIpForwardTable(pIpForwardTable: PMIB_IPFORWARDTABLE; var pdwSize: DWORD; bOrder: BOOL): DWORD;</pre>
 
<pre style="border: 0; padding-bottom:0px;">function GetIpForwardTable(pIpForwardTable: PMIB_IPFORWARDTABLE; var pdwSize: DWORD; bOrder: BOOL): DWORD;</pre>
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Retrieve the IPv4 routing table</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
| None documented
+
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function GetTcpTable(pTcpTable: PMIB_TCPTABLE; var pdwSize: DWORD; bOrder: BOOL): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Retrieve the IPv4 TCP connection table</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function GetUdpTable(pUdpTable: PMIB_UDPTABLE; var pdwSize: DWORD; bOrder: BOOL): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Retrieve the IPv4 User Datagram Protocol (UDP) listener table</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function GetIpStatistics(var pStats: MIB_IPSTATS): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Retrieve the IP statistics for the current computer</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function GetIcmpStatistics(var pStats: MIB_ICMP): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Retrieve the Internet Control Message Protocol (ICMP) for IPv4 statistics for the local computer</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function GetTcpStatistics(var pStats: MIB_TCPSTATS): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Retrieve the TCP statistics for the local computer</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function GetUdpStatistics(var pStats: MIB_UDPSTATS): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Retrieve the User Datagram Protocol (UDP) statistics for the local computer</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 
|-
 
|-
 
|}
 
|}
 
</div></div>
 
</div></div>
 
<br />
 
<br />
 
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<pre style="border: 0; padding-bottom:0px;">function SetIfEntry(const pIfRow: MIB_IFROW): DWORD;</pre>
 
<pre style="border: 0; padding-bottom:0px;">function SetIfEntry(const pIfRow: MIB_IFROW): DWORD;</pre>
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set the administrative status of an interface</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
| None documented
+
| See the Windows IP Helper documentation for additional information
 
|-
 
|-
 
|}
 
|}
Line 439: Line 1,593:
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<pre style="border: 0; padding-bottom:0px;">function CreateIpForwardEntry(const pRoute: MIB_IPFORWARDROW): DWORD;</pre>
 
<pre style="border: 0; padding-bottom:0px;">function CreateIpForwardEntry(const pRoute: MIB_IPFORWARDROW): DWORD;</pre>
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
+
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Create a route in the local computer's IPv4 routing table</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
| None documented
+
| See the Windows IP Helper documentation for additional information
 
|-
 
|-
 
|}
 
|}
Line 451: Line 1,605:
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<pre style="border: 0; padding-bottom:0px;">function SetIpForwardEntry(const pRoute: MIB_IPFORWARDROW): DWORD;</pre>
 
<pre style="border: 0; padding-bottom:0px;">function SetIpForwardEntry(const pRoute: MIB_IPFORWARDROW): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Modify an existing route in the local computer's IPv4 routing table</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function DeleteIpForwardEntry(const pRoute: MIB_IPFORWARDROW): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Delete an existing route in the local computer's IPv4 routing table</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function SetIpStatistics(const pIpStats: MIB_IPSTATS): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Toggle IP forwarding on or off and set the default time-to-live (TTL) value for the local computer</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function SetIpTTL(nTTL: UINT): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set the default time-to-live (TTL) value for the local computer</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function CreateIpNetEntry(const pArpEntry: MIB_IPNETROW): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Create an Address Resolution Protocol (ARP) entry in the ARP table on the local computer</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function SetIpNetEntry(const pArpEntry: MIB_IPNETROW): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Modify an existing ARP entry in the ARP table on the local computer</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function DeleteIpNetEntry(const pArpEntry: MIB_IPNETROW): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Delete an ARP entry from the ARP table on the local computer</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function FlushIpNetTable(dwIfIndex: DWORD): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Delete all ARP entries for the specified interface from the ARP table on the local computer</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function CreateProxyArpEntry(dwAddress, dwMask, dwIfIndex: DWORD): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Create a Proxy Address Resolution Protocol (PARP) entry on the local computer for the specified IPv4 address</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function DeleteProxyArpEntry(dwAddress, dwMask, dwIfIndex: DWORD): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Delete the PARP entry on the local computer specified by the dwAddress and dwIfIndex parameters</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function SetTcpEntry(const pTcpRow: MIB_TCPROW): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set the state of a TCP connection</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function GetInterfaceInfo(pIfTable: PIP_INTERFACE_INFO; var dwOutBufLen: DWORD): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Obtain the list of the network interface adapters with IPv4 enabled on the local system</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function GetUniDirectionalAdapterInfo(pIPIfInfo: PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS; var dwOutBufLen: DWORD): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Retrieve information about the unidirectional adapters installed on the local computer</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function GetBestInterface(dwDestAddr: IPAddr; var pdwBestIfIndex: DWORD): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Retrieve the index of the interface that has the best route to the specified IPv4 address</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function GetBestRoute(dwDestAddr, dwSourceAddr: DWORD; pBestRoute: PMIB_IPFORWARDROW): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Retrieve the best route to the specified destination IP address</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function NotifyAddrChange(var Handle: THandle; overlapped: POVERLAPPED): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Cause a notification to be sent to the caller whenever a change occurs in the table that maps IPv4 addresses to interfaces</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function NotifyRouteChange(var Handle: THandle; overlapped: POVERLAPPED): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Cause a notification to be sent to the caller whenever a change occurs in the IPv4 routing table</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function GetAdapterIndex(AdapterName: LPWSTR; var IfIndex: DWORD): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Obtain the index of an adapter, given its name</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function AddIPAddress(Address: IPAddr; IpMask: IPMask; IfIndex: DWORD; var NTEContext, NTEInstance: DWORD): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Add the specified IPv4 address to the specified adapter</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function DeleteIPAddress(NTEContext: DWORD): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Delete an IP address previously added using AddIPAddress</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function GetNetworkParams(pFixedInfo: PFIXED_INFO; var pOutBufLen: DWORD): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Retrieve network parameters for the local computer</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function GetAdaptersInfo(pAdapterInfo: PIP_ADAPTER_INFO; var pOutBufLen: DWORD): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Retrieve adapter information for the local computer</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function GetPerAdapterInfo(IfIndex: DWORD; pPerAdapterInfo: PIP_PER_ADAPTER_INFO; var pOutBufLen: DWORD): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Retrieve information about the adapter corresponding to the specified interface</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function IpReleaseAddress(const AdapterInfo: IP_ADAPTER_INDEX_MAP): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Release an IPv4 address previously obtained through the Dynamic Host Configuration Protocol (DHCP)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function IpRenewAddress(const AdapterInfo: IP_ADAPTER_INDEX_MAP): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Renew a lease on an IPv4 address previously obtained through Dynamic Host Configuration Protocol (DHCP)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function SendARP(const DestIP, SrcIP: IPAddr; pMacAddr: PDWORD; var PhyAddrLen: DWORD): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Sends an Address Resolution Protocol (ARP) request to obtain the physical address that corresponds to the specified destination IPv4 address</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function GetRTTAndHopCount(DestIpAddress: IPAddr; var HopCount: DWORD; MaxHops: DWORD; var RTT: DWORD): BOOL;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Determine the round-trip time (RTT) and hop count to the specified destination</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function GetFriendlyIfIndex(IfIndex: DWORD): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Take an interface index and return a backward-compatible interface index</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function EnableRouter(var pHandle: THandle; pOverlapped: POVERLAPPED): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Turn on IPv4 forwarding on the local computer</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function UnenableRouter(pOverlapped: POVERLAPPED; lpdwEnableCount: LPDWORD): DWORD;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Turn off IPv4 forwarding on the local computer</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| See the Windows IP Helper documentation for additional information
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''IP helper helper functions'''
 +
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function MIBIFOperStatusToString(AValue:DWORD):String;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 462: Line 1,979:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function DeleteIpForwardEntry(const pRoute: MIB_IPFORWARDROW): DWORD;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function MIBIFTypeToString(AValue:DWORD):String;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 474: Line 1,991:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function SetIpStatistics(const pIpStats: MIB_IPSTATS): DWORD;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function MIBIFAdminStatusToString(AValue:DWORD):String;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 486: Line 2,003:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function SetIpTTL(nTTL: UINT): DWORD;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function MIBTCPRTOToString(AValue:DWORD):String;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 498: Line 2,015:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function GetInterfaceInfo(pIfTable: PIP_INTERFACE_INFO; var dwOutBufLen: DWORD): DWORD;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function MIBTCPStateToString(AValue:DWORD):String;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 510: Line 2,027:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function GetNetworkParams(pFixedInfo: PFIXED_INFO; var pOutBufLen: DWORD): DWORD;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function MIBIPForwardingToString(AValue:DWORD):String;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 522: Line 2,039:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function GetAdaptersInfo(pAdapterInfo: PIP_ADAPTER_INFO; var pOutBufLen: DWORD): DWORD;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function MIBIPRouteTypeToString(AValue:DWORD):String;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 534: Line 2,051:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function IpReleaseAddress(const AdapterInfo: IP_ADAPTER_INDEX_MAP): DWORD;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function MIBIPProtoToString(AValue:DWORD):String;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 546: Line 2,063:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function IpRenewAddress(const AdapterInfo: IP_ADAPTER_INDEX_MAP): DWORD;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function MIBIPNetTypeToString(AValue:DWORD):String;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-

Latest revision as of 03:54, 6 November 2025

Return to Unit Reference


Description


Ultibo IP Helper Interface unit

This unit provides a subset of the Windows IP Helper API functions for querying and managing configuration of the TCP/IP transport and associated protocols.

Note: Not all functions are currently implemented, more will be added as they are required.

Constants



IP helper specific constants MAX_ADAPTER_*
MAX_INTERFACE_NAME_LEN = 256;  
IPRTRMGR_PID = 10000;  
ANY_SIZE = 1;  
 
MAX_ADAPTER_NAME = 128;  
 
MAX_ADAPTER_DESCRIPTION_LENGTH = 128;  
MAX_ADAPTER_NAME_LENGTH = 256;  
MAX_ADAPTER_ADDRESS_LENGTH = 8;  
DEFAULT_MINIMUM_ENTITIES = 32;  
MAX_HOSTNAME_LEN = 128;  
MAX_DOMAIN_NAME_LEN = 128;  
MAX_SCOPE_ID_LEN = 256;  
 
MAXLEN_IFDESCR = 256;  
MAXLEN_PHYSADDR = 8;  


MIB operation status MIB_IF_OPER_STATUS_*
MIB_IF_OPER_STATUS_NON_OPERATIONAL = 0;  
MIB_IF_OPER_STATUS_UNREACHABLE = 1;  
MIB_IF_OPER_STATUS_DISCONNECTED = 2;  
MIB_IF_OPER_STATUS_CONNECTING = 3;  
MIB_IF_OPER_STATUS_CONNECTED = 4;  
MIB_IF_OPER_STATUS_OPERATIONAL = 5;  


MIB type MIB_IF_TYPE_*
MIB_IF_TYPE_OTHER = 1;  
MIB_IF_TYPE_ETHERNET = 6;  
MIB_IF_TYPE_TOKENRING = 9;  
MIB_IF_TYPE_FDDI = 15;  
MIB_IF_TYPE_PPP = 23;  
MIB_IF_TYPE_LOOPBACK = 24;  
MIB_IF_TYPE_SLIP = 28;  
MIB_IF_TYPE_IEEE80211 = 71;  
 
IF_TYPE_OTHER = MIB_IF_TYPE_OTHER;  
IF_TYPE_ETHERNET_CSMACD = MIB_IF_TYPE_ETHERNET;  
IF_TYPE_ISO88025_TOKENRING = MIB_IF_TYPE_TOKENRING;  
IF_TYPE_FDDI = MIB_IF_TYPE_FDDI;  
IF_TYPE_PPP = MIB_IF_TYPE_PPP;  
IF_TYPE_SOFTWARE_LOOPBACK = MIB_IF_TYPE_LOOPBACK;  
IF_TYPE_SLIP = MIB_IF_TYPE_SLIP;  
IF_TYPE_ATM = 37;  
IF_TYPE_IEEE80211 = MIB_IF_TYPE_IEEE80211;  
IF_TYPE_TUNNEL = 131;  
IF_TYPE_IEEE1394 = 144;  
IF_TYPE_IEEE80216_WMAN = 237;  
IF_TYPE_WWANPP = 243;  
IF_TYPE_WWANPP2 = 244;  


MIB admin status MIB_IF_ADMIN_STATUS_*
MIB_IF_ADMIN_STATUS_UP = 1;  
MIB_IF_ADMIN_STATUS_DOWN = 2;  
MIB_IF_ADMIN_STATUS_TESTING = 3;  


MIB TCP MIB_TCP_*
MIB_TCP_RTO_OTHER = 1;  
MIB_TCP_RTO_CONSTANT = 2;  
MIB_TCP_RTO_RSRE = 3;  
MIB_TCP_RTO_VANJ = 4;  
MIB_TCP_MAXCONN_DYNAMIC = DWORD(-1);  


MIB TCP state MIB_TCP_STATE_*
MIB_TCP_STATE_CLOSED = 1;  
MIB_TCP_STATE_LISTEN = 2;  
MIB_TCP_STATE_SYN_SENT = 3;  
MIB_TCP_STATE_SYN_RCVD = 4;  
MIB_TCP_STATE_ESTAB = 5;  
MIB_TCP_STATE_FIN_WAIT1 = 6;  
MIB_TCP_STATE_FIN_WAIT2 = 7;  
MIB_TCP_STATE_CLOSE_WAIT = 8;  
MIB_TCP_STATE_CLOSING = 9;  
MIB_TCP_STATE_LAST_ACK = 10;  
MIB_TCP_STATE_TIME_WAIT = 11;  
MIB_TCP_STATE_DELETE_TCB = 12;  


MIB current MIB_USE_CURRENT_*
MIB_USE_CURRENT_TTL = DWORD(-1);  
MIB_USE_CURRENT_FORWARDING = DWORD(-1);  


MIB IP MIB_IP_*
MIB_IP_FORWARDING = 1;  
MIB_IP_NOT_FORWARDING = 2;  


MIB IP route type MIB_IPROUTE_*
MIB_IPROUTE_TYPE_OTHER = 1;  
MIB_IPROUTE_TYPE_INVALID = 2;  
MIB_IPROUTE_TYPE_DIRECT = 3;  
MIB_IPROUTE_TYPE_INDIRECT = 4;  
MIB_IPROUTE_METRIC_UNUSED = DWORD(-1);  


MIB IP protocol MIB_IPPROTO_*
MIB_IPPROTO_OTHER = 1;  
MIB_IPPROTO_LOCAL = 2;  
MIB_IPPROTO_NETMGMT = 3;  
MIB_IPPROTO_ICMP = 4;  
MIB_IPPROTO_EGP = 5;  
MIB_IPPROTO_GGP = 6;  
MIB_IPPROTO_HELLO = 7;  
MIB_IPPROTO_RIP = 8;  
MIB_IPPROTO_IS_IS = 9;  
MIB_IPPROTO_ES_IS = 10;  
MIB_IPPROTO_CISCO = 11;  
MIB_IPPROTO_BBN = 12;  
MIB_IPPROTO_OSPF = 13;  
MIB_IPPROTO_BGP = 14;  
MIB_IPPROTO_NT_AUTOSTATIC = 10002;  
MIB_IPPROTO_NT_STATIC = 10006;  
MIB_IPPROTO_NT_STATIC_NON_DOD = 10007;  


MIB IP network type MIB_IPNET_*
MIB_IPNET_TYPE_OTHER = 1;  
MIB_IPNET_TYPE_INVALID = 2;  
MIB_IPNET_TYPE_DYNAMIC = 3;  
MIB_IPNET_TYPE_STATIC = 4;  


Type definitions



IP address

IPAddr = Cardinal; An IP address

IP mask

IPMask = Cardinal; An IP netmask

IP status

IP_STATUS = Cardinal; Status code returned from IP APIs

MIB if number

TMibIfnumber = MIB_IFNUMBER;

PMibIfnumber = PMIB_IFNUMBER;

PMIB_IFNUMBER = ^MIB_IFNUMBER;

MIB_IFNUMBER = record

dwValue: DWORD;  

MIB if row

TMibIfRow = MIB_IFROW;

PMibIfRow = PMIB_IFROW;

PMIB_IFROW = ^MIB_IFROW;

MIB_IFROW = record

wszName: array [0..MAX_INTERFACE_NAME_LEN - 1] of WideChar;  
dwIndex: DWORD;  
dwType: DWORD;  
dwMtu: DWORD;  
dwSpeed: DWORD;  
dwPhysAddrLen: DWORD;  
bPhysAddr: array [0..MAXLEN_PHYSADDR - 1] of Byte;  
dwAdminStatus: DWORD;  
dwOperStatus: DWORD;  
dwLastChange: DWORD;  
dwInOctets: DWORD;  
dwInUcastPkts: DWORD;  
dwInNUcastPkts: DWORD;  
dwInDiscards: DWORD;  
dwInErrors: DWORD;  
dwInUnknownProtos: DWORD;  
dwOutOctets: DWORD;  
dwOutUcastPkts: DWORD;  
dwOutNUcastPkts: DWORD;  
dwOutDiscards: DWORD;  
dwOutErrors: DWORD;  
dwOutQLen: DWORD;  
dwDescrLen: DWORD;  
bDescr: array[0..MAXLEN_IFDESCR - 1] of Byte;  

MIB if table

TMibIftable = MIB_IFTABLE;

PMibIftable = PMIB_IFTABLE;

PMIB_IFTABLE = ^MIB_IFTABLE;

MIB_IFTABLE = record

dwNumEntries: DWORD;  
table: array [0..ANY_SIZE - 1] of MIB_IFROW;  

MIB ICMP statistics

TMibIcmpStats = MIBICMPSTATS;

PMibIcmpStats = ^TMibIcmpStats;

MIBICMPSTATS = record

dwMsgs: DWORD;  
dwErrors: DWORD;  
dwDestUnreachs: DWORD;  
dwTimeExcds: DWORD;  
dwParmProbs: DWORD;  
dwSrcQuenchs: DWORD;  
dwRedirects: DWORD;  
dwEchos: DWORD;  
dwEchoReps: DWORD;  
dwTimestamps: DWORD;  
dwTimestampReps: DWORD;  
dwAddrMasks: DWORD;  
dwAddrMaskReps: DWORD;  

MIB ICMP information

TMibIcmpInfo = MIBICMPINFO;

PMibIcmpInfo = ^TMibIcmpInfo;

MIBICMPINFO = record

icmpInStats: MIBICMPSTATS;  
icmpOutStats: MIBICMPSTATS;  

MIB ICMP

TMibIcmp = MIB_ICMP;

PMibIcmp = PMIB_ICMP;

PMIB_ICMP = ^MIB_ICMP;

MIB_ICMP = record

stats: MIBICMPINFO;  

MIB UDP statistics

TMibUdpStats = MIB_UDPSTATS;

PMibUdpStats = PMIB_UDPSTATS;

PMIB_UDPSTATS = ^MIB_UDPSTATS;

MIB_UDPSTATS = record

dwInDatagrams: DWORD;  
dwNoPorts: DWORD;  
dwInErrors: DWORD;  
dwOutDatagrams: DWORD;  
dwNumAddrs: DWORD;  

MIB UDP row

TMibUdpRow = MIB_UDPROW;

PMibUdpRow = PMIB_UDPROW;

PMIB_UDPROW = ^MIB_UDPROW;

MIB_UDPROW = record

dwLocalAddr: DWORD;  
dwLocalPort: DWORD;  

MIB UDP table

TMibUdpTable = MIB_UDPTABLE;

PMibUdpTable = PMIB_UDPTABLE;

PMIB_UDPTABLE = ^MIB_UDPTABLE;

MIB_UDPTABLE = record

dwNumEntries: DWORD;  
table: array [0..ANY_SIZE - 1] of MIB_UDPROW;  

MIB TCP statistics

TMibTcpStats = MIB_TCPSTATS;

PMibTcpStats = PMIB_TCPSTATS;

PMIB_TCPSTATS = ^MIB_TCPSTATS;

MIB_TCPSTATS = record

dwRtoAlgorithm: DWORD;  
dwRtoMin: DWORD;  
dwRtoMax: DWORD;  
dwMaxConn: DWORD;  
dwActiveOpens: DWORD;  
dwPassiveOpens: DWORD;  
dwAttemptFails: DWORD;  
dwEstabResets: DWORD;  
dwCurrEstab: DWORD;  
dwInSegs: DWORD;  
dwOutSegs: DWORD;  
dwRetransSegs: DWORD;  
dwInErrs: DWORD;  
dwOutRsts: DWORD;  
dwNumConns: DWORD;  

MIB TCP row

TMibTcpRow = MIB_TCPROW;

PMibTcpRow = PMIB_TCPROW;

PMIB_TCPROW = ^MIB_TCPROW;

MIB_TCPROW = record

dwState: DWORD;  
dwLocalAddr: DWORD;  
dwLocalPort: DWORD;  
dwRemoteAddr: DWORD;  
dwRemotePort: DWORD;  

MIB TCP table

TMibTcpTable = MIB_TCPTABLE;

PMibTcpTable = PMIB_TCPTABLE;

PMIB_TCPTABLE = ^MIB_TCPTABLE;

MIB_TCPTABLE = record

dwNumEntries: DWORD;  
table: array [0..ANY_SIZE - 1] of MIB_TCPROW;  

MIB IP statistics

TMibIpStats = MIB_IPSTATS;

PMibIpStats = PMIB_IPSTATS;

PMIB_IPSTATS = ^MIB_IPSTATS;

MIB_IPSTATS = record

dwForwarding: DWORD;  
dwDefaultTTL: DWORD;  
dwInReceives: DWORD;  
dwInHdrErrors: DWORD;  
dwInAddrErrors: DWORD;  
dwForwDatagrams: DWORD;  
dwInUnknownProtos: DWORD;  
dwInDiscards: DWORD;  
dwInDelivers: DWORD;  
dwOutRequests: DWORD;  
dwRoutingDiscards: DWORD;  
dwOutDiscards: DWORD;  
dwOutNoRoutes: DWORD;  
dwReasmTimeout: DWORD;  
dwReasmReqds: DWORD;  
dwReasmOks: DWORD;  
dwReasmFails: DWORD;  
dwFragOks: DWORD;  
dwFragFails: DWORD;  
dwFragCreates: DWORD;  
dwNumIf: DWORD;  
dwNumAddr: DWORD;  
dwNumRoutes: DWORD;  

MIB IP address row

TMibIpAddrRow = MIB_IPADDRROW;

PMibIpAddrRow = PMIB_IPADDRROW;

PMIB_IPADDRROW = ^MIB_IPADDRROW;

MIB_IPADDRROW = record

dwAddr: DWORD;  
dwIndex: DWORD;  
dwMask: DWORD;  
dwBCastAddr: DWORD;  
dwReasmSize: DWORD;  
unused1: Word;  
unused2: Word;  

MIB IP address table

TMibIpAddrTable = MIB_IPADDRTABLE;

PMibIpAddrTable = PMIB_IPADDRTABLE;

PMIB_IPADDRTABLE = ^MIB_IPADDRTABLE;

MIB_IPADDRTABLE = record

dwNumEntries: DWORD;  
table: array [0..ANY_SIZE - 1] of MIB_IPADDRROW;  

MIB IP forward number

TMibIpForwardNumber = MIB_IPFORWARDNUMBER;

PMibIpForwardNumber = PMIB_IPFORWARDNUMBER;

PMIB_IPFORWARDNUMBER = ^MIB_IPFORWARDNUMBER;

MIB_IPFORWARDNUMBER = record

dwValue: DWORD;  

MIB IP forward row

TMibIpForwardRow = MIB_IPFORWARDROW;

PMibIpForwardRow = PMIB_IPFORWARDROW;

PMIB_IPFORWARDROW = ^MIB_IPFORWARDROW;

MIB_IPFORWARDROW = record

dwForwardDest: DWORD;  
dwForwardMask: DWORD;  
dwForwardPolicy: DWORD;  
dwForwardNextHop: DWORD;  
dwForwardIfIndex: DWORD;  
dwForwardType: DWORD;  
dwForwardProto: DWORD;  
dwForwardAge: DWORD;  
dwForwardNextHopAS: DWORD;  
dwForwardMetric1: DWORD;  
dwForwardMetric2: DWORD;  
dwForwardMetric3: DWORD;  
dwForwardMetric4: DWORD;  
dwForwardMetric5: DWORD;  

MIB IP forward table

TMibIpForwardTable = MIB_IPFORWARDTABLE;

PMibIpForwardTable = PMIB_IPFORWARDTABLE;

PMIB_IPFORWARDTABLE = ^MIB_IPFORWARDTABLE;

MIB_IPFORWARDTABLE = record

dwNumEntries: DWORD;  
table: array [0..ANY_SIZE - 1] of MIB_IPFORWARDROW;  

MIB IP net row

TMibIpNetRow = MIB_IPNETROW;

PMibIpNetRow = PMIB_IPNETROW;

PMIB_IPNETROW = ^MIB_IPNETROW;

MIB_IPNETROW = record

dwIndex: DWORD;  
dwPhysAddrLen: DWORD;  
bPhysAddr: array [0..MAXLEN_PHYSADDR - 1] of BYTE;  
dwAddr: DWORD;  
dwType: DWORD;  

MIB IP net table

TMibIpNetTable = MIB_IPNETTABLE;

PMibIpNetTable = PMIB_IPNETTABLE;

PMIB_IPNETTABLE = ^MIB_IPNETTABLE;

MIB_IPNETTABLE = record

dwNumEntries: DWORD;  
table: array [0..ANY_SIZE - 1] of MIB_IPNETROW;  

IP adapter index map

TIpAdapterIndexMap = IP_ADAPTER_INDEX_MAP;

PIpAdapterIndexMap = PIP_ADAPTER_INDEX_MAP;

PIP_ADAPTER_INDEX_MAP = ^IP_ADAPTER_INDEX_MAP;

IP_ADAPTER_INDEX_MAP = record

Index: ULONG;  
Name: array [0..MAX_ADAPTER_NAME - 1] of WideChar;  

IP interface info

TIpInterfaceInfo = IP_INTERFACE_INFO;

PIpInterfaceInfo = PIP_INTERFACE_INFO;

PIP_INTERFACE_INFO = ^IP_INTERFACE_INFO;

IP_INTERFACE_INFO = record

NumAdapters: Longint;  
Adapter: array [0..0] of IP_ADAPTER_INDEX_MAP;  

IP unidirectional adapter address

TIpUnidirectionalAdapterAddress = IP_UNIDIRECTIONAL_ADAPTER_ADDRESS;

PIpUnidirectionalAdapterAddress = PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS;

PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS = ^IP_UNIDIRECTIONAL_ADAPTER_ADDRESS;

IP_UNIDIRECTIONAL_ADAPTER_ADDRESS = record

NumAdapters: ULONG;  
Address: array [0..0] of IPAddr;  

IP address string

TIpAddressString = IP_ADDRESS_STRING;

PIpAddressString = PIP_MASK_STRING;

PIP_ADDRESS_STRING = ^IP_ADDRESS_STRING;

IP_MASK_STRING = IP_ADDRESS_STRING;

PIP_MASK_STRING = ^IP_MASK_STRING;

IP_ADDRESS_STRING = record

S: array [0..15] of Char;  

IP addr string

TIpAddrString = IP_ADDR_STRING;

PIpAddrString = PIP_ADDR_STRING;

PIP_ADDR_STRING = ^IP_ADDR_STRING;

IP_ADDR_STRING = record

Next: PIP_ADDR_STRING;  
IpAddress: IP_ADDRESS_STRING;  
IpMask: IP_MASK_STRING;  
Context: DWORD;  

IP adapter information

TIpAdapterInfo = IP_ADAPTER_INFO;

PIpAdapterInfo = PIP_ADAPTER_INFO;

PIP_ADAPTER_INFO = ^IP_ADAPTER_INFO;

IP_ADAPTER_INFO = record

Next: PIP_ADAPTER_INFO;  
ComboIndex: DWORD;  
AdapterName: array [0..MAX_ADAPTER_NAME_LENGTH + 3] of Char;  
Description: array [0..MAX_ADAPTER_DESCRIPTION_LENGTH + 3] of Char;  
AddressLength: UINT;  
Address: array [0..MAX_ADAPTER_ADDRESS_LENGTH - 1] of BYTE;  
Index: DWORD;  
Type_: UINT;  
DhcpEnabled: UINT;  
CurrentIpAddress: PIP_ADDR_STRING;  
IpAddressList: IP_ADDR_STRING;  
GatewayList: IP_ADDR_STRING;  
DhcpServer: IP_ADDR_STRING;  
HaveWins: BOOL;  
PrimaryWinsServer: IP_ADDR_STRING;  
SecondaryWinsServer: IP_ADDR_STRING;  
LeaseObtained: time_t;  
LeaseExpires: time_t;  

IP per adapter information

TIpPerAdapterInfo = IP_PER_ADAPTER_INFO;

PIpPerAdapterInfo = PIP_PER_ADAPTER_INFO;

PIP_PER_ADAPTER_INFO = ^IP_PER_ADAPTER_INFO;

IP_PER_ADAPTER_INFO = record

AutoconfigEnabled: UINT;  
AutoconfigActive: UINT;  
CurrentDnsServer: PIP_ADDR_STRING;  
DnsServerList: IP_ADDR_STRING;  

Fixed information

TFixedInfo = FIXED_INFO;

PFixedInfo = PFIXED_INFO;

PFIXED_INFO = ^FIXED_INFO;

FIXED_INFO = record

HostName: array [0..MAX_HOSTNAME_LEN + 3] of Char;  
DomainName: array[0..MAX_DOMAIN_NAME_LEN + 3] of Char;  
CurrentDnsServer: PIP_ADDR_STRING;  
DnsServerList: IP_ADDR_STRING;  
NodeType: UINT;  
ScopeId: array [0..MAX_SCOPE_ID_LEN + 3] of Char;  
EnableRouting: UINT;  
EnableProxy: UINT;  
EnableDns: UINT;  


Public variables


None defined

Function declarations



Initialization functions

function IPHelperStart:Boolean;
Description: Initialize and start the Winsock2 provider
Note Only called internally by IP Helper functions


function IPHelperStop:Boolean;
Description: Terminate and stop the Winsock2 provider
Note Only called internally by IP Helper functions


Helper functions

function IPHelperConvertError(Status:Integer):DWORD;
Description: Convert a Winsock2 error to an error code
Note None documented


IP helper functions

function GetNumberOfInterfaces(var pdwNumIf: DWORD): DWORD;
Description: Retrieve the number of interfaces on the local computer
Note See the Windows IP Helper documentation for additional information


function GetIfEntry(pIfRow: PMIB_IFROW): DWORD;
Description: Retrieve information for the specified interface on the local computer
Note See the Windows IP Helper documentation for additional information


function GetIfTable(pIfTable: PMIB_IFTABLE; var pdwSize: DWORD; bOrder: BOOL): DWORD;
Description: Retrieve the MIB-II interface table
Note See the Windows IP Helper documentation for additional information


function GetIpAddrTable(pIpAddrTable: PMIB_IPADDRTABLE; var pdwSize: DWORD; bOrder: BOOL): DWORD;
Description: Retrieve the interface to IPv4 address mapping table
Note See the Windows IP Helper documentation for additional information


function GetIpNetTable(pIpNetTable: PMIB_IPNETTABLE; var pdwSize: DWORD; bOrder: BOOL): DWORD;
Description: Retrieve the IPv4 to physical address mapping table
Note See the Windows IP Helper documentation for additional information


function GetIpForwardTable(pIpForwardTable: PMIB_IPFORWARDTABLE; var pdwSize: DWORD; bOrder: BOOL): DWORD;
Description: Retrieve the IPv4 routing table
Note See the Windows IP Helper documentation for additional information


function GetTcpTable(pTcpTable: PMIB_TCPTABLE; var pdwSize: DWORD; bOrder: BOOL): DWORD;
Description: Retrieve the IPv4 TCP connection table
Note See the Windows IP Helper documentation for additional information


function GetUdpTable(pUdpTable: PMIB_UDPTABLE; var pdwSize: DWORD; bOrder: BOOL): DWORD;
Description: Retrieve the IPv4 User Datagram Protocol (UDP) listener table
Note See the Windows IP Helper documentation for additional information


function GetIpStatistics(var pStats: MIB_IPSTATS): DWORD;
Description: Retrieve the IP statistics for the current computer
Note See the Windows IP Helper documentation for additional information


function GetIcmpStatistics(var pStats: MIB_ICMP): DWORD;
Description: Retrieve the Internet Control Message Protocol (ICMP) for IPv4 statistics for the local computer
Note See the Windows IP Helper documentation for additional information


function GetTcpStatistics(var pStats: MIB_TCPSTATS): DWORD;
Description: Retrieve the TCP statistics for the local computer
Note See the Windows IP Helper documentation for additional information


function GetUdpStatistics(var pStats: MIB_UDPSTATS): DWORD;
Description: Retrieve the User Datagram Protocol (UDP) statistics for the local computer
Note See the Windows IP Helper documentation for additional information


function SetIfEntry(const pIfRow: MIB_IFROW): DWORD;
Description: Set the administrative status of an interface
Note See the Windows IP Helper documentation for additional information


function CreateIpForwardEntry(const pRoute: MIB_IPFORWARDROW): DWORD;
Description: Create a route in the local computer's IPv4 routing table
Note See the Windows IP Helper documentation for additional information


function SetIpForwardEntry(const pRoute: MIB_IPFORWARDROW): DWORD;
Description: Modify an existing route in the local computer's IPv4 routing table
Note See the Windows IP Helper documentation for additional information


function DeleteIpForwardEntry(const pRoute: MIB_IPFORWARDROW): DWORD;
Description: Delete an existing route in the local computer's IPv4 routing table
Note See the Windows IP Helper documentation for additional information


function SetIpStatistics(const pIpStats: MIB_IPSTATS): DWORD;
Description: Toggle IP forwarding on or off and set the default time-to-live (TTL) value for the local computer
Note See the Windows IP Helper documentation for additional information


function SetIpTTL(nTTL: UINT): DWORD;
Description: Set the default time-to-live (TTL) value for the local computer
Note See the Windows IP Helper documentation for additional information


function CreateIpNetEntry(const pArpEntry: MIB_IPNETROW): DWORD;
Description: Create an Address Resolution Protocol (ARP) entry in the ARP table on the local computer
Note See the Windows IP Helper documentation for additional information


function SetIpNetEntry(const pArpEntry: MIB_IPNETROW): DWORD;
Description: Modify an existing ARP entry in the ARP table on the local computer
Note See the Windows IP Helper documentation for additional information


function DeleteIpNetEntry(const pArpEntry: MIB_IPNETROW): DWORD;
Description: Delete an ARP entry from the ARP table on the local computer
Note See the Windows IP Helper documentation for additional information


function FlushIpNetTable(dwIfIndex: DWORD): DWORD;
Description: Delete all ARP entries for the specified interface from the ARP table on the local computer
Note See the Windows IP Helper documentation for additional information


function CreateProxyArpEntry(dwAddress, dwMask, dwIfIndex: DWORD): DWORD;
Description: Create a Proxy Address Resolution Protocol (PARP) entry on the local computer for the specified IPv4 address
Note See the Windows IP Helper documentation for additional information


function DeleteProxyArpEntry(dwAddress, dwMask, dwIfIndex: DWORD): DWORD;
Description: Delete the PARP entry on the local computer specified by the dwAddress and dwIfIndex parameters
Note See the Windows IP Helper documentation for additional information


function SetTcpEntry(const pTcpRow: MIB_TCPROW): DWORD;
Description: Set the state of a TCP connection
Note See the Windows IP Helper documentation for additional information


function GetInterfaceInfo(pIfTable: PIP_INTERFACE_INFO; var dwOutBufLen: DWORD): DWORD;
Description: Obtain the list of the network interface adapters with IPv4 enabled on the local system
Note See the Windows IP Helper documentation for additional information


function GetUniDirectionalAdapterInfo(pIPIfInfo: PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS; var dwOutBufLen: DWORD): DWORD;
Description: Retrieve information about the unidirectional adapters installed on the local computer
Note See the Windows IP Helper documentation for additional information


function GetBestInterface(dwDestAddr: IPAddr; var pdwBestIfIndex: DWORD): DWORD;
Description: Retrieve the index of the interface that has the best route to the specified IPv4 address
Note See the Windows IP Helper documentation for additional information


function GetBestRoute(dwDestAddr, dwSourceAddr: DWORD; pBestRoute: PMIB_IPFORWARDROW): DWORD;
Description: Retrieve the best route to the specified destination IP address
Note See the Windows IP Helper documentation for additional information


function NotifyAddrChange(var Handle: THandle; overlapped: POVERLAPPED): DWORD;
Description: Cause a notification to be sent to the caller whenever a change occurs in the table that maps IPv4 addresses to interfaces
Note See the Windows IP Helper documentation for additional information


function NotifyRouteChange(var Handle: THandle; overlapped: POVERLAPPED): DWORD;
Description: Cause a notification to be sent to the caller whenever a change occurs in the IPv4 routing table
Note See the Windows IP Helper documentation for additional information


function GetAdapterIndex(AdapterName: LPWSTR; var IfIndex: DWORD): DWORD;
Description: Obtain the index of an adapter, given its name
Note See the Windows IP Helper documentation for additional information


function AddIPAddress(Address: IPAddr; IpMask: IPMask; IfIndex: DWORD; var NTEContext, NTEInstance: DWORD): DWORD;
Description: Add the specified IPv4 address to the specified adapter
Note See the Windows IP Helper documentation for additional information


function DeleteIPAddress(NTEContext: DWORD): DWORD;
Description: Delete an IP address previously added using AddIPAddress
Note See the Windows IP Helper documentation for additional information


function GetNetworkParams(pFixedInfo: PFIXED_INFO; var pOutBufLen: DWORD): DWORD;
Description: Retrieve network parameters for the local computer
Note See the Windows IP Helper documentation for additional information


function GetAdaptersInfo(pAdapterInfo: PIP_ADAPTER_INFO; var pOutBufLen: DWORD): DWORD;
Description: Retrieve adapter information for the local computer
Note See the Windows IP Helper documentation for additional information


function GetPerAdapterInfo(IfIndex: DWORD; pPerAdapterInfo: PIP_PER_ADAPTER_INFO; var pOutBufLen: DWORD): DWORD;
Description: Retrieve information about the adapter corresponding to the specified interface
Note See the Windows IP Helper documentation for additional information


function IpReleaseAddress(const AdapterInfo: IP_ADAPTER_INDEX_MAP): DWORD;
Description: Release an IPv4 address previously obtained through the Dynamic Host Configuration Protocol (DHCP)
Note See the Windows IP Helper documentation for additional information


function IpRenewAddress(const AdapterInfo: IP_ADAPTER_INDEX_MAP): DWORD;
Description: Renew a lease on an IPv4 address previously obtained through Dynamic Host Configuration Protocol (DHCP)
Note See the Windows IP Helper documentation for additional information


function SendARP(const DestIP, SrcIP: IPAddr; pMacAddr: PDWORD; var PhyAddrLen: DWORD): DWORD;
Description: Sends an Address Resolution Protocol (ARP) request to obtain the physical address that corresponds to the specified destination IPv4 address
Note See the Windows IP Helper documentation for additional information


function GetRTTAndHopCount(DestIpAddress: IPAddr; var HopCount: DWORD; MaxHops: DWORD; var RTT: DWORD): BOOL;
Description: Determine the round-trip time (RTT) and hop count to the specified destination
Note See the Windows IP Helper documentation for additional information


function GetFriendlyIfIndex(IfIndex: DWORD): DWORD;
Description: Take an interface index and return a backward-compatible interface index
Note See the Windows IP Helper documentation for additional information


function EnableRouter(var pHandle: THandle; pOverlapped: POVERLAPPED): DWORD;
Description: Turn on IPv4 forwarding on the local computer
Note See the Windows IP Helper documentation for additional information


function UnenableRouter(pOverlapped: POVERLAPPED; lpdwEnableCount: LPDWORD): DWORD;
Description: Turn off IPv4 forwarding on the local computer
Note See the Windows IP Helper documentation for additional information


IP helper helper functions

function MIBIFOperStatusToString(AValue:DWORD):String;
Description: To be documented
Note None documented


function MIBIFTypeToString(AValue:DWORD):String;
Description: To be documented
Note None documented


function MIBIFAdminStatusToString(AValue:DWORD):String;
Description: To be documented
Note None documented


function MIBTCPRTOToString(AValue:DWORD):String;
Description: To be documented
Note None documented


function MIBTCPStateToString(AValue:DWORD):String;
Description: To be documented
Note None documented


function MIBIPForwardingToString(AValue:DWORD):String;
Description: To be documented
Note None documented


function MIBIPRouteTypeToString(AValue:DWORD):String;
Description: To be documented
Note None documented


function MIBIPProtoToString(AValue:DWORD):String;
Description: To be documented
Note None documented


function MIBIPNetTypeToString(AValue:DWORD):String;
Description: To be documented
Note None documented


Return to Unit Reference