Difference between revisions of "Unit GlobalSock"
(21 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
---- | ---- | ||
− | '''Ultibo Global Socket Definitions' | + | '''Ultibo Global Socket Definitions unit''' |
− | + | ||
− | + | ||
=== Constants === | === Constants === | ||
Line 131: | Line 129: | ||
|colspan="2"|''Maximum queue length specifiable by listen'' | |colspan="2"|''Maximum queue length specifiable by listen'' | ||
|- | |- | ||
− | | <code>SOMAXCONN = | + | | <code>SOMAXCONN = $7fffffff;</code> |
| | | | ||
|- | |- | ||
Line 192: | Line 190: | ||
| | | | ||
|- | |- | ||
− | | <code> | + | | <code>INET6_ADDRSTR_ANY = '::';</code> |
| | | | ||
|- | |- | ||
Line 212: | Line 210: | ||
<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;">'''IP protocol | + | <div style="font-size: 14px; padding-left: 12px;">'''IP protocol''' <code> 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 288: | Line 286: | ||
<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;">'''IP port | + | <div style="font-size: 14px; padding-left: 12px;">'''IP port''' <code> IPPORT_* </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 318: | Line 316: | ||
| | | | ||
|- | |- | ||
− | | <code>IPPORT_SMTP = | + | | <code>IPPORT_SMTP = 25;</code> |
| | | | ||
|- | |- | ||
Line 401: | Line 399: | ||
<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;">'''IP options | + | <div style="font-size: 14px; padding-left: 12px;">'''IP options''' <code> 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 454: | Line 452: | ||
<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;">'''Socket type | + | <div style="font-size: 14px; padding-left: 12px;">'''Socket type''' <code> SOCK_* </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 483: | Line 481: | ||
<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;">'''Socket | + | <div style="font-size: 14px; padding-left: 12px;">'''Socket options''' <code> SO_* </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 517: | Line 515: | ||
| <code>SO_OOBINLINE = $0100;</code> | | <code>SO_OOBINLINE = $0100;</code> | ||
| leave received OOB data in line | | leave received OOB data in line | ||
+ | |- | ||
+ | | <code>SO_REUSEPORT = $0200;</code> | ||
+ | | allow local address & port reuse | ||
+ | |- | ||
+ | | <code>SO_TIMESTAMP = $0400;</code> | ||
+ | | timestamp received dgram traffic | ||
+ | |- | ||
+ | | <code>SO_ACCEPTFILTER = $1000;</code> | ||
+ | | there is an accept filter | ||
|- | |- | ||
|colspan="2"| | |colspan="2"| | ||
|- | |- | ||
− | | <code>SO_DONTLINGER = $ff7f;</code> | + | | <code>SO_DONTLINGER = not(SO_LINGER);</code> |
− | | | + | | ($ff7f) |
+ | |- | ||
+ | | <code>SO_EXCLUSIVEADDRUSE = not(SO_REUSEADDR);</code> | ||
+ | | disallow local address reuse ($fffb) | ||
|- | |- | ||
|colspan="2"| | |colspan="2"| | ||
Line 615: | Line 625: | ||
<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;">'''TCP | + | <div style="font-size: 14px; padding-left: 12px;">'''TCP options''' <code> 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 646: | Line 656: | ||
<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;">'''UDP | + | <div style="font-size: 14px; padding-left: 12px;">'''UDP options''' <code> UDP_* </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 657: | Line 667: | ||
<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;">'''Address family | + | <div style="font-size: 14px; padding-left: 12px;">'''Address family''' <code> AF_* </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 678: | Line 688: | ||
| <code>AF_CHAOS = 5;</code> | | <code>AF_CHAOS = 5;</code> | ||
| mit CHAOS protocols | | mit CHAOS protocols | ||
− | |||
− | |||
− | |||
|- | |- | ||
| <code>AF_NS = 6;</code> | | <code>AF_NS = 6;</code> | ||
| XEROX NS protocols | | XEROX NS protocols | ||
+ | |- | ||
+ | | <code>AF_IPX = AF_NS;</code> | ||
+ | | IPX and SPX | ||
|- | |- | ||
| <code>AF_ISO = 7;</code> | | <code>AF_ISO = 7;</code> | ||
Line 750: | Line 760: | ||
| <code>AF_NETDES = 28;</code> | | <code>AF_NETDES = 28;</code> | ||
| Network Designers OSI & gateway enabled | | Network Designers OSI & gateway enabled | ||
+ | |- | ||
+ | | <code>AF_TCNPROCESS = 29;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_TCNMESSAGE = 30;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_ICLFXBM = 31;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_BTH = 32;</code> | ||
+ | | Bluetooth RFCOMM/L2CAP protocols | ||
+ | |- | ||
+ | | <code>AF_LINK = 33;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AF_HYPERV = 34;</code> | ||
+ | | | ||
|- | |- | ||
|colspan="2"| | |colspan="2"| | ||
|- | |- | ||
− | | <code>AF_MAX = | + | | <code>AF_MAX = 35;</code> |
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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;">'''Storage structure''' <code> _SS_* </code></div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|Definitions used for sockaddr_storage structure paddings design | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>_SS_MAXSIZE = 128;</code> | ||
+ | | Maximum size | ||
+ | |- | ||
+ | | <code>_SS_ALIGNSIZE = SizeOf(Int64);</code> | ||
+ | | Alignment size | ||
+ | |- | ||
+ | | <code>_SS_PAD1SIZE = _SS_ALIGNSIZE - SizeOf(SHORT);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>_SS_PAD2SIZE = _SS_MAXSIZE - (SizeOf(SHORT) + _SS_PAD1SIZE + _SS_ALIGNSIZE);</code> | ||
| | | | ||
|- | |- | ||
Line 760: | Line 812: | ||
<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;">'''Protocol family | + | <div style="font-size: 14px; padding-left: 12px;">'''Protocol family''' <code> PF_* </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 846: | Line 898: | ||
|- | |- | ||
| <code>PF_NETDES = AF_NETDES;</code> | | <code>PF_NETDES = AF_NETDES;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_TCNPROCESS = AF_TCNPROCESS;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_TCNMESSAGE = AF_TCNMESSAGE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_ICLFXBM = AF_ICLFXBM;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_BTH = AF_BTH;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_LINK = AF_LINK;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PF_HYPERV = AF_HYPERV;</code> | ||
| | | | ||
|- | |- | ||
Line 857: | Line 927: | ||
<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;">'''Message flag | + | <div style="font-size: 14px; padding-left: 12px;">'''Message flag''' <code> MSG_* </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 887: | Line 957: | ||
<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;">'''Socket error | + | <div style="font-size: 14px; padding-left: 12px;">'''Socket error''' <code> WSAE*, EAI_* </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 1,345: | Line 1,415: | ||
|- | |- | ||
| <code>EAI_NODATA = EAI_NONAME;</code> | | <code>EAI_NODATA = EAI_NONAME;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | |colspan="2"|''Error strings from getaddrinfo()'' | ||
+ | |- | ||
+ | | <code>EAI_AGAIN_STR = 'Temporary failure in name resolution';</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EAI_BADFLAGS_STR = 'Invalid parameters';</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EAI_FAIL_STR = 'Nonrecoverable failure in name resolution';</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EAI_FAMILY_STR = 'Address family not supported';</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EAI_MEMORY_STR = 'Memory allocation failure';</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EAI_NONAME_STR = 'Name does not resolve';</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EAI_SERVICE_STR = 'Service not supported';</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EAI_SOCKTYPE_STR = 'Socket type not supported';</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EAI_UNKNOWN_STR = 'Unknown error';</code> | ||
| | | | ||
|- | |- | ||
Line 1,368: | Line 1,469: | ||
<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;">'''WsControlEx | + | <div style="font-size: 14px; padding-left: 12px;">'''WsControlEx options''' <code> WSA_* </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 1,421: | Line 1,522: | ||
|- | |- | ||
| <code>WSA_USE_CURRENT_FORWARDING = DWORD(-1);</code> | | <code>WSA_USE_CURRENT_FORWARDING = DWORD(-1);</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>WSA_IF_OPER_STATUS_NON_OPERATIONAL = 0;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IF_OPER_STATUS_UNREACHABLE = 1;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IF_OPER_STATUS_DISCONNECTED = 2;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IF_OPER_STATUS_CONNECTING = 3;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IF_OPER_STATUS_CONNECTED = 4;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IF_OPER_STATUS_OPERATIONAL = 5;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>WSA_IF_TYPE_OTHER = 1;</code> | ||
+ | | Some other type of network interface | ||
+ | |- | ||
+ | | <code>WSA_IF_TYPE_ETHERNET_CSMACD = 6;</code> | ||
+ | | An Ethernet network interface | ||
+ | |- | ||
+ | | <code>WSA_IF_TYPE_ISO88025_TOKENRING = 9;</code> | ||
+ | | A token ring network interface | ||
+ | |- | ||
+ | | <code>WSA_IF_TYPE_FDDI = 15;</code> | ||
+ | | A Fiber Distributed Data Interface (FDDI) network interface | ||
+ | |- | ||
+ | | <code>WSA_IF_TYPE_PPP = 23;</code> | ||
+ | | A PPP network interface | ||
+ | |- | ||
+ | | <code>WSA_IF_TYPE_SOFTWARE_LOOPBACK = 24;</code> | ||
+ | | A software loopback network interface | ||
+ | |- | ||
+ | | <code>WSA_IF_TYPE_SLIP = 28;</code> | ||
+ | | A SLIP network interface | ||
+ | |- | ||
+ | | <code>WSA_IF_TYPE_ATM = 37;</code> | ||
+ | | An ATM network interface | ||
+ | |- | ||
+ | | <code>WSA_IF_TYPE_IEEE80211 = 71;</code> | ||
+ | | An IEEE 802.11 wireless network interface | ||
+ | |- | ||
+ | | <code>WSA_IF_TYPE_TUNNEL = 131;</code> | ||
+ | | A tunnel type encapsulation network interface | ||
+ | |- | ||
+ | | <code>WSA_IF_TYPE_IEEE1394 = 144;</code> | ||
+ | | An IEEE 1394 (Firewire) high performance serial bus network interface | ||
+ | |- | ||
+ | | <code>WSA_IF_TYPE_IEEE80216_WMAN = 237;</code> | ||
+ | | A mobile broadband interface for WiMax devices | ||
+ | |- | ||
+ | | <code>WSA_IF_TYPE_WWANPP = 243;</code> | ||
+ | | A mobile broadband interface for GSM-based devices | ||
+ | |- | ||
+ | | <code>WSA_IF_TYPE_WWANPP2 = 244;</code> | ||
+ | | A mobile broadband interface for CDMA-based devices | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>WSA_IF_ADMIN_STATUS_UP = 1;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IF_ADMIN_STATUS_DOWN = 2;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IF_ADMIN_STATUS_TESTING = 3;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>WSA_TCP_STATE_CLOSED = 1;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_TCP_STATE_LISTEN = 2;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_TCP_STATE_SYN_SENT = 3;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_TCP_STATE_SYN_RCVD = 4;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_TCP_STATE_ESTAB = 5;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_TCP_STATE_FIN_WAIT1 = 6;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_TCP_STATE_FIN_WAIT2 = 7;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_TCP_STATE_CLOSE_WAIT = 8;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_TCP_STATE_CLOSING = 9;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_TCP_STATE_LAST_ACK = 10;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_TCP_STATE_TIME_WAIT = 11;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_TCP_STATE_DELETE_TCB = 12;</code> | ||
| | | | ||
|- | |- | ||
Line 1,429: | Line 1,643: | ||
|- | |- | ||
| <code>WSA_IP_NOT_FORWARDING = 2;</code> | | <code>WSA_IP_NOT_FORWARDING = 2;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>WSA_IPROUTE_TYPE_OTHER = 1;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IPROUTE_TYPE_INVALID = 2;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IPROUTE_TYPE_DIRECT = 3;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IPROUTE_TYPE_INDIRECT = 4;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IPROUTE_METRIC_UNUSED = DWORD(-1);</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>WSA_IPPROTO_OTHER = 1;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IPPROTO_LOCAL = 2;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IPPROTO_NETMGMT = 3;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IPPROTO_ICMP = 4;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IPPROTO_EGP = 5;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IPPROTO_GGP = 6;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IPPROTO_HELLO = 7;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IPPROTO_RIP = 8;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IPPROTO_IS_IS = 9;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IPPROTO_ES_IS = 10;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IPPROTO_CISCO = 11;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IPPROTO_BBN = 12;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IPPROTO_OSPF = 13;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IPPROTO_BGP = 14;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IPPROTO_NT_AUTOSTATIC = 10002;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IPPROTO_NT_STATIC = 10006;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IPPROTO_NT_STATIC_NON_DOD = 10007;</code> | ||
+ | | | ||
+ | |- | ||
+ | |colspan="2"| | ||
+ | |- | ||
+ | | <code>WSA_IPNET_TYPE_OTHER = 1;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IPNET_TYPE_INVALID = 2;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IPNET_TYPE_DYNAMIC = 3;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>WSA_IPNET_TYPE_STATIC = 4;</code> | ||
| | | | ||
|- | |- | ||
Line 1,583: | Line 1,881: | ||
<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;">'''Address info flag | + | <div style="font-size: 14px; padding-left: 12px;">'''Address info flag''' <code> AI_* </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 1,633: | Line 1,931: | ||
<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;">'''Name info flag | + | <div style="font-size: 14px; padding-left: 12px;">'''Name info flag''' <code> NI_* </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 1,826: | Line 2,124: | ||
|- | |- | ||
| <code>0: (h_addr_list: ^PChar);</code> | | <code>0: (h_addr_list: ^PChar);</code> | ||
− | | | + | | Network order |
|- | |- | ||
| <code>1: (h_addr: ^PChar)</code> | | <code>1: (h_addr: ^PChar)</code> | ||
− | | | + | | Network order |
|- | |- | ||
|} | |} | ||
Line 1,855: | Line 2,153: | ||
|- | |- | ||
| <code>n_net: u_long;</code> | | <code>n_net: u_long;</code> | ||
− | | | + | | Network order |
|- | |- | ||
|} | |} | ||
Line 2,083: | Line 2,381: | ||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TSockAddr6 = sockaddr_in6;</code> | ||
+ | |||
+ | <code>PSOCKADDR6 = ^TSockAddr6;</code> | ||
+ | |||
<code>TSockAddrIn6 = sockaddr_in6;</code> | <code>TSockAddrIn6 = sockaddr_in6;</code> | ||
Line 2,136: | Line 2,438: | ||
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
− | |||
− | |||
|- | |- | ||
| <code>PSOCKADDR = ^TSockAddr;</code> | | <code>PSOCKADDR = ^TSockAddr;</code> | ||
Line 2,143: | Line 2,443: | ||
|- | |- | ||
| <code>TSockAddr = sockaddr_in;</code> | | <code>TSockAddr = sockaddr_in;</code> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
| style="width: 40%;"| | | style="width: 40%;"| | ||
|- | |- | ||
Line 2,179: | Line 2,467: | ||
|- | |- | ||
|} | |} | ||
− | </div></div> | + | </div></div> |
+ | |||
+ | '''Storage''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TSockAddrStorage = sockaddr_storage;</code> | ||
+ | |||
+ | <code>PSockAddrStorage = ^TSockAddrStorage;</code> | ||
+ | |||
+ | <code>sockaddr_storage = record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | |colspan="2"|Note: RFC 2553: protocol-independent placeholder for socket addresses | ||
+ | |- | ||
+ | | <code>ss_family: word;</code> | ||
+ | | Address family | ||
+ | |- | ||
+ | | <code>__ss_pad1: array [0.._SS_PAD1SIZE - 1] of Char;</code> | ||
+ | | 6 byte pad, this is to make implementation specific pad up to alignment field that follows explicit in the data structure. | ||
+ | |- | ||
+ | | <code>__ss_align: Int64;</code> | ||
+ | | Field to force desired structure | ||
+ | |- | ||
+ | | <code>__ss_pad2: array [0.._SS_PAD2SIZE - 1] of Char;</code> | ||
+ | | 112 byte pad to achieve desired size (_SS_MAXSIZE value minus size of ss_family, __ss_pad1, and __ss_align fields is 112) | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
'''Linger''' | '''Linger''' | ||
Line 2,397: | Line 2,713: | ||
|- | |- | ||
| <code>table: array [0..WSA_ANY_SIZE - 1] of WSA_IFROW;</code> | | <code>table: array [0..WSA_ANY_SIZE - 1] of WSA_IFROW;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA ICMP statistics''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAIcmpStats = WSAICMPSTATS;</code> | ||
+ | |||
+ | <code>PWSAIcmpStats = ^TWSAIcmpStats;</code> | ||
+ | |||
+ | <code>WSAICMPSTATS = 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%;"| | ||
+ | |- | ||
+ | | <code>dwErrors: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwDestUnreachs: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwTimeExcds: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwParmProbs: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwSrcQuenchs: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwRedirects: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwEchos: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwEchoReps: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwTimestamps: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwTimestampReps: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwAddrMasks: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwAddrMaskReps: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA ICMP information''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAIcmpInfo = WSAICMPINFO;</code> | ||
+ | |||
+ | <code>PWSAIcmpInfo = ^TWSAIcmpInfo;</code> | ||
+ | |||
+ | <code>WSAICMPINFO = record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>icmpInStats: WSAICMPSTATS;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>icmpOutStats: WSAICMPSTATS;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA ICMP''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAIcmp = WSA_ICMP;</code> | ||
+ | |||
+ | <code>PWSAIcmp = PWSA_ICMP;</code> | ||
+ | |||
+ | <code>PWSA_ICMP = ^WSA_ICMP;</code> | ||
+ | |||
+ | <code>WSA_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: WSAICMPINFO;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA UDP statistics''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAUdpStats = WSA_UDPSTATS;</code> | ||
+ | |||
+ | <code>PWSAUdpStats = PWSA_UDPSTATS;</code> | ||
+ | |||
+ | <code>PWSA_UDPSTATS = ^WSA_UDPSTATS;</code> | ||
+ | |||
+ | <code>WSA_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%;"| | ||
+ | |- | ||
+ | | <code>dwNoPorts: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwInErrors: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwOutDatagrams: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwNumAddrs: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA UDP row''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAUdpRow = WSA_UDPROW;</code> | ||
+ | |||
+ | <code>PWSAUdpRow = PWSA_UDPROW;</code> | ||
+ | |||
+ | <code>PWSA_UDPROW = ^WSA_UDPROW;</code> | ||
+ | |||
+ | <code>WSA_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%;"| | ||
+ | |- | ||
+ | | <code>dwLocalPort: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA UDP table''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAUdpTable = WSA_UDPTABLE;</code> | ||
+ | |||
+ | <code>PWSAUdpTable = PWSA_UDPTABLE;</code> | ||
+ | |||
+ | <code>PWSA_UDPTABLE = ^WSA_UDPTABLE;</code> | ||
+ | |||
+ | <code>WSA_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%;"| | ||
+ | |- | ||
+ | | <code>table: array [0..WSA_ANY_SIZE - 1] of WSA_UDPROW;</code> | ||
| | | | ||
|- | |- | ||
|} | |} | ||
</div></div> | </div></div> | ||
+ | |||
+ | '''WSA TCP statistics ''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSATcpStats = WSA_TCPSTATS;</code> | ||
+ | |||
+ | <code>PWSATcpStats = PWSA_TCPSTATS;</code> | ||
+ | |||
+ | <code>PWSA_TCPSTATS = ^WSA_TCPSTATS;</code> | ||
+ | |||
+ | <code>WSA_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%;"| | ||
+ | |- | ||
+ | | <code>dwRtoMin: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwRtoMax: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwMaxConn: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwActiveOpens: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwPassiveOpens: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwAttemptFails: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwEstabResets: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwCurrEstab: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwInSegs: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwOutSegs: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwRetransSegs: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwInErrs: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwOutRsts: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwNumConns: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA TCP row''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSATcpRow = WSA_TCPROW;</code> | ||
+ | |||
+ | <code>PWSATcpRow = PWSA_TCPROW;</code> | ||
+ | |||
+ | <code>PWSA_TCPROW = ^WSA_TCPROW;</code> | ||
+ | |||
+ | <code>WSA_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%;"| | ||
+ | |- | ||
+ | | <code>dwLocalAddr: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwLocalPort: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwRemoteAddr: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwRemotePort: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA TCP table''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSATcpTable = WSA_TCPTABLE;</code> | ||
+ | |||
+ | <code>PWSATcpTable = PWSA_TCPTABLE;</code> | ||
+ | |||
+ | <code>PWSA_TCPTABLE = ^WSA_TCPTABLE;</code> | ||
+ | |||
+ | <code>WSA_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%;"| | ||
+ | |- | ||
+ | | <code>table: array [0..WSA_ANY_SIZE - 1] of WSA_TCPROW;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
'''WSA IP statistics''' | '''WSA IP statistics''' | ||
Line 2,541: | Line 3,138: | ||
|- | |- | ||
| <code>table: array [0..WSA_ANY_SIZE - 1] of WSA_IPADDRROW;</code> | | <code>table: array [0..WSA_ANY_SIZE - 1] of WSA_IPADDRROW;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA IP forward number''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAIpForwardNumber = WSA_IPFORWARDNUMBER;</code> | ||
+ | |||
+ | <code>PWSAIpForwardNumber = PWSA_IPFORWARDNUMBER;</code> | ||
+ | |||
+ | <code>PWSA_IPFORWARDNUMBER = ^WSA_IPFORWARDNUMBER;</code> | ||
+ | |||
+ | <code>WSA_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%;"| | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA IP forward row''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAIpForwardRow = WSA_IPFORWARDROW;</code> | ||
+ | |||
+ | <code>PWSAIpForwardRow = PWSA_IPFORWARDROW;</code> | ||
+ | |||
+ | <code>PWSA_IPFORWARDROW = ^WSA_IPFORWARDROW;</code> | ||
+ | |||
+ | <code>WSA_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%;"| | ||
+ | |- | ||
+ | | <code>dwForwardMask: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwForwardPolicy: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwForwardNextHop: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwForwardIfIndex: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwForwardType: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwForwardProto: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwForwardAge: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwForwardNextHopAS: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwForwardMetric1: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwForwardMetric2: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwForwardMetric3: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwForwardMetric4: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwForwardMetric5: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA IP forward table''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAIpForwardTable = WSA_IPFORWARDTABLE;</code> | ||
+ | |||
+ | <code>PWSAIpForwardTable = PWSA_IPFORWARDTABLE;</code> | ||
+ | |||
+ | <code>PWSA_IPFORWARDTABLE = ^WSA_IPFORWARDTABLE;</code> | ||
+ | |||
+ | <code>WSA_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%;"| | ||
+ | |- | ||
+ | | <code>table: array [0..WSA_ANY_SIZE - 1] of WSA_IPFORWARDROW;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA IP net row''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAIpNetRow = WSA_IPNETROW;</code> | ||
+ | |||
+ | <code>PWSAIpNetRow = PWSA_IPNETROW;</code> | ||
+ | |||
+ | <code>PWSA_IPNETROW = ^WSA_IPNETROW;</code> | ||
+ | |||
+ | <code>WSA_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%;"| | ||
+ | |- | ||
+ | | <code>dwPhysAddrLen: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bPhysAddr: array [0..WSA_MAXLEN_PHYSADDR - 1] of BYTE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwAddr: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwType: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA IP net table''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAIpNetTable = WSA_IPNETTABLE;</code> | ||
+ | |||
+ | <code>PWSAIpNetTable = PWSA_IPNETTABLE;</code> | ||
+ | |||
+ | <code>PWSA_IPNETTABLE = ^WSA_IPNETTABLE;</code> | ||
+ | |||
+ | <code>WSA_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%;"| | ||
+ | |- | ||
+ | | <code>table: array [0..WSA_ANY_SIZE - 1] of WSA_IPNETROW;</code> | ||
| | | | ||
|- | |- | ||
Line 2,702: | Line 3,451: | ||
| | | | ||
|- | |- | ||
− | | <code>LeaseObtained: | + | | <code>LeaseObtained: time_t;</code> |
− | | | + | | |
|- | |- | ||
− | | <code>LeaseExpires: | + | | <code>LeaseExpires: time_t;</code> |
− | | | + | | |
|- | |- | ||
|} | |} | ||
Line 3,160: | Line 3,909: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 3,172: | Line 3,921: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 3,184: | Line 3,933: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 3,196: | Line 3,945: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 3,208: | Line 3,957: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 3,220: | Line 3,969: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 3,232: | Line 3,981: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 3,244: | Line 3,993: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 3,256: | Line 4,005: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- |
Latest revision as of 02:54, 6 March 2025
Return to Unit Reference
Contents
[hide]Description
Ultibo Global Socket Definitions unit
Constants
FD_*
IPPROTO_*
IPPORT_*
IP_*
SOCK_*
SO_*
TCP_*
UDP_*
AF_*
_SS_*
PF_*
MSG_*
WSAE*, EAI_*
SD_*
WSA_*
AI_*
NI_*
Type definitions
Integer types
tOS_INT = LongInt;
|
|
tOS_UINT = DWORD;
|
|
ptOS_INT = ^tOS_INT;
|
|
ptOS_UINT = ^tOS_UINT;
|
|
u_int = tOS_UINT;
|
|
pu_int = ^u_int;
|
Character types
u_char = Char;
|
|
pu_char = ^u_char;
|
Numeric types
u_short = Word;
|
|
pu_short = ^u_short;
|
|
u_long = DWORD;
|
|
pu_long = ^u_long;
|
Socket types
TSocket = GlobalTypes.TSocket;
|
WSA event
WSAEVENT = GlobalTypes.WSAEVENT;
|
|
PWSAEVENT = ^WSAEVENT;
|
|
LPWSAEVENT = PWSAEVENT;
|
MB character
PMBChar = PChar;
|
FD set
Time value
Host entry
Network entry
Service entry
Protocol entry
Address types
SunB = packed record
SunW = packed record
IPv4 address
IPv6 address
IPX address
Socket address IPv4
Socket address IPv6
TSockAddr6 = sockaddr_in6;
PSOCKADDR6 = ^TSockAddr6;
TSockAddrIn6 = sockaddr_in6;
PSockAddrIn6 = ^TSockAddrIn6;
sockaddr_in6 = record
Socket address IPX
Socket address
PSOCKADDR = ^TSockAddr;
|
|
TSockAddr = sockaddr_in;
|
Socket protocol
Storage
TSockAddrStorage = sockaddr_storage;
PSockAddrStorage = ^TSockAddrStorage;
sockaddr_storage = record
Linger
WSA data
Transmit file buffers
TTransmitFileBuffers = _TRANSMIT_FILE_BUFFERS;
TRANSMIT_FILE_BUFFERS = _TRANSMIT_FILE_BUFFERS;
PTransmitFileBuffers = ^TTransmitFileBuffers;
_TRANSMIT_FILE_BUFFERS = record
Multicast request
WSA interface row
WSA interface table
TWSAIftable = WSA_IFTABLE;
PWSAIftable = PWSA_IFTABLE;
PWSA_IFTABLE = ^WSA_IFTABLE;
WSA_IFTABLE = record
WSA ICMP statistics
WSA ICMP information
WSA ICMP
WSA UDP statistics
TWSAUdpStats = WSA_UDPSTATS;
PWSAUdpStats = PWSA_UDPSTATS;
PWSA_UDPSTATS = ^WSA_UDPSTATS;
WSA_UDPSTATS = record
WSA UDP row
TWSAUdpRow = WSA_UDPROW;
PWSAUdpRow = PWSA_UDPROW;
PWSA_UDPROW = ^WSA_UDPROW;
WSA_UDPROW = record
WSA UDP table
TWSAUdpTable = WSA_UDPTABLE;
PWSAUdpTable = PWSA_UDPTABLE;
PWSA_UDPTABLE = ^WSA_UDPTABLE;
WSA_UDPTABLE = record
WSA TCP statistics
TWSATcpStats = WSA_TCPSTATS;
PWSATcpStats = PWSA_TCPSTATS;
PWSA_TCPSTATS = ^WSA_TCPSTATS;
WSA_TCPSTATS = record
WSA TCP row
TWSATcpRow = WSA_TCPROW;
PWSATcpRow = PWSA_TCPROW;
PWSA_TCPROW = ^WSA_TCPROW;
WSA_TCPROW = record
WSA TCP table
TWSATcpTable = WSA_TCPTABLE;
PWSATcpTable = PWSA_TCPTABLE;
PWSA_TCPTABLE = ^WSA_TCPTABLE;
WSA_TCPTABLE = record
WSA IP statistics
TWSAIpStats = WSA_IPSTATS;
PWSAIpStats = PWSA_IPSTATS;
PWSA_IPSTATS = ^WSA_IPSTATS;
WSA_IPSTATS = record
WSA IP address row
TWSAIpAddrRow = WSA_IPADDRROW;
PWSAIpAddrRow = PWSA_IPADDRROW;
PWSA_IPADDRROW = ^WSA_IPADDRROW;
WSA_IPADDRROW = record
WSA IP address table
TWSAIpAddrTable = WSA_IPADDRTABLE;
PWSAIpAddrTable = PWSA_IPADDRTABLE;
PWSA_IPADDRTABLE = ^WSA_IPADDRTABLE;
WSA_IPADDRTABLE = record
WSA IP forward number
TWSAIpForwardNumber = WSA_IPFORWARDNUMBER;
PWSAIpForwardNumber = PWSA_IPFORWARDNUMBER;
PWSA_IPFORWARDNUMBER = ^WSA_IPFORWARDNUMBER;
WSA_IPFORWARDNUMBER = record
WSA IP forward row
TWSAIpForwardRow = WSA_IPFORWARDROW;
PWSAIpForwardRow = PWSA_IPFORWARDROW;
PWSA_IPFORWARDROW = ^WSA_IPFORWARDROW;
WSA_IPFORWARDROW = record
WSA IP forward table
TWSAIpForwardTable = WSA_IPFORWARDTABLE;
PWSAIpForwardTable = PWSA_IPFORWARDTABLE;
PWSA_IPFORWARDTABLE = ^WSA_IPFORWARDTABLE;
WSA_IPFORWARDTABLE = record
WSA IP net row
TWSAIpNetRow = WSA_IPNETROW;
PWSAIpNetRow = PWSA_IPNETROW;
PWSA_IPNETROW = ^WSA_IPNETROW;
WSA_IPNETROW = record
WSA IP net table
TWSAIpNetTable = WSA_IPNETTABLE;
PWSAIpNetTable = PWSA_IPNETTABLE;
PWSA_IPNETTABLE = ^WSA_IPNETTABLE;
WSA_IPNETTABLE = record
WSA IP adapter index map
TWSAIpAdapterIndexMap = WSA_IP_ADAPTER_INDEX_MAP;
PWSAIpAdapterIndexMap = PWSA_IP_ADAPTER_INDEX_MAP;
PWSA_IP_ADAPTER_INDEX_MAP = ^WSA_IP_ADAPTER_INDEX_MAP;
WSA_IP_ADAPTER_INDEX_MAP = record
WSA IP interface information
TWSAIpInterfaceInfo = WSA_IP_INTERFACE_INFO;
PWSAIpInterfaceInfo = PWSA_IP_INTERFACE_INFO;
PWSA_IP_INTERFACE_INFO = ^WSA_IP_INTERFACE_INFO;
WSA_IP_INTERFACE_INFO = record
WSA IP address string
PWSA_IP_ADDRESS_STRING = ^WSA_IP_ADDRESS_STRING;
WSA_IP_MASK_STRING = WSA_IP_ADDRESS_STRING;
TWSAIpAddressString = WSA_IP_ADDRESS_STRING;
PWSAIpAddressString = PWSA_IP_MASK_STRING;
PWSA_IP_MASK_STRING = ^WSA_IP_MASK_STRING;
WSA_IP_ADDRESS_STRING = record
WSA IP address string
TWSAIpAddrString = WSA_IP_ADDR_STRING;
PWSAIpAddrString = PWSA_IP_ADDR_STRING;
PWSA_IP_ADDR_STRING = ^WSA_IP_ADDR_STRING;
WSA_IP_ADDR_STRING = record
WSA IP adapter information
TWSAIpAdapterInfo = WSA_IP_ADAPTER_INFO;
PWSAIpAdapterInfo = PWSA_IP_ADAPTER_INFO;
PWSA_IP_ADAPTER_INFO = ^WSA_IP_ADAPTER_INFO;
WSA_IP_ADAPTER_INFO = record
WSA fixed information
TWSAFixedInfo = WSA_FIXED_INFO;
PWSAFixedInfo = PWSA_FIXED_INFO;
PWSA_FIXED_INFO = ^WSA_FIXED_INFO;
WSA_FIXED_INFO = record
Net to address
PNetToAddr = ^TNetToAddr;
|
|
TNetToAddr = array[0..MAX_NAME_SIZE - 1] of Char;
|
WSA binding
WSA provider
WSA interface
WSA configuration
WSA network binding
TWSAExtendedBinding = WSAExtendedBinding;
PWSAExtendedBinding = ^TWSAExtendedBinding;
WSAExtendedBinding = record
WSA network provider
TWSAExtendedProvider = WSAExtendedProvider;
PWSAExtendedProvider = ^TWSAExtendedProvider;
WSAExtendedProvider = record
WSA network interface
TWSAExtendedInterface = WSAExtendedInterface;
PWSAExtendedInterface = ^TWSAExtendedInterface;
WSAExtendedInterface = record
WSA network configuration
TWSAExtendedConfig = WSAExtendedConfig;
PWSAExtendedConfig = ^TWSAExtendedConfig;
WSAExtendedConfig = record
Address information
Public variables
None defined
Function declarations
Global socket functions
function FD_ISSET(Socket: TSocket; var FDSet: TFDSet): Boolean;
Return to Unit Reference