Difference between revisions of "Unit GlobalSock"
(23 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,671: | Line 1,969: | ||
---- | ---- | ||
− | '' | + | |
+ | '''Integer types''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>tOS_INT = LongInt;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>tOS_UINT = DWORD;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>ptOS_INT = ^tOS_INT;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>ptOS_UINT = ^tOS_UINT;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>u_int = tOS_UINT;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>pu_int = ^u_int;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Character types''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>u_char = Char;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>pu_char = ^u_char;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Numeric types''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>u_short = Word;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>pu_short = ^u_short;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>u_long = DWORD;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>pu_long = ^u_long;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Socket types''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TSocket = GlobalTypes.TSocket;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''WSA event''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WSAEVENT = GlobalTypes.WSAEVENT;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>PWSAEVENT = ^WSAEVENT;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>LPWSAEVENT = PWSAEVENT;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''MB character''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PMBChar = PChar;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''FD set''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TFDSet = fdset;</code> | ||
+ | |||
+ | <code>PFDSet = ^TFDSet;</code> | ||
+ | |||
+ | <code>fdset = record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>fd_count: u_int;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>fd_array: array[0..FD_SETSIZE-1] of TSocket;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Time value''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TTimeVal = timeval;</code> | ||
+ | |||
+ | <code>PTimeVal = ^TTimeVal;</code> | ||
+ | |||
+ | <code>timeval = record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>tv_sec: LongInt;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>tv_usec: LongInt;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Host entry''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>THostEnt = hostent;</code> | ||
+ | |||
+ | <code>PHostEnt = ^THostEnt;</code> | ||
+ | |||
+ | <code>hostent = record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>h_name: PChar;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>h_aliases: ^PChar;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>h_addrtype: Smallint;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>h_length: Smallint;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>case Byte of</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>0: (h_addr_list: ^PChar);</code> | ||
+ | | Network order | ||
+ | |- | ||
+ | | <code>1: (h_addr: ^PChar)</code> | ||
+ | | Network order | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Network entry''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TNetEnt = netent;</code> | ||
+ | |||
+ | <code>PNetEnt = ^TNetEnt;</code> | ||
+ | |||
+ | <code>netent = record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>n_name: PChar;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>n_aliases: ^PChar;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>n_addrtype: Smallint;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>n_net: u_long;</code> | ||
+ | | Network order | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Service entry''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TServEnt = servent;</code> | ||
+ | |||
+ | <code>PServEnt = ^TServEnt;</code> | ||
+ | |||
+ | <code>servent = record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>s_name: PChar;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>s_aliases: ^PChar;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>s_port: Smallint;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>s_proto: PChar;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Protocol entry''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TProtoEnt = protoent;</code> | ||
+ | |||
+ | <code>PProtoEnt = ^TProtoEnt;</code> | ||
+ | |||
+ | <code>protoent = record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>p_name: PChar;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>p_aliases: ^Pchar;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>p_proto: Smallint;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Address types''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | |||
+ | <code>SunB = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>s_b1, s_b2, s_b3, s_b4: u_char;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | |||
+ | <code>SunW = packed record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>s_w1, s_w2: u_short;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''IPv4 address''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TInAddr = in_addr;</code> | ||
+ | |||
+ | <code>PInAddr = ^TInAddr;</code> | ||
+ | |||
+ | <code>in_addr = record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>case integer of</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>0: (S_un_b: SunB);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>1: (S_un_w: SunW);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>2: (S_addr: u_long);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>3: (S_bytes: packed array[1..4] of Byte);</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''IPv6 address''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TIn6Addr = in6_addr;</code> | ||
+ | |||
+ | <code>PIn6Addr = ^TIn6Addr;</code> | ||
+ | |||
+ | <code>in6_addr = 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: IPv6 version of above | ||
+ | |- | ||
+ | | <code>case byte of</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>0: (u6_addr8 : array[0..15] of byte);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>1: (u6_addr16 : array[0..7] of Word);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>2: (u6_addr32 : array[0..3] of Cardinal);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>3: (s6_addr8 : array[0..15] of shortint);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>4: (s6_addr : array[0..15] of shortint);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>5: (s6_addr16 : array[0..7] of smallint);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>6: (s6_addr32 : array[0..3] of LongInt);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>case integer of</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>0: (S6_u8: array[0..15] of u_char);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>1: (S6_u32: array[0..3] of u_int);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>2: (S6_u64: array[0..1] of Int64);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>S6_addr: array [0..15] of Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''IPX address''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TIpxAddr = ipx_addr;</code> | ||
+ | |||
+ | <code>PIpxAddr = ^TIpxAddr;</code> | ||
+ | |||
+ | <code>ipx_addr = 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: IPX version of above | ||
+ | |- | ||
+ | | <code>S_net: array [0..3] of Byte;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>S_node: array [0..5] of Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>S_socket: Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Socket address IPv4''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TSockAddrIn = sockaddr_in;</code> | ||
+ | |||
+ | <code>PSockAddrIn = ^TSockAddrIn;</code> | ||
+ | |||
+ | <code>sockaddr_in = record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>case Integer of</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>0: (sin_family: u_short;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>sin_port: u_short;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>sin_addr: TInAddr;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>sin_zero: array[0..7] of Char);</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>1: (sa_family: u_short;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>sa_data: array[0..13] of Char)</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Socket address IPv6''' | ||
+ | |||
+ | <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>PSockAddrIn6 = ^TSockAddrIn6;</code> | ||
+ | |||
+ | <code>sockaddr_in6 = 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: IPv6 version of above | ||
+ | |- | ||
+ | | <code>sin6_family: u_short;</code> | ||
+ | | AF_INET6 | ||
+ | |- | ||
+ | | <code>sin6_port: u_short;</code> | ||
+ | | transport layer port # | ||
+ | |- | ||
+ | | <code>sin6_flowinfo: u_int;</code> | ||
+ | | IPv6 flow information | ||
+ | |- | ||
+ | | <code>sin6_addr: in6_addr;</code> | ||
+ | | IPv6 address | ||
+ | |- | ||
+ | | <code>sin6_scope_id: u_int;</code> | ||
+ | | set of interfaces for a scope | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Socket address IPX''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TSockAddrIpx = sockaddr_ipx;</code> | ||
+ | |||
+ | <code>PSockAddrIpx = ^TSockAddrIpx;</code> | ||
+ | |||
+ | <code>sockaddr_ipx = 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: IPX version of above | ||
+ | |- | ||
+ | | <code>sipx_family: u_short;</code> | ||
+ | | AF_IPX | ||
+ | |- | ||
+ | | <code>sipx_addr: ipx_addr;</code> | ||
+ | | IPX address | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Socket address''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PSOCKADDR = ^TSockAddr;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>TSockAddr = sockaddr_in;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Socket protocol''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TSockProto = sockproto;</code> | ||
+ | |||
+ | <code>PSockProto = ^TSockProto;</code> | ||
+ | |||
+ | <code>sockproto = 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: Structure used by kernel to pass protocol information in raw sockets | ||
+ | |- | ||
+ | | <code>sp_family: u_short;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>sp_protocol: u_short;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </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''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TLinger = linger;</code> | ||
+ | |||
+ | <code>PLinger = ^TLinger;</code> | ||
+ | |||
+ | <code>linger = 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: Structure used for manipulating linger option | ||
+ | |- | ||
+ | | <code>l_onoff: u_short;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>l_linger: u_short;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA data''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAData = WSAData;</code> | ||
+ | |||
+ | <code>PWSAData = ^TWSAData;</code> | ||
+ | |||
+ | <code>WSAData = 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: Also WSDATA | ||
+ | |- | ||
+ | | <code>wVersion: Word;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>wHighVersion: Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>szDescription: array[0..WSADESCRIPTION_LEN] of Char;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>szSystemStatus: array[0..WSASYS_STATUS_LEN] of Char;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>iMaxSockets: Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>iMaxUdpDg: Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>lpVendorInfo: PChar;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Transmit file buffers''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TTransmitFileBuffers = _TRANSMIT_FILE_BUFFERS;</code> | ||
+ | |||
+ | <code>TRANSMIT_FILE_BUFFERS = _TRANSMIT_FILE_BUFFERS;</code> | ||
+ | |||
+ | <code>PTransmitFileBuffers = ^TTransmitFileBuffers;</code> | ||
+ | |||
+ | <code>_TRANSMIT_FILE_BUFFERS = record</code> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | | <code>Head: Pointer;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>HeadLength: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>Tail: Pointer;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>TailLength: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Multicast request''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TMulticastRequest = ip_mreq;</code> | ||
+ | |||
+ | <code>PMulticastRequest = ^TMulticastRequest;</code> | ||
+ | |||
+ | <code>ip_mreq = 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: Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP | ||
+ | |- | ||
+ | | <code>IMRMultiAddr : TInAddr;</code> | ||
+ | | IP multicast address of group | ||
+ | |- | ||
+ | | <code>IMRInterface : TInAddr;</code> | ||
+ | | local IP address of interface | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA interface row''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAIfRow = WSA_IFROW;</code> | ||
+ | |||
+ | <code>PWSAIfRow = PWSA_IFROW;</code> | ||
+ | |||
+ | <code>PWSA_IFROW = ^WSA_IFROW;</code> | ||
+ | |||
+ | <code>WSA_IFROW = 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: Structures for WsControlEx (Note: Must be same as IP Helper) | ||
+ | |- | ||
+ | | <code>wszName: array [0..WSA_MAX_INTERFACE_NAME_LEN - 1] of WideChar;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>dwIndex: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwType: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwMtu: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwSpeed: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwPhysAddrLen: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bPhysAddr: array [0..WSA_MAXLEN_PHYSADDR - 1] of Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwAdminStatus: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwOperStatus: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwLastChange: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwInOctets: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwInUcastPkts: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwInNUcastPkts: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwInDiscards: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwInErrors: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwInUnknownProtos: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwOutOctets: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwOutUcastPkts: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwOutNUcastPkts: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwOutDiscards: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwOutErrors: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwOutQLen: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwDescrLen: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>bDescr: array[0..WSA_MAXLEN_IFDESCR - 1] of Byte;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA interface table''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAIftable = WSA_IFTABLE;</code> | ||
+ | |||
+ | <code>PWSAIftable = PWSA_IFTABLE;</code> | ||
+ | |||
+ | <code>PWSA_IFTABLE = ^WSA_IFTABLE;</code> | ||
+ | |||
+ | <code>WSA_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%;"| | ||
+ | |- | ||
+ | | <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> | ||
+ | |||
+ | '''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''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAIpStats = WSA_IPSTATS;</code> | ||
+ | |||
+ | <code>PWSAIpStats = PWSA_IPSTATS;</code> | ||
+ | |||
+ | <code>PWSA_IPSTATS = ^WSA_IPSTATS;</code> | ||
+ | |||
+ | <code>WSA_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%;"| | ||
+ | |- | ||
+ | | <code>dwDefaultTTL: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwInReceives: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwInHdrErrors: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwInAddrErrors: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwForwDatagrams: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwInUnknownProtos: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwInDiscards: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwInDelivers: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwOutRequests: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwRoutingDiscards: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwOutDiscards: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwOutNoRoutes: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwReasmTimeout: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwReasmReqds: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwReasmOks: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwReasmFails: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwFragOks: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwFragFails: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwFragCreates: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwNumIf: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwNumAddr: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwNumRoutes: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA IP address row''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAIpAddrRow = WSA_IPADDRROW;</code> | ||
+ | |||
+ | <code>PWSAIpAddrRow = PWSA_IPADDRROW;</code> | ||
+ | |||
+ | <code>PWSA_IPADDRROW = ^WSA_IPADDRROW;</code> | ||
+ | |||
+ | <code>WSA_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%;"| | ||
+ | |- | ||
+ | | <code>dwIndex: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwMask: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwBCastAddr: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>dwReasmSize: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>unused1: Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>unused2: Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA IP address table''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAIpAddrTable = WSA_IPADDRTABLE;</code> | ||
+ | |||
+ | <code>PWSAIpAddrTable = PWSA_IPADDRTABLE;</code> | ||
+ | |||
+ | <code>PWSA_IPADDRTABLE = ^WSA_IPADDRTABLE;</code> | ||
+ | |||
+ | <code>WSA_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%;"| | ||
+ | |- | ||
+ | | <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> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA IP adapter index map''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAIpAdapterIndexMap = WSA_IP_ADAPTER_INDEX_MAP;</code> | ||
+ | |||
+ | <code>PWSAIpAdapterIndexMap = PWSA_IP_ADAPTER_INDEX_MAP;</code> | ||
+ | |||
+ | <code>PWSA_IP_ADAPTER_INDEX_MAP = ^WSA_IP_ADAPTER_INDEX_MAP;</code> | ||
+ | |||
+ | <code>WSA_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%;"| | ||
+ | |- | ||
+ | | <code>Name: array [0..WSA_MAX_ADAPTER_NAME - 1] of WideChar;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA IP interface information''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAIpInterfaceInfo = WSA_IP_INTERFACE_INFO;</code> | ||
+ | |||
+ | <code>PWSAIpInterfaceInfo = PWSA_IP_INTERFACE_INFO;</code> | ||
+ | |||
+ | <code>PWSA_IP_INTERFACE_INFO = ^WSA_IP_INTERFACE_INFO;</code> | ||
+ | |||
+ | <code>WSA_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: DWORD;</code> | ||
+ | | LongInt | ||
+ | |- | ||
+ | | <code>Adapter: array [0..0] of WSA_IP_ADAPTER_INDEX_MAP;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA IP address string''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PWSA_IP_ADDRESS_STRING = ^WSA_IP_ADDRESS_STRING;</code> | ||
+ | |||
+ | <code>WSA_IP_MASK_STRING = WSA_IP_ADDRESS_STRING;</code> | ||
+ | |||
+ | <code>TWSAIpAddressString = WSA_IP_ADDRESS_STRING;</code> | ||
+ | |||
+ | <code>PWSAIpAddressString = PWSA_IP_MASK_STRING;</code> | ||
+ | |||
+ | <code>PWSA_IP_MASK_STRING = ^WSA_IP_MASK_STRING;</code> | ||
+ | |||
+ | <code>WSA_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%;"| | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA IP address string''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAIpAddrString = WSA_IP_ADDR_STRING;</code> | ||
+ | |||
+ | <code>PWSAIpAddrString = PWSA_IP_ADDR_STRING;</code> | ||
+ | |||
+ | <code>PWSA_IP_ADDR_STRING = ^WSA_IP_ADDR_STRING;</code> | ||
+ | |||
+ | <code>WSA_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: PWSA_IP_ADDR_STRING;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>IpAddress: WSA_IP_ADDRESS_STRING;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IpMask: WSA_IP_MASK_STRING;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>Context: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA IP adapter information''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAIpAdapterInfo = WSA_IP_ADAPTER_INFO;</code> | ||
+ | |||
+ | <code>PWSAIpAdapterInfo = PWSA_IP_ADAPTER_INFO;</code> | ||
+ | |||
+ | <code>PWSA_IP_ADAPTER_INFO = ^WSA_IP_ADAPTER_INFO;</code> | ||
+ | |||
+ | <code>WSA_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: PWSA_IP_ADAPTER_INFO;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>ComboIndex: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AdapterName: array [0..WSA_MAX_ADAPTER_NAME_LENGTH + 3] of Char;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>Description: array [0..WSA_MAX_ADAPTER_DESCRIPTION_LENGTH + 3] of Char;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AddressLength: UINT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>Address: array [0..WSA_MAX_ADAPTER_ADDRESS_LENGTH - 1] of BYTE;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>Index: DWORD;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>Type_: UINT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>DhcpEnabled: UINT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>CurrentIpAddress: PWSA_IP_ADDR_STRING;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>IpAddressList: WSA_IP_ADDR_STRING;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>GatewayList: WSA_IP_ADDR_STRING;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>DhcpServer: WSA_IP_ADDR_STRING;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>HaveWins: BOOL;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>PrimaryWinsServer: WSA_IP_ADDR_STRING;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>SecondaryWinsServer: WSA_IP_ADDR_STRING;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>LeaseObtained: time_t;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>LeaseExpires: time_t;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA fixed information''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAFixedInfo = WSA_FIXED_INFO;</code> | ||
+ | |||
+ | <code>PWSAFixedInfo = PWSA_FIXED_INFO;</code> | ||
+ | |||
+ | <code>PWSA_FIXED_INFO = ^WSA_FIXED_INFO;</code> | ||
+ | |||
+ | <code>WSA_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..WSA_MAX_HOSTNAME_LEN + 3] of Char;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>DomainName: array[0..WSA_MAX_DOMAIN_NAME_LEN + 3] of Char;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>CurrentDnsServer: PWSA_IP_ADDR_STRING;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>DnsServerList: WSA_IP_ADDR_STRING;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NodeType: UINT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ScopeId: array [0..WSA_MAX_SCOPE_ID_LEN + 3] of Char;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EnableRouting: UINT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EnableProxy: UINT;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>EnableDns: UINT;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Net to address''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PNetToAddr = ^TNetToAddr;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | | <code>TNetToAddr = array[0..MAX_NAME_SIZE - 1] of Char;</code> | ||
+ | | style="width: 40%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''WSA binding''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSABinding = WSABinding;</code> | ||
+ | |||
+ | <code>PWSABinding = ^TWSABinding;</code> | ||
+ | |||
+ | <code>WSABinding = 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: A network Binding (Address) | ||
+ | |- | ||
+ | | <code>Version: Word;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>ConfigType: Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ConfigServer: TInAddr;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>BindingAddress: TInAddr;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>BindingNetmask: TInAddr;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>BindingGateway: TInAddr;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NextBinding: PWSABinding;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA provider''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAProvider = WSAProvider;</code> | ||
+ | |||
+ | <code>PWSAProvider = ^TWSAProvider;</code> | ||
+ | |||
+ | <code>WSAProvider = 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: A network Provider (Transport) | ||
+ | |- | ||
+ | | <code>Version: Word;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>TransportFamily: Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>TransportType: Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>TransportHandle: Pointer;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ConfigType: Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ConfigServer: TInAddr;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ProviderAddress: TInAddr;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ProviderNetmask: TInAddr;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ProviderGateway: TInAddr;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ProviderName: array[0..MAX_NAME_SIZE] of Char;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NextProvider: PWSAProvider;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA interface''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAInterface = WSAInterface;</code> | ||
+ | |||
+ | <code>PWSAInterface = ^TWSAInterface;</code> | ||
+ | |||
+ | <code>WSAInterface = 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: A network Interface (Adapter) | ||
+ | |- | ||
+ | | <code>Version: Word;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>AdapterType: Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AdapterInt: Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AdapterPort: Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AdapterName: array[0..MAX_NAME_SIZE] of Char;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AdapterHandle: Pointer;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FirstProvider: PWSAProvider;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NextInterface: PWSAInterface;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA configuration''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAConfig = WSAConfig;</code> | ||
+ | |||
+ | <code>PWSAConfig = ^TWSAConfig;</code> | ||
+ | |||
+ | <code>WSAConfig = 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: General Network Configuration | ||
+ | |- | ||
+ | | <code>Version: Word;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>Hostname: array[0..MAX_NAME_SIZE - 1] of Char;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>Namesuffix: array[0..MAX_NAME_SIZE - 1] of Char;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>Nameservers: array[0..MAX_NAME_SERVERS - 1] of TInAddr;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FirstInterface: PWSAInterface;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA network binding''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAExtendedBinding = WSAExtendedBinding;</code> | ||
+ | |||
+ | <code>PWSAExtendedBinding = ^TWSAExtendedBinding;</code> | ||
+ | |||
+ | <code>WSAExtendedBinding = 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: A network Binding (Address) | ||
+ | |- | ||
+ | | <code>Size: LongWord;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>Version: Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ConfigType: Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ConfigServer: TInAddr;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ConfigServer6: TIn6Addr;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ConfigInitDelay: LongWord;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ConfigRetryCount: LongWord;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ConfigRetryTimeout: LongWord;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>BindingAddress: TInAddr;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>BindingNetmask: TInAddr;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>BindingGateway: TInAddr;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>BindingAddress6: TIn6Addr;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>BindingNetmask6: TIn6Addr;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>BindingGateway6: TIn6Addr;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>Namesuffix: array[0..MAX_NAME_SIZE - 1] of Char;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>Nameservers: array[0..MAX_NAME_SERVERS - 1] of TInAddr;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>Nameservers6: array[0..MAX_NAME_SERVERS - 1] of TIn6Addr;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NextBinding: PWSAExtendedBinding;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA network provider''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAExtendedProvider = WSAExtendedProvider;</code> | ||
+ | |||
+ | <code>PWSAExtendedProvider = ^TWSAExtendedProvider;</code> | ||
+ | |||
+ | <code>WSAExtendedProvider = 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: A network Provider (Transport) | ||
+ | |- | ||
+ | | <code>Size: LongWord;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>Version: Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>TransportFamily: Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>TransportType: Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>TransportHandle: Pointer;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>ProviderName: array[0..MAX_NAME_SIZE] of Char;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FirstBinding: PWSAExtendedBinding;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NextProvider: PWSAExtendedProvider;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA network interface''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAExtendedInterface = WSAExtendedInterface;</code> | ||
+ | |||
+ | <code>PWSAExtendedInterface = ^TWSAExtendedInterface;</code> | ||
+ | |||
+ | <code>WSAExtendedInterface = 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: A network Interface (Adapter) | ||
+ | |- | ||
+ | | <code>Size: LongWord;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>Version: Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AdapterType: Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AdapterInt: Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AdapterPort: Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AdapterName: array[0..MAX_NAME_SIZE] of Char;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>AdapterHandle: Pointer;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FirstProvider: PWSAExtendedProvider;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>NextInterface: PWSAExtendedInterface;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''WSA network configuration''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>TWSAExtendedConfig = WSAExtendedConfig;</code> | ||
+ | |||
+ | <code>PWSAExtendedConfig = ^TWSAExtendedConfig;</code> | ||
+ | |||
+ | <code>WSAExtendedConfig = 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: General Network Configuration | ||
+ | |- | ||
+ | | <code>Size: LongWord;</code> | ||
+ | | style="width: 50%;"| | ||
+ | |- | ||
+ | | <code>Version: Word;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>Hostname: array[0..MAX_NAME_SIZE - 1] of Char;</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>FirstInterface: PWSAExtendedInterface;</code> | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | |||
+ | '''Address information''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;"> | ||
+ | <code>PAddrInfo = ^TAddrInfo;</code> | ||
+ | |||
+ | <code>TAddrInfo = 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: Structure used in getaddrinfo() call | ||
+ | |- | ||
+ | | <code>ai_flags:LongInt;</code> | ||
+ | | AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST | ||
+ | |- | ||
+ | | <code>ai_family:LongInt;</code> | ||
+ | | PF_xxx | ||
+ | |- | ||
+ | | <code>ai_socktype:LongInt;</code> | ||
+ | | SOCK_xxx | ||
+ | |- | ||
+ | | <code>ai_protocol:LongInt;</code> | ||
+ | | 0 or IPPROTO_xxx for IPv4 and IPv6 | ||
+ | |- | ||
+ | | <code>ai_addrlen:size_t;</code> | ||
+ | | Length of ai_addr | ||
+ | |- | ||
+ | | <code>ai_canonname:PChar;</code> | ||
+ | | Canonical name for nodename | ||
+ | |- | ||
+ | | <code>ai_addr:PSockAddr;</code> | ||
+ | | Binary address | ||
+ | |- | ||
+ | | <code>ai_next:PAddrInfo;</code> | ||
+ | | Next structure in linked list | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
=== Public variables === | === Public variables === | ||
Line 1,690: | 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 1,702: | 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 1,714: | 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 1,726: | 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 1,738: | 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 1,750: | 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 1,762: | 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 1,774: | 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 1,786: | 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