Difference between revisions of "Unit IPHlpAPI"

From Ultibo.org
Jump to: navigation, search
 
(19 intermediate revisions by the same user not shown)
Line 5: Line 5:
 
----
 
----
  
''To be documented''
+
'''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 ===
 
=== Constants ===
 
----
 
----
  
''To be documented''
+
 
 +
<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;">'''IP helper specific constants''' <code> MAX_ADAPTER_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>MAX_INTERFACE_NAME_LEN = 256;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>IPRTRMGR_PID = 10000;</code>
 +
| &nbsp;
 +
|-
 +
| <code>ANY_SIZE = 1;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>MAX_ADAPTER_NAME = 128;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>MAX_ADAPTER_DESCRIPTION_LENGTH = 128;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MAX_ADAPTER_NAME_LENGTH = 256;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MAX_ADAPTER_ADDRESS_LENGTH = 8;</code>
 +
| &nbsp;
 +
|-
 +
| <code>DEFAULT_MINIMUM_ENTITIES = 32;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MAX_HOSTNAME_LEN = 128;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MAX_DOMAIN_NAME_LEN = 128;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MAX_SCOPE_ID_LEN = 256;</code>
 +
| &nbsp;
 +
|-
 +
|colspan="2"|&nbsp;
 +
|-
 +
| <code>MAXLEN_IFDESCR = 256;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MAXLEN_PHYSADDR = 8;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br /> 
 +
<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''' <code> MIB_IF_OPER_STATUS_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>MIB_IF_OPER_STATUS_NON_OPERATIONAL = 0;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>MIB_IF_OPER_STATUS_UNREACHABLE = 1;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IF_OPER_STATUS_DISCONNECTED = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IF_OPER_STATUS_CONNECTING = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IF_OPER_STATUS_CONNECTED = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IF_OPER_STATUS_OPERATIONAL = 5;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br /> 
 +
<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''' <code> MIB_IF_TYPE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>MIB_IF_TYPE_OTHER = 1;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>MIB_IF_TYPE_ETHERNET = 6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IF_TYPE_TOKENRING = 9;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IF_TYPE_FDDI = 15;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IF_TYPE_PPP = 23;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IF_TYPE_LOOPBACK = 24;</code>
 +
| &nbsp;
 +
|-
 +
| <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;
 +
|-
 +
|}
 +
</div></div>
 +
<br /> 
 +
<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''' <code> MIB_IF_ADMIN_STATUS_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>MIB_IF_ADMIN_STATUS_UP = 1;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>MIB_IF_ADMIN_STATUS_DOWN = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IF_ADMIN_STATUS_TESTING = 3;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br /> 
 +
<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''' <code> MIB_TCP_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>MIB_TCP_RTO_OTHER = 1;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>MIB_TCP_RTO_CONSTANT = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_TCP_RTO_RSRE = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_TCP_RTO_VANJ = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_TCP_MAXCONN_DYNAMIC = DWORD(-1);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br /> 
 +
<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''' <code> MIB_TCP_STATE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>MIB_TCP_STATE_CLOSED = 1;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>MIB_TCP_STATE_LISTEN = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_TCP_STATE_SYN_SENT = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_TCP_STATE_SYN_RCVD = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_TCP_STATE_ESTAB = 5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_TCP_STATE_FIN_WAIT1 = 6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_TCP_STATE_FIN_WAIT2 = 7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_TCP_STATE_CLOSE_WAIT = 8;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_TCP_STATE_CLOSING = 9;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_TCP_STATE_LAST_ACK = 10;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_TCP_STATE_TIME_WAIT = 11;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_TCP_STATE_DELETE_TCB = 12;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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''' <code> MIB_USE_CURRENT_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>MIB_USE_CURRENT_TTL = DWORD(-1);</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>MIB_USE_CURRENT_FORWARDING = DWORD(-1);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br /> 
 +
<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''' <code> MIB_IP_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>MIB_IP_FORWARDING = 1;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>MIB_IP_NOT_FORWARDING = 2;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br /> 
 +
<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''' <code> MIB_IPROUTE_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>MIB_IPROUTE_TYPE_OTHER = 1;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>MIB_IPROUTE_TYPE_INVALID = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IPROUTE_TYPE_DIRECT = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IPROUTE_TYPE_INDIRECT = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IPROUTE_METRIC_UNUSED = DWORD(-1);</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br /> 
 +
<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''' <code> MIB_IPPROTO_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>MIB_IPPROTO_OTHER = 1;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>MIB_IPPROTO_LOCAL = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IPPROTO_NETMGMT = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IPPROTO_ICMP = 4;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IPPROTO_EGP = 5;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IPPROTO_GGP = 6;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IPPROTO_HELLO = 7;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IPPROTO_RIP = 8;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IPPROTO_IS_IS = 9;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IPPROTO_ES_IS = 10;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IPPROTO_CISCO = 11;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IPPROTO_BBN = 12;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IPPROTO_OSPF = 13;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IPPROTO_BGP = 14;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IPPROTO_NT_AUTOSTATIC = 10002;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IPPROTO_NT_STATIC = 10006;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IPPROTO_NT_STATIC_NON_DOD = 10007;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br /> 
 +
<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''' <code> MIB_IPNET_* </code></div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>MIB_IPNET_TYPE_OTHER = 1;</code>
 +
| style="width: 50%;"|&nbsp;
 +
|-
 +
| <code>MIB_IPNET_TYPE_INVALID = 2;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IPNET_TYPE_DYNAMIC = 3;</code>
 +
| &nbsp;
 +
|-
 +
| <code>MIB_IPNET_TYPE_STATIC = 4;</code>
 +
| &nbsp;
 +
|-
 +
|}
 +
</div></div>
 +
<br />
  
 
=== Type definitions ===
 
=== Type definitions ===
 
----
 
----
  
''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 34: Line 1,441:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
| To be documented
+
| None documented
 
|-
 
|-
 
|}
 
|}
Line 46: Line 1,453:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
| To be documented
+
| None documented
 
|-
 
|-
 
|}
 
|}
Line 58: Line 1,465:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
| To be documented
+
| None documented
 
|-
 
|-
 
|}
 
|}
Line 70: Line 1,477:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
| To be documented
+
| None documented
 
|-
 
|-
 
|}
 
|}
Line 82: Line 1,489:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
| To be documented
+
| None documented
 
|-
 
|-
 
|}
 
|}
Line 94: Line 1,501:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
| To be documented
+
| None documented
 +
|-
 +
|}
 +
</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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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>
 +
<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;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| None documented
 +
|-
 +
|}
 +
</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 CreateIpForwardEntry(const pRoute: MIB_IPFORWARDROW): DWORD;</pre>
 +
<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;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| None documented
 +
|-
 +
|}
 +
</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 SetIpForwardEntry(const pRoute: MIB_IPFORWARDROW): DWORD;</pre>
 +
<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;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| None documented
 +
|-
 +
|}
 +
</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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 />
 +
<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:''' To be documented</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 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 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 />
 +
<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 MIBIFTypeToString(AValue:DWORD):String;</pre>
 +
<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;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| None documented
 +
|-
 +
|}
 +
</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 MIBIFAdminStatusToString(AValue:DWORD):String;</pre>
 +
<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;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| None documented
 +
|-
 +
|}
 +
</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 MIBTCPRTOToString(AValue:DWORD):String;</pre>
 +
<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;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| None documented
 +
|-
 +
|}
 +
</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 MIBTCPStateToString(AValue:DWORD):String;</pre>
 +
<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;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| None documented
 +
|-
 +
|}
 +
</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 MIBIPForwardingToString(AValue:DWORD):String;</pre>
 +
<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;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| None documented
 +
|-
 +
|}
 +
</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 MIBIPRouteTypeToString(AValue:DWORD):String;</pre>
 +
<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;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| None documented
 +
|-
 +
|}
 +
</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 MIBIPProtoToString(AValue:DWORD):String;</pre>
 +
<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;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| None documented
 +
|-
 +
|}
 +
</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 MIBIPNetTypeToString(AValue:DWORD):String;</pre>
 +
<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;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 +
| None documented
 
|-
 
|-
 
|}
 
|}

Latest revision as of 23:53, 10 January 2024

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



[Expand]
IP helper specific constants MAX_ADAPTER_*


[Expand]
MIB operation status MIB_IF_OPER_STATUS_*


[Expand]
MIB type MIB_IF_TYPE_*


[Expand]
MIB admin status MIB_IF_ADMIN_STATUS_*


[Expand]
MIB TCP MIB_TCP_*


[Expand]
MIB TCP state MIB_TCP_STATE_*


[Expand]
MIB current MIB_USE_CURRENT_*


[Expand]
MIB IP MIB_IP_*


[Expand]
MIB IP route type MIB_IPROUTE_*


[Expand]
MIB IP protocol MIB_IPPROTO_*


[Expand]
MIB IP network type MIB_IPNET_*


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

[Expand]

TMibIfnumber = MIB_IFNUMBER;

PMibIfnumber = PMIB_IFNUMBER;

PMIB_IFNUMBER = ^MIB_IFNUMBER;

MIB_IFNUMBER = record

MIB if row

[Expand]

TMibIfRow = MIB_IFROW;

PMibIfRow = PMIB_IFROW;

PMIB_IFROW = ^MIB_IFROW;

MIB_IFROW = record

MIB if table

[Expand]

TMibIftable = MIB_IFTABLE;

PMibIftable = PMIB_IFTABLE;

PMIB_IFTABLE = ^MIB_IFTABLE;

MIB_IFTABLE = record

MIB ICMP statistics

[Expand]

TMibIcmpStats = MIBICMPSTATS;

PMibIcmpStats = ^TMibIcmpStats;

MIBICMPSTATS = record

MIB ICMP information

[Expand]

TMibIcmpInfo = MIBICMPINFO;

PMibIcmpInfo = ^TMibIcmpInfo;

MIBICMPINFO = record

MIB ICMP

[Expand]

TMibIcmp = MIB_ICMP;

PMibIcmp = PMIB_ICMP;

PMIB_ICMP = ^MIB_ICMP;

MIB_ICMP = record

MIB UDP statistics

[Expand]

TMibUdpStats = MIB_UDPSTATS;

PMibUdpStats = PMIB_UDPSTATS;

PMIB_UDPSTATS = ^MIB_UDPSTATS;

MIB_UDPSTATS = record

MIB UDP row

[Expand]

TMibUdpRow = MIB_UDPROW;

PMibUdpRow = PMIB_UDPROW;

PMIB_UDPROW = ^MIB_UDPROW;

MIB_UDPROW = record

MIB UDP table

[Expand]

TMibUdpTable = MIB_UDPTABLE;

PMibUdpTable = PMIB_UDPTABLE;

PMIB_UDPTABLE = ^MIB_UDPTABLE;

MIB_UDPTABLE = record

MIB TCP statistics

[Expand]

TMibTcpStats = MIB_TCPSTATS;

PMibTcpStats = PMIB_TCPSTATS;

PMIB_TCPSTATS = ^MIB_TCPSTATS;

MIB_TCPSTATS = record

MIB TCP row

[Expand]

TMibTcpRow = MIB_TCPROW;

PMibTcpRow = PMIB_TCPROW;

PMIB_TCPROW = ^MIB_TCPROW;

MIB_TCPROW = record

MIB TCP table

[Expand]

TMibTcpTable = MIB_TCPTABLE;

PMibTcpTable = PMIB_TCPTABLE;

PMIB_TCPTABLE = ^MIB_TCPTABLE;

MIB_TCPTABLE = record

MIB IP statistics

[Expand]

TMibIpStats = MIB_IPSTATS;

PMibIpStats = PMIB_IPSTATS;

PMIB_IPSTATS = ^MIB_IPSTATS;

MIB_IPSTATS = record

MIB IP address row

[Expand]

TMibIpAddrRow = MIB_IPADDRROW;

PMibIpAddrRow = PMIB_IPADDRROW;

PMIB_IPADDRROW = ^MIB_IPADDRROW;

MIB_IPADDRROW = record

MIB IP address table

[Expand]

TMibIpAddrTable = MIB_IPADDRTABLE;

PMibIpAddrTable = PMIB_IPADDRTABLE;

PMIB_IPADDRTABLE = ^MIB_IPADDRTABLE;

MIB_IPADDRTABLE = record

MIB IP forward number

[Expand]

TMibIpForwardNumber = MIB_IPFORWARDNUMBER;

PMibIpForwardNumber = PMIB_IPFORWARDNUMBER;

PMIB_IPFORWARDNUMBER = ^MIB_IPFORWARDNUMBER;

MIB_IPFORWARDNUMBER = record

MIB IP forward row

[Expand]

TMibIpForwardRow = MIB_IPFORWARDROW;

PMibIpForwardRow = PMIB_IPFORWARDROW;

PMIB_IPFORWARDROW = ^MIB_IPFORWARDROW;

MIB_IPFORWARDROW = record

MIB IP forward table

[Expand]

TMibIpForwardTable = MIB_IPFORWARDTABLE;

PMibIpForwardTable = PMIB_IPFORWARDTABLE;

PMIB_IPFORWARDTABLE = ^MIB_IPFORWARDTABLE;

MIB_IPFORWARDTABLE = record

MIB IP net row

[Expand]

TMibIpNetRow = MIB_IPNETROW;

PMibIpNetRow = PMIB_IPNETROW;

PMIB_IPNETROW = ^MIB_IPNETROW;

MIB_IPNETROW = record

MIB IP net table

[Expand]

TMibIpNetTable = MIB_IPNETTABLE;

PMibIpNetTable = PMIB_IPNETTABLE;

PMIB_IPNETTABLE = ^MIB_IPNETTABLE;

MIB_IPNETTABLE = record

IP adapter index map

[Expand]

TIpAdapterIndexMap = IP_ADAPTER_INDEX_MAP;

PIpAdapterIndexMap = PIP_ADAPTER_INDEX_MAP;

PIP_ADAPTER_INDEX_MAP = ^IP_ADAPTER_INDEX_MAP;

IP_ADAPTER_INDEX_MAP = record

IP interface info

[Expand]

TIpInterfaceInfo = IP_INTERFACE_INFO;

PIpInterfaceInfo = PIP_INTERFACE_INFO;

PIP_INTERFACE_INFO = ^IP_INTERFACE_INFO;

IP_INTERFACE_INFO = record

IP unidirectional adapter address

[Expand]

TIpUnidirectionalAdapterAddress = IP_UNIDIRECTIONAL_ADAPTER_ADDRESS;

PIpUnidirectionalAdapterAddress = PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS;

PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS = ^IP_UNIDIRECTIONAL_ADAPTER_ADDRESS;

IP_UNIDIRECTIONAL_ADAPTER_ADDRESS = record

IP address string

[Expand]

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

IP addr string

[Expand]

TIpAddrString = IP_ADDR_STRING;

PIpAddrString = PIP_ADDR_STRING;

PIP_ADDR_STRING = ^IP_ADDR_STRING;

IP_ADDR_STRING = record

IP adapter information

[Expand]

TIpAdapterInfo = IP_ADAPTER_INFO;

PIpAdapterInfo = PIP_ADAPTER_INFO;

PIP_ADAPTER_INFO = ^IP_ADAPTER_INFO;

IP_ADAPTER_INFO = record

IP per adapter information

[Expand]

TIpPerAdapterInfo = IP_PER_ADAPTER_INFO;

PIpPerAdapterInfo = PIP_PER_ADAPTER_INFO;

PIP_PER_ADAPTER_INFO = ^IP_PER_ADAPTER_INFO;

IP_PER_ADAPTER_INFO = record

Fixed information

[Expand]

TFixedInfo = FIXED_INFO;

PFixedInfo = PFIXED_INFO;

PFIXED_INFO = ^FIXED_INFO;

FIXED_INFO = record


Public variables


None defined

Function declarations



Initialization functions

[Expand]
function IPHelperStart:Boolean;
Description: Initialize and start the Winsock2 provider


[Expand]
function IPHelperStop:Boolean;
Description: Terminate and stop the Winsock2 provider


Helper functions

[Expand]
function IPHelperConvertError(Status:Integer):DWORD;
Description: Convert a Winsock2 error to an error code


IP helper functions

[Expand]
function GetNumberOfInterfaces(var pdwNumIf: DWORD): DWORD;
Description: To be documented


[Expand]
function GetIfEntry(pIfRow: PMIB_IFROW): DWORD;
Description: To be documented


[Expand]
function GetIfTable(pIfTable: PMIB_IFTABLE; var pdwSize: DWORD; bOrder: BOOL): DWORD;
Description: To be documented


[Expand]
function GetIpAddrTable(pIpAddrTable: PMIB_IPADDRTABLE; var pdwSize: DWORD; bOrder: BOOL): DWORD;
Description: To be documented


[Expand]
function GetIpNetTable(pIpNetTable: PMIB_IPNETTABLE; var pdwSize: DWORD; bOrder: BOOL): DWORD;
Description: To be documented


[Expand]
function GetIpForwardTable(pIpForwardTable: PMIB_IPFORWARDTABLE; var pdwSize: DWORD; bOrder: BOOL): DWORD;
Description: To be documented


[Expand]
function GetTcpTable(pTcpTable: PMIB_TCPTABLE; var pdwSize: DWORD; bOrder: BOOL): DWORD;
Description: To be documented


[Expand]
function GetUdpTable(pUdpTable: PMIB_UDPTABLE; var pdwSize: DWORD; bOrder: BOOL): DWORD;
Description: To be documented


[Expand]
function GetIpStatistics(var pStats: MIB_IPSTATS): DWORD;
Description: To be documented


[Expand]
function GetIcmpStatistics(var pStats: MIB_ICMP): DWORD;
Description: To be documented


[Expand]
function GetTcpStatistics(var pStats: MIB_TCPSTATS): DWORD;
Description: To be documented


[Expand]
function GetUdpStatistics(var pStats: MIB_UDPSTATS): DWORD;
Description: To be documented


[Expand]
function SetIfEntry(const pIfRow: MIB_IFROW): DWORD;
Description: To be documented


[Expand]
function CreateIpForwardEntry(const pRoute: MIB_IPFORWARDROW): DWORD;
Description: To be documented


[Expand]
function SetIpForwardEntry(const pRoute: MIB_IPFORWARDROW): DWORD;
Description: To be documented


[Expand]
function DeleteIpForwardEntry(const pRoute: MIB_IPFORWARDROW): DWORD;
Description: To be documented


[Expand]
function SetIpStatistics(const pIpStats: MIB_IPSTATS): DWORD;
Description: To be documented


[Expand]
function SetIpTTL(nTTL: UINT): DWORD;
Description: To be documented


[Expand]
function CreateIpNetEntry(const pArpEntry: MIB_IPNETROW): DWORD;
Description: To be documented


[Expand]
function SetIpNetEntry(const pArpEntry: MIB_IPNETROW): DWORD;
Description: To be documented


[Expand]
function DeleteIpNetEntry(const pArpEntry: MIB_IPNETROW): DWORD;
Description: To be documented


[Expand]
function FlushIpNetTable(dwIfIndex: DWORD): DWORD;
Description: To be documented


[Expand]
function CreateProxyArpEntry(dwAddress, dwMask, dwIfIndex: DWORD): DWORD;
Description: To be documented


[Expand]
function DeleteProxyArpEntry(dwAddress, dwMask, dwIfIndex: DWORD): DWORD;
Description: To be documented


[Expand]
function SetTcpEntry(const pTcpRow: MIB_TCPROW): DWORD;
Description: To be documented


[Expand]
function GetInterfaceInfo(pIfTable: PIP_INTERFACE_INFO; var dwOutBufLen: DWORD): DWORD;
Description: To be documented


[Expand]
function GetUniDirectionalAdapterInfo(pIPIfInfo: PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS; var dwOutBufLen: DWORD): DWORD;
Description: To be documented


[Expand]
function GetBestInterface(dwDestAddr: IPAddr; var pdwBestIfIndex: DWORD): DWORD;
Description: To be documented


[Expand]
function GetBestRoute(dwDestAddr, dwSourceAddr: DWORD; pBestRoute: PMIB_IPFORWARDROW): DWORD;
Description: To be documented


[Expand]
function NotifyAddrChange(var Handle: THandle; overlapped: POVERLAPPED): DWORD;
Description: To be documented


[Expand]
function NotifyRouteChange(var Handle: THandle; overlapped: POVERLAPPED): DWORD;
Description: To be documented


[Expand]
function GetAdapterIndex(AdapterName: LPWSTR; var IfIndex: DWORD): DWORD;
Description: To be documented


[Expand]
function AddIPAddress(Address: IPAddr; IpMask: IPMask; IfIndex: DWORD; var NTEContext, NTEInstance: DWORD): DWORD;
Description: To be documented


[Expand]
function DeleteIPAddress(NTEContext: DWORD): DWORD;
Description: To be documented


[Expand]
function GetNetworkParams(pFixedInfo: PFIXED_INFO; var pOutBufLen: DWORD): DWORD;
Description: To be documented


[Expand]
function GetAdaptersInfo(pAdapterInfo: PIP_ADAPTER_INFO; var pOutBufLen: DWORD): DWORD;
Description: To be documented


[Expand]
function GetPerAdapterInfo(IfIndex: DWORD; pPerAdapterInfo: PIP_PER_ADAPTER_INFO; var pOutBufLen: DWORD): DWORD;
Description: To be documented


[Expand]
function IpReleaseAddress(const AdapterInfo: IP_ADAPTER_INDEX_MAP): DWORD;
Description: To be documented


[Expand]
function IpRenewAddress(const AdapterInfo: IP_ADAPTER_INDEX_MAP): DWORD;
Description: To be documented


[Expand]
function SendARP(const DestIP, SrcIP: IPAddr; pMacAddr: PDWORD; var PhyAddrLen: DWORD): DWORD;
Description: To be documented


[Expand]
function GetRTTAndHopCount(DestIpAddress: IPAddr; var HopCount: DWORD; MaxHops: DWORD; var RTT: DWORD): BOOL;
Description: To be documented


[Expand]
function GetFriendlyIfIndex(IfIndex: DWORD): DWORD;
Description: To be documented


[Expand]
function EnableRouter(var pHandle: THandle; pOverlapped: POVERLAPPED): DWORD;
Description: To be documented


[Expand]
function UnenableRouter(pOverlapped: POVERLAPPED; lpdwEnableCount: LPDWORD): DWORD;
Description: To be documented


IP helper helper functions

[Expand]
function MIBIFOperStatusToString(AValue:DWORD):String;
Description: To be documented


[Expand]
function MIBIFTypeToString(AValue:DWORD):String;
Description: To be documented


[Expand]
function MIBIFAdminStatusToString(AValue:DWORD):String;
Description: To be documented


[Expand]
function MIBTCPRTOToString(AValue:DWORD):String;
Description: To be documented


[Expand]
function MIBTCPStateToString(AValue:DWORD):String;
Description: To be documented


[Expand]
function MIBIPForwardingToString(AValue:DWORD):String;
Description: To be documented


[Expand]
function MIBIPRouteTypeToString(AValue:DWORD):String;
Description: To be documented


[Expand]
function MIBIPProtoToString(AValue:DWORD):String;
Description: To be documented


[Expand]
function MIBIPNetTypeToString(AValue:DWORD):String;
Description: To be documented


Return to Unit Reference