0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a /***************
0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0a 2a 20 20 20 20 20 ********\.*
0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0060: 20 20 20 20 20 20 20 20 20 77 69 6e 73 6f 63 6b winsock
0070: 32 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 20 2.d
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0090: 20 20 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20 *.*
00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00d0: 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 *.*
00e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00f0: 20 20 20 20 20 20 57 69 6e 64 6f 77 73 20 41 50 Windows AP
0100: 49 20 68 65 61 64 65 72 20 6d 6f 64 75 6c 65 20 I header module
0110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0120: 20 20 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20 *.*
0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0170: 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 *.*
0180: 20 20 20 20 54 72 61 6e 73 6c 61 74 65 64 20 66 Translated f
0190: 72 6f 6d 20 4d 69 6e 47 57 20 57 69 6e 64 6f 77 rom MinGW Window
01a0: 73 20 68 65 61 64 65 72 73 20 20 20 20 20 20 20 s headers
01b0: 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 20 20 *.*
01c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01d0: 20 20 20 20 20 20 20 20 20 20 62 79 20 44 61 6e by Dan
01e0: 69 65 6c 20 4b 65 65 70 20 20 20 20 20 20 20 20 iel Keep
01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0200: 20 20 20 20 2a 0a 5c 2a 2a 2a 2a 2a 2a 2a 2a 2a *.\*********
0210: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0220: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0230: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0240: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a **************/.
0250: 6d 6f 64 75 6c 65 20 77 69 6e 33 32 2e 77 69 6e module win32.win
0260: 73 6f 63 6b 32 3b 0a 70 72 61 67 6d 61 28 6c 69 sock2;.pragma(li
0270: 62 2c 20 22 57 73 32 5f 33 32 2e 6c 69 62 22 29 b, "Ws2_32.lib")
0280: 3b 0a 0a 2f 2a 0a 20 20 44 65 66 69 6e 69 74 69 ;../*. Definiti
0290: 6f 6e 73 20 66 6f 72 20 77 69 6e 73 6f 63 6b 20 ons for winsock
02a0: 32 0a 0a 20 20 43 6f 6e 74 72 69 62 75 74 65 64 2.. Contributed
02b0: 20 62 79 20 74 68 65 20 57 49 4e 45 20 70 72 6f by the WINE pro
02c0: 6a 65 63 74 2e 0a 0a 20 20 50 6f 72 74 69 6f 6e ject... Portion
02d0: 73 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 s Copyright (c)
02e0: 31 39 38 30 2c 20 31 39 38 33 2c 20 31 39 38 38 1980, 1983, 1988
02f0: 2c 20 31 39 39 33 0a 20 20 54 68 65 20 52 65 67 , 1993. The Reg
0300: 65 6e 74 73 20 6f 66 20 74 68 65 20 55 6e 69 76 ents of the Univ
0310: 65 72 73 69 74 79 20 6f 66 20 43 61 6c 69 66 6f ersity of Califo
0320: 72 6e 69 61 2e 20 20 41 6c 6c 20 72 69 67 68 74 rnia. All right
0330: 73 20 72 65 73 65 72 76 65 64 2e 0a 0a 20 20 50 s reserved... P
0340: 6f 72 74 69 6f 6e 73 20 43 6f 70 79 72 69 67 68 ortions Copyrigh
0350: 74 20 28 63 29 20 31 39 39 33 20 62 79 20 44 69 t (c) 1993 by Di
0360: 67 69 74 61 6c 20 45 71 75 69 70 6d 65 6e 74 20 gital Equipment
0370: 43 6f 72 70 6f 72 61 74 69 6f 6e 2e 0a 20 2a 2f Corporation.. */
0380: 0a 0a 2f 2a 09 44 52 4b 3a 20 54 68 69 73 20 6d ../*.DRK: This m
0390: 6f 64 75 6c 65 20 73 68 6f 75 6c 64 20 6e 6f 74 odule should not
03a0: 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 66 20 be included if
03b0: 2d 76 65 72 73 69 6f 6e 3d 57 69 6e 33 32 5f 57 -version=Win32_W
03c0: 69 6e 73 6f 63 6b 32 20 68 61 73 0a 20 2a 09 6e insock2 has. *.n
03d0: 6f 74 20 62 65 65 6e 20 73 65 74 2e 20 20 49 66 ot been set. If
03e0: 20 69 74 20 68 61 73 2c 20 61 73 73 65 72 74 2e it has, assert.
03f0: 20 20 49 20 74 68 69 6e 6b 20 69 74 27 73 20 62 I think it's b
0400: 65 74 74 65 72 20 74 68 69 73 20 77 61 79 20 74 etter this way t
0410: 68 61 6e 0a 20 2a 09 6c 65 74 74 69 6e 67 20 74 han. *.letting t
0420: 68 65 20 75 73 65 72 20 62 65 6c 69 65 76 65 20 he user believe
0430: 74 68 61 74 20 69 74 27 73 20 77 6f 72 6b 65 64 that it's worked
0440: 2e 0a 20 2a 0a 20 2a 09 53 47 3a 20 49 74 20 68 .. *. *.SG: It h
0450: 61 73 20 6e 6f 77 20 62 65 65 6e 20 63 68 61 6e as now been chan
0460: 67 65 64 20 73 6f 20 74 68 61 74 20 77 69 6e 73 ged so that wins
0470: 6f 63 6b 32 20 69 73 20 74 68 65 20 64 65 66 61 ock2 is the defa
0480: 75 6c 74 2c 20 61 6e 64 0a 20 2a 09 2d 76 65 72 ult, and. *.-ver
0490: 73 69 6f 6e 3d 57 69 6e 33 32 5f 57 69 6e 73 6f sion=Win32_Winso
04a0: 63 6b 31 20 6d 75 73 74 20 62 65 20 73 65 74 20 ck1 must be set
04b0: 74 6f 20 75 73 65 20 77 69 6e 73 6f 63 6b 2e 0a to use winsock..
04c0: 20 2a 2f 0a 76 65 72 73 69 6f 6e 28 57 69 6e 33 */.version(Win3
04d0: 32 5f 57 69 6e 73 6f 63 6b 31 29 20 7b 0a 09 70 2_Winsock1) {..p
04e0: 72 61 67 6d 61 28 6d 73 67 2c 20 22 43 61 6e 6e ragma(msg, "Cann
04f0: 6f 74 20 75 73 65 20 77 69 6e 33 32 2e 77 69 6e ot use win32.win
0500: 73 6f 63 6b 32 20 77 69 74 68 20 57 69 6e 33 32 sock2 with Win32
0510: 5f 57 69 6e 73 6f 63 6b 31 20 64 65 66 69 6e 65 _Winsock1 define
0520: 64 2e 22 29 3b 0a 09 73 74 61 74 69 63 20 61 73 d.");..static as
0530: 73 65 72 74 28 66 61 6c 73 65 29 3b 0a 7d 0a 0a sert(false);.}..
0540: 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e 77 69 6e import win32.win
0550: 62 61 73 65 3b 0a 69 6d 70 6f 72 74 20 77 69 6e base;.import win
0560: 33 32 2e 77 69 6e 64 65 66 3b 0a 69 6d 70 6f 72 32.windef;.impor
0570: 74 20 77 69 6e 33 32 2e 62 61 73 65 74 79 70 73 t win32.basetyps
0580: 3b 0a 0a 61 6c 69 61 73 20 63 68 61 72 20 75 5f ;..alias char u_
0590: 63 68 61 72 3b 0a 61 6c 69 61 73 20 75 73 68 6f char;.alias usho
05a0: 72 74 20 75 5f 73 68 6f 72 74 3b 0a 61 6c 69 61 rt u_short;.alia
05b0: 73 20 75 69 6e 74 20 75 5f 69 6e 74 2c 20 75 5f s uint u_int, u_
05c0: 6c 6f 6e 67 2c 20 53 4f 43 4b 45 54 3b 0a 0a 63 long, SOCKET;..c
05d0: 6f 6e 73 74 20 73 69 7a 65 5f 74 20 46 44 5f 53 onst size_t FD_S
05e0: 45 54 53 49 5a 45 20 3d 20 36 34 3b 0a 0a 2f 2a ETSIZE = 64;../*
05f0: 20 73 68 75 74 64 6f 77 6e 28 29 20 68 6f 77 20 shutdown() how
0600: 74 79 70 65 73 20 2a 2f 0a 65 6e 75 6d 20 3a 20 types */.enum :
0610: 69 6e 74 20 7b 0a 09 53 44 5f 52 45 43 45 49 56 int {..SD_RECEIV
0620: 45 2c 0a 09 53 44 5f 53 45 4e 44 2c 0a 09 53 44 E,..SD_SEND,..SD
0630: 5f 42 4f 54 48 0a 7d 0a 0a 2f 2a 20 47 6f 6f 64 _BOTH.}../* Good
0640: 20 67 72 69 65 66 20 74 68 69 73 20 69 73 20 73 grief this is s
0650: 74 75 70 69 64 2e 2e 2e 20 69 73 20 69 74 20 61 tupid... is it a
0660: 20 73 74 72 75 63 74 3f 20 20 41 20 70 72 65 70 struct? A prep
0670: 72 6f 63 65 73 73 6f 72 20 6d 61 63 72 6f 3f 20 rocessor macro?
0680: 20 41 0a 20 20 20 73 74 72 75 63 74 20 74 61 67 A. struct tag
0690: 3f 20 20 57 68 6f 20 74 68 65 20 68 65 6c 6c 20 ? Who the hell
06a0: 6b 6e 6f 77 73 21 3f 20 2a 2f 0a 73 74 72 75 63 knows!? */.struc
06b0: 74 20 46 44 5f 53 45 54 20 7b 0a 09 75 5f 69 6e t FD_SET {..u_in
06c0: 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t
06d0: 66 64 5f 63 6f 75 6e 74 3b 0a 09 53 4f 43 4b 45 fd_count;..SOCKE
06e0: 54 5b 46 44 5f 53 45 54 53 49 5a 45 5d 20 20 66 T[FD_SETSIZE] f
06f0: 64 5f 61 72 72 61 79 3b 0a 0a 09 2f 2a 20 74 68 d_array;.../* th
0700: 69 73 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 is differs from
0710: 74 68 65 20 64 65 66 69 6e 65 20 69 6e 20 77 69 the define in wi
0720: 6e 73 6f 63 6b 2e 68 20 61 6e 64 20 69 6e 20 63 nsock.h and in c
0730: 79 67 77 69 6e 20 73 79 73 2f 74 79 70 65 73 2e ygwin sys/types.
0740: 68 20 2a 2f 0a 09 73 74 61 74 69 63 20 76 6f 69 h */..static voi
0750: 64 20 6f 70 43 61 6c 6c 28 53 4f 43 4b 45 54 20 d opCall(SOCKET
0760: 66 64 2c 20 46 44 5f 53 45 54 20 73 65 74 29 20 fd, FD_SET set)
0770: 7b 0a 09 09 75 5f 69 6e 74 20 69 3b 0a 09 09 66 {...u_int i;...f
0780: 6f 72 20 28 69 20 3d 20 30 3b 20 69 20 3c 20 73 or (i = 0; i < s
0790: 65 74 2e 66 64 5f 63 6f 75 6e 74 3b 20 69 2b 2b et.fd_count; i++
07a0: 29 0a 09 09 09 69 66 20 28 73 65 74 2e 66 64 5f )....if (set.fd_
07b0: 61 72 72 61 79 5b 69 5d 20 3d 3d 20 66 64 29 0a array[i] == fd).
07c0: 09 09 09 09 62 72 65 61 6b 3b 0a 09 09 69 66 20 ....break;...if
07d0: 28 69 20 3d 3d 20 73 65 74 2e 66 64 5f 63 6f 75 (i == set.fd_cou
07e0: 6e 74 29 0a 09 09 09 69 66 20 28 73 65 74 2e 66 nt)....if (set.f
07f0: 64 5f 63 6f 75 6e 74 20 3c 20 46 44 5f 53 45 54 d_count < FD_SET
0800: 53 49 5a 45 29 20 7b 0a 09 09 09 09 73 65 74 2e SIZE) {.....set.
0810: 66 64 5f 61 72 72 61 79 5b 69 5d 20 3d 20 66 64 fd_array[i] = fd
0820: 3b 0a 09 09 09 09 73 65 74 2e 66 64 5f 63 6f 75 ;.....set.fd_cou
0830: 6e 74 2b 2b 3b 0a 09 09 09 7d 0a 09 7d 0a 7d 0a nt++;....}..}.}.
0840: 61 6c 69 61 73 20 46 44 5f 53 45 54 2a 20 50 46 alias FD_SET* PF
0850: 44 5f 53 45 54 2c 20 4c 50 46 44 5f 53 45 54 3b D_SET, LPFD_SET;
0860: 0a 0a 2f 2f 20 4b 65 65 70 20 74 68 69 73 20 61 ..// Keep this a
0870: 6c 69 61 73 2c 20 73 69 6e 63 65 20 66 64 5f 73 lias, since fd_s
0880: 65 74 20 69 73 6e 27 74 20 61 20 74 61 67 20 6e et isn't a tag n
0890: 61 6d 65 20 69 6e 20 74 68 65 20 6f 72 69 67 69 ame in the origi
08a0: 6e 61 6c 20 68 65 61 64 65 72 2e 0a 61 6c 69 61 nal header..alia
08b0: 73 20 46 44 5f 53 45 54 20 66 64 5f 73 65 74 3b s FD_SET fd_set;
08c0: 0a 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 ..extern(Windows
08d0: 29 20 69 6e 74 20 5f 5f 57 53 41 46 44 49 73 53 ) int __WSAFDIsS
08e0: 65 74 28 53 4f 43 4b 45 54 2c 20 46 44 5f 53 45 et(SOCKET, FD_SE
08f0: 54 2a 29 3b 0a 61 6c 69 61 73 20 5f 5f 57 53 41 T*);.alias __WSA
0900: 46 44 49 73 53 65 74 20 46 44 5f 49 53 53 45 54 FDIsSet FD_ISSET
0910: 3b 0a 0a 76 6f 69 64 20 46 44 5f 43 4c 52 28 53 ;..void FD_CLR(S
0920: 4f 43 4b 45 54 20 66 64 2c 20 46 44 5f 53 45 54 OCKET fd, FD_SET
0930: 2a 20 73 65 74 29 20 7b 0a 09 66 6f 72 20 28 75 * set) {..for (u
0940: 5f 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 _int i = 0; i <
0950: 73 65 74 2e 66 64 5f 63 6f 75 6e 74 3b 20 69 2b set.fd_count; i+
0960: 2b 29 20 7b 0a 09 09 69 66 20 28 73 65 74 2e 66 +) {...if (set.f
0970: 64 5f 61 72 72 61 79 5b 69 5d 20 3d 3d 20 66 64 d_array[i] == fd
0980: 29 20 7b 0a 09 09 09 77 68 69 6c 65 20 28 69 20 ) {....while (i
0990: 3c 20 73 65 74 2e 66 64 5f 63 6f 75 6e 74 20 2d < set.fd_count -
09a0: 20 31 29 20 7b 0a 09 09 09 09 73 65 74 2e 66 64 1) {.....set.fd
09b0: 5f 61 72 72 61 79 5b 69 5d 20 3d 20 73 65 74 2e _array[i] = set.
09c0: 66 64 5f 61 72 72 61 79 5b 69 2b 31 5d 3b 0a 09 fd_array[i+1];..
09d0: 09 09 09 69 2b 2b 3b 0a 09 09 09 7d 0a 09 09 09 ...i++;....}....
09e0: 73 65 74 2e 66 64 5f 63 6f 75 6e 74 2d 2d 3b 0a set.fd_count--;.
09f0: 09 09 09 62 72 65 61 6b 3b 0a 09 09 7d 0a 09 7d ...break;...}..}
0a00: 0a 7d 0a 0a 76 6f 69 64 20 46 44 5f 5a 45 52 4f .}..void FD_ZERO
0a10: 28 46 44 5f 53 45 54 2a 20 73 65 74 29 20 7b 0a (FD_SET* set) {.
0a20: 09 73 65 74 2e 66 64 5f 63 6f 75 6e 74 20 3d 20 .set.fd_count =
0a30: 30 3b 0a 7d 0a 0a 0a 73 74 72 75 63 74 20 54 49 0;.}...struct TI
0a40: 4d 45 56 41 4c 20 7b 0a 09 69 6e 74 20 74 76 5f MEVAL {..int tv_
0a50: 73 65 63 3b 0a 09 69 6e 74 20 74 76 5f 75 73 65 sec;..int tv_use
0a60: 63 3b 0a 0a 09 69 6e 74 20 6f 70 43 6d 70 28 54 c;...int opCmp(T
0a70: 49 4d 45 56 41 4c 20 74 76 29 20 7b 0a 09 09 69 IMEVAL tv) {...i
0a80: 66 20 28 74 76 5f 73 65 63 20 3c 20 74 76 2e 74 f (tv_sec < tv.t
0a90: 76 5f 73 65 63 29 20 20 20 72 65 74 75 72 6e 20 v_sec) return
0aa0: 2d 31 3b 0a 09 09 69 66 20 28 74 76 5f 73 65 63 -1;...if (tv_sec
0ab0: 20 3e 20 74 76 2e 74 76 5f 73 65 63 29 20 20 20 > tv.tv_sec)
0ac0: 72 65 74 75 72 6e 20 20 31 3b 0a 09 09 69 66 20 return 1;...if
0ad0: 28 74 76 5f 75 73 65 63 20 3c 20 74 76 2e 74 76 (tv_usec < tv.tv
0ae0: 5f 75 73 65 63 29 20 72 65 74 75 72 6e 20 2d 31 _usec) return -1
0af0: 3b 0a 09 09 69 66 20 28 74 76 5f 75 73 65 63 20 ;...if (tv_usec
0b00: 3e 20 74 76 2e 74 76 5f 75 73 65 63 29 20 72 65 > tv.tv_usec) re
0b10: 74 75 72 6e 20 20 31 3b 0a 09 09 72 65 74 75 72 turn 1;...retur
0b20: 6e 20 30 3b 0a 09 7d 0a 7d 0a 61 6c 69 61 73 20 n 0;..}.}.alias
0b30: 54 49 4d 45 56 41 4c 2a 20 50 54 49 4d 45 56 41 TIMEVAL* PTIMEVA
0b40: 4c 2c 20 4c 50 54 49 4d 45 56 41 4c 3b 0a 0a 62 L, LPTIMEVAL;..b
0b50: 6f 6f 6c 20 74 69 6d 65 72 69 73 73 65 74 28 54 ool timerisset(T
0b60: 49 4d 45 56 41 4c 2a 20 74 76 70 29 20 7b 0a 09 IMEVAL* tvp) {..
0b70: 72 65 74 75 72 6e 20 74 76 70 2e 74 76 5f 73 65 return tvp.tv_se
0b80: 63 20 7c 7c 20 74 76 70 2e 74 76 5f 75 73 65 63 c || tvp.tv_usec
0b90: 3b 0a 7d 0a 0a 2f 2b 0a 2f 2a 20 44 52 4b 3a 20 ;.}../+./* DRK:
0ba0: 54 68 65 73 65 20 68 61 76 65 20 62 65 65 6e 20 These have been
0bb0: 63 6f 6d 6d 65 6e 74 65 64 20 6f 75 74 20 62 65 commented out be
0bc0: 63 61 75 73 65 20 69 74 20 77 61 73 20 66 65 6c cause it was fel
0bd0: 74 20 74 68 61 74 20 75 73 69 6e 67 0a 20 2a 20 t that using. *
0be0: 6f 6d 43 6d 70 20 6f 6e 20 74 68 65 20 54 49 4d omCmp on the TIM
0bf0: 45 56 41 4c 20 73 74 72 75 63 74 20 77 61 73 20 EVAL struct was
0c00: 63 6c 65 61 6e 65 72 2e 20 20 53 74 69 6c 6c 2c cleaner. Still,
0c10: 20 70 65 72 68 61 70 73 20 74 68 65 73 65 20 73 perhaps these s
0c20: 68 6f 75 6c 64 0a 20 2a 20 62 65 20 65 6e 61 62 hould. * be enab
0c30: 6c 65 64 20 75 6e 64 65 72 20 61 20 76 65 72 73 led under a vers
0c40: 69 6f 6e 20 74 61 67 20 66 6f 72 20 63 6f 6d 70 ion tag for comp
0c50: 61 74 69 62 69 6c 69 74 79 27 73 20 73 61 6b 65 atibility's sake
0c60: 3f 0a 20 2a 20 49 66 20 69 74 20 69 73 20 64 65 ?. * If it is de
0c70: 63 69 64 65 64 20 74 68 61 74 20 69 74 27 73 20 cided that it's
0c80: 6a 75 73 74 20 75 67 6c 79 20 61 6e 64 20 75 6e just ugly and un
0c90: 77 61 6e 74 65 64 2c 20 74 68 65 6e 20 66 65 65 wanted, then fee
0ca0: 6c 20 66 72 65 65 20 74 6f 0a 20 2a 20 64 65 6c l free to. * del
0cb0: 65 74 65 20 74 68 69 73 20 73 65 63 74 69 6f 6e ete this section
0cc0: 20 3a 29 0a 20 2a 2f 0a 69 6e 74 20 74 69 6d 65 :). */.int time
0cd0: 72 63 6d 70 28 54 49 4d 45 56 41 4c 2a 20 74 76 rcmp(TIMEVAL* tv
0ce0: 70 2c 20 54 49 4d 45 56 41 4c 2a 20 75 76 70 29 p, TIMEVAL* uvp)
0cf0: 20 7b 0a 09 72 65 74 75 72 6e 20 74 76 70 2e 74 {..return tvp.t
0d00: 76 5f 73 65 63 20 21 3d 20 75 76 70 2e 74 76 5f v_sec != uvp.tv_
0d10: 73 65 63 20 3f 0a 09 20 20 20 20 28 74 76 70 2e sec ?.. (tvp.
0d20: 74 76 5f 73 65 63 20 3c 20 75 76 70 2e 74 76 5f tv_sec < uvp.tv_
0d30: 73 65 63 20 3f 20 2d 31 20 3a 0a 20 20 20 20 20 sec ? -1 :.
0d40: 20 20 20 20 20 20 20 28 74 76 70 2e 74 76 5f 73 (tvp.tv_s
0d50: 65 63 20 3e 20 75 76 70 2e 74 76 5f 73 65 63 20 ec > uvp.tv_sec
0d60: 3f 20 31 20 3a 20 30 29 29 20 3a 0a 09 20 20 20 ? 1 : 0)) :..
0d70: 20 28 74 76 70 2e 74 76 5f 75 73 65 63 20 3c 20 (tvp.tv_usec <
0d80: 75 76 70 2e 74 76 5f 75 73 65 63 20 3f 20 2d 31 uvp.tv_usec ? -1
0d90: 20 3a 0a 09 20 20 20 20 20 20 20 20 28 74 76 70 :.. (tvp
0da0: 2e 74 76 5f 75 73 65 63 20 3e 20 75 76 70 2e 74 .tv_usec > uvp.t
0db0: 76 5f 75 73 65 63 20 3f 20 31 20 3a 20 30 29 29 v_usec ? 1 : 0))
0dc0: 3b 0a 7d 0a 0a 69 6e 74 20 74 69 6d 65 72 63 6d ;.}..int timercm
0dd0: 70 28 54 49 4d 45 56 41 4c 2a 20 74 76 70 2c 20 p(TIMEVAL* tvp,
0de0: 54 49 4d 45 56 41 4c 2a 20 75 76 70 2c 20 69 6e TIMEVAL* uvp, in
0df0: 74 20 66 75 6e 63 74 69 6f 6e 28 6c 6f 6e 67 2c t function(long,
0e00: 6c 6f 6e 67 29 20 63 6d 70 29 20 7b 0a 09 72 65 long) cmp) {..re
0e10: 74 75 72 6e 20 74 76 70 2e 74 76 5f 73 65 63 20 turn tvp.tv_sec
0e20: 21 3d 20 75 76 70 2e 74 76 5f 73 65 63 20 3f 0a != uvp.tv_sec ?.
0e30: 09 20 20 20 20 63 6d 70 28 74 76 70 2e 74 76 5f . cmp(tvp.tv_
0e40: 73 65 63 2c 20 75 76 70 2e 74 76 5f 73 65 63 29 sec, uvp.tv_sec)
0e50: 20 3a 0a 09 20 20 20 20 63 6d 70 28 74 76 70 2e :.. cmp(tvp.
0e60: 74 76 5f 75 73 65 63 2c 20 75 76 70 2e 74 76 5f tv_usec, uvp.tv_
0e70: 75 73 65 63 29 3b 0a 7d 2b 2f 0a 0a 76 6f 69 64 usec);.}+/..void
0e80: 20 74 69 6d 65 72 63 6c 65 61 72 28 72 65 66 20 timerclear(ref
0e90: 54 49 4d 45 56 41 4c 20 74 76 70 29 20 7b 0a 09 TIMEVAL tvp) {..
0ea0: 74 76 70 2e 74 76 5f 73 65 63 20 3d 20 74 76 70 tvp.tv_sec = tvp
0eb0: 2e 74 76 5f 75 73 65 63 20 3d 20 30 3b 0a 7d 0a .tv_usec = 0;.}.
0ec0: 0a 73 74 72 75 63 74 20 48 4f 53 54 45 4e 54 20 .struct HOSTENT
0ed0: 7b 0a 09 63 68 61 72 2a 20 20 68 5f 6e 61 6d 65 {..char* h_name
0ee0: 3b 0a 09 63 68 61 72 2a 2a 20 68 5f 61 6c 69 61 ;..char** h_alia
0ef0: 73 65 73 3b 0a 09 73 68 6f 72 74 20 20 68 5f 61 ses;..short h_a
0f00: 64 64 72 74 79 70 65 3b 0a 09 73 68 6f 72 74 20 ddrtype;..short
0f10: 20 68 5f 6c 65 6e 67 74 68 3b 0a 09 63 68 61 72 h_length;..char
0f20: 2a 2a 20 68 5f 61 64 64 72 5f 6c 69 73 74 3b 0a ** h_addr_list;.
0f30: 0a 09 63 68 61 72 2a 20 68 5f 61 64 64 72 28 29 ..char* h_addr()
0f40: 20 7b 20 72 65 74 75 72 6e 20 68 5f 61 64 64 72 { return h_addr
0f50: 5f 6c 69 73 74 5b 30 5d 3b 20 7d 0a 09 63 68 61 _list[0]; }..cha
0f60: 72 2a 20 68 5f 61 64 64 72 28 63 68 61 72 2a 20 r* h_addr(char*
0f70: 68 29 20 7b 20 72 65 74 75 72 6e 20 68 5f 61 64 h) { return h_ad
0f80: 64 72 5f 6c 69 73 74 5b 30 5d 20 3d 20 68 3b 20 dr_list[0] = h;
0f90: 7d 0a 7d 0a 61 6c 69 61 73 20 48 4f 53 54 45 4e }.}.alias HOSTEN
0fa0: 54 2a 20 50 48 4f 53 54 45 4e 54 2c 20 4c 50 48 T* PHOSTENT, LPH
0fb0: 4f 53 54 45 4e 54 3b 0a 0a 73 74 72 75 63 74 20 OSTENT;..struct
0fc0: 4c 49 4e 47 45 52 20 7b 0a 09 75 5f 73 68 6f 72 LINGER {..u_shor
0fd0: 74 20 6c 5f 6f 6e 6f 66 66 3b 0a 09 75 5f 73 68 t l_onoff;..u_sh
0fe0: 6f 72 74 20 6c 5f 6c 69 6e 67 65 72 3b 0a 7d 0a ort l_linger;.}.
0ff0: 61 6c 69 61 73 20 4c 49 4e 47 45 52 2a 20 50 4c alias LINGER* PL
1000: 49 4e 47 45 52 2c 20 4c 50 4c 49 4e 47 45 52 3b INGER, LPLINGER;
1010: 0a 0a 65 6e 75 6d 20 3a 20 44 57 4f 52 44 20 7b ..enum : DWORD {
1020: 0a 09 49 4f 43 50 41 52 41 4d 5f 4d 41 53 4b 20 ..IOCPARAM_MASK
1030: 3d 20 30 78 37 66 2c 0a 09 49 4f 43 5f 56 4f 49 = 0x7f,..IOC_VOI
1040: 44 20 20 20 20 20 20 3d 20 30 78 32 30 30 30 30 D = 0x20000
1050: 30 30 30 2c 0a 09 49 4f 43 5f 4f 55 54 20 20 20 000,..IOC_OUT
1060: 20 20 20 20 3d 20 30 78 34 30 30 30 30 30 30 30 = 0x40000000
1070: 2c 0a 09 49 4f 43 5f 49 4e 20 20 20 20 20 20 20 ,..IOC_IN
1080: 20 3d 20 30 78 38 30 30 30 30 30 30 30 2c 0a 09 = 0x80000000,..
1090: 49 4f 43 5f 49 4e 4f 55 54 20 20 20 20 20 3d 20 IOC_INOUT =
10a0: 49 4f 43 5f 49 4e 7c 49 4f 43 5f 4f 55 54 0a 7d IOC_IN|IOC_OUT.}
10b0: 0a 0a 2f 2f 20 4e 4f 54 45 3a 20 54 68 69 73 20 ..// NOTE: This
10c0: 69 73 6e 27 74 20 65 76 65 6e 20 75 73 65 64 20 isn't even used
10d0: 61 6e 79 77 68 65 72 65 2e 2e 2e 0a 74 65 6d 70 anywhere....temp
10e0: 6c 61 74 65 20 5f 49 4f 28 63 68 61 72 20 78 2c late _IO(char x,
10f0: 20 75 62 79 74 65 20 79 29 20 7b 0a 09 63 6f 6e ubyte y) {..con
1100: 73 74 20 44 57 4f 52 44 20 5f 49 4f 20 3d 20 49 st DWORD _IO = I
1110: 4f 43 5f 56 4f 49 44 20 7c 20 28 63 61 73 74 28 OC_VOID | (cast(
1120: 75 62 79 74 65 29 78 3c 3c 38 29 20 7c 20 79 3b ubyte)x<<8) | y;
1130: 0a 7d 0a 0a 74 65 6d 70 6c 61 74 65 20 5f 49 4f .}..template _IO
1140: 52 28 63 68 61 72 20 78 2c 20 75 62 79 74 65 20 R(char x, ubyte
1150: 79 2c 20 74 29 20 7b 0a 09 63 6f 6e 73 74 20 44 y, t) {..const D
1160: 57 4f 52 44 20 5f 49 4f 52 20 3d 20 49 4f 43 5f WORD _IOR = IOC_
1170: 4f 55 54 20 7c 20 28 28 74 2e 73 69 7a 65 6f 66 OUT | ((t.sizeof
1180: 20 26 20 49 4f 43 50 41 52 41 4d 5f 4d 41 53 4b & IOCPARAM_MASK
1190: 29 3c 3c 31 36 29 0a 09 09 7c 20 28 63 61 73 74 )<<16)...| (cast
11a0: 28 75 62 79 74 65 29 78 3c 3c 38 29 20 7c 20 79 (ubyte)x<<8) | y
11b0: 3b 0a 7d 0a 0a 74 65 6d 70 6c 61 74 65 20 5f 49 ;.}..template _I
11c0: 4f 57 28 63 68 61 72 20 78 2c 20 75 62 79 74 65 OW(char x, ubyte
11d0: 20 79 2c 20 74 29 20 7b 0a 09 63 6f 6e 73 74 20 y, t) {..const
11e0: 44 57 4f 52 44 20 5f 49 4f 57 20 3d 20 49 4f 43 DWORD _IOW = IOC
11f0: 5f 49 4e 20 7c 20 28 28 74 2e 73 69 7a 65 6f 66 _IN | ((t.sizeof
1200: 20 26 20 49 4f 43 50 41 52 41 4d 5f 4d 41 53 4b & IOCPARAM_MASK
1210: 29 3c 3c 31 36 29 0a 09 09 7c 20 28 63 61 73 74 )<<16)...| (cast
1220: 28 75 62 79 74 65 29 78 3c 3c 38 29 20 7c 20 79 (ubyte)x<<8) | y
1230: 3b 0a 7d 0a 0a 65 6e 75 6d 20 3a 20 44 57 4f 52 ;.}..enum : DWOR
1240: 44 20 7b 0a 09 46 49 4f 4e 42 49 4f 20 20 20 20 D {..FIONBIO
1250: 3d 20 5f 49 4f 57 21 28 27 66 27 2c 20 31 32 36 = _IOW!('f', 126
1260: 2c 20 75 5f 6c 6f 6e 67 29 2c 0a 09 46 49 4f 4e , u_long),..FION
1270: 52 45 41 44 20 20 20 3d 20 5f 49 4f 52 21 28 27 READ = _IOR!('
1280: 66 27 2c 20 31 32 37 2c 20 75 5f 6c 6f 6e 67 29 f', 127, u_long)
1290: 2c 0a 09 46 49 4f 41 53 59 4e 43 20 20 20 3d 20 ,..FIOASYNC =
12a0: 5f 49 4f 57 21 28 27 66 27 2c 20 31 32 35 2c 20 _IOW!('f', 125,
12b0: 75 5f 6c 6f 6e 67 29 2c 0a 09 53 49 4f 43 53 48 u_long),..SIOCSH
12c0: 49 57 41 54 20 3d 20 5f 49 4f 57 21 28 27 73 27 IWAT = _IOW!('s'
12d0: 2c 20 20 20 30 2c 20 75 5f 6c 6f 6e 67 29 2c 0a , 0, u_long),.
12e0: 09 53 49 4f 43 47 48 49 57 41 54 20 3d 20 5f 49 .SIOCGHIWAT = _I
12f0: 4f 52 21 28 27 73 27 2c 20 20 20 31 2c 20 75 5f OR!('s', 1, u_
1300: 6c 6f 6e 67 29 2c 0a 09 53 49 4f 43 53 4c 4f 57 long),..SIOCSLOW
1310: 41 54 20 3d 20 5f 49 4f 57 21 28 27 73 27 2c 20 AT = _IOW!('s',
1320: 20 20 32 2c 20 75 5f 6c 6f 6e 67 29 2c 0a 09 53 2, u_long),..S
1330: 49 4f 43 47 4c 4f 57 41 54 20 3d 20 5f 49 4f 52 IOCGLOWAT = _IOR
1340: 21 28 27 73 27 2c 20 20 20 33 2c 20 75 5f 6c 6f !('s', 3, u_lo
1350: 6e 67 29 2c 0a 09 53 49 4f 43 41 54 4d 41 52 4b ng),..SIOCATMARK
1360: 20 3d 20 5f 49 4f 52 21 28 27 73 27 2c 20 20 20 = _IOR!('s',
1370: 37 2c 20 75 5f 6c 6f 6e 67 29 0a 7d 0a 0a 73 74 7, u_long).}..st
1380: 72 75 63 74 20 6e 65 74 65 6e 74 20 7b 0a 09 63 ruct netent {..c
1390: 68 61 72 2a 20 20 6e 5f 6e 61 6d 65 3b 0a 09 63 har* n_name;..c
13a0: 68 61 72 2a 2a 20 6e 5f 61 6c 69 61 73 65 73 3b har** n_aliases;
13b0: 0a 09 73 68 6f 72 74 20 20 6e 5f 61 64 64 72 74 ..short n_addrt
13c0: 79 70 65 3b 0a 09 75 5f 6c 6f 6e 67 20 6e 5f 6e ype;..u_long n_n
13d0: 65 74 3b 0a 7d 0a 0a 73 74 72 75 63 74 20 53 45 et;.}..struct SE
13e0: 52 56 45 4e 54 20 7b 0a 09 63 68 61 72 2a 20 20 RVENT {..char*
13f0: 73 5f 6e 61 6d 65 3b 0a 09 63 68 61 72 2a 2a 20 s_name;..char**
1400: 73 5f 61 6c 69 61 73 65 73 3b 0a 09 73 68 6f 72 s_aliases;..shor
1410: 74 20 20 73 5f 70 6f 72 74 3b 0a 09 63 68 61 72 t s_port;..char
1420: 2a 20 20 73 5f 70 72 6f 74 6f 3b 0a 7d 0a 61 6c * s_proto;.}.al
1430: 69 61 73 20 53 45 52 56 45 4e 54 2a 20 50 53 45 ias SERVENT* PSE
1440: 52 56 45 4e 54 2c 20 4c 50 53 45 52 56 45 4e 54 RVENT, LPSERVENT
1450: 3b 0a 0a 73 74 72 75 63 74 20 50 52 4f 54 4f 45 ;..struct PROTOE
1460: 4e 54 20 7b 0a 09 63 68 61 72 2a 20 20 70 5f 6e NT {..char* p_n
1470: 61 6d 65 3b 0a 09 63 68 61 72 2a 2a 20 70 5f 61 ame;..char** p_a
1480: 6c 69 61 73 65 73 3b 0a 09 73 68 6f 72 74 20 20 liases;..short
1490: 70 5f 70 72 6f 74 6f 3b 0a 7d 0a 61 6c 69 61 73 p_proto;.}.alias
14a0: 20 50 52 4f 54 4f 45 4e 54 2a 20 50 50 52 4f 54 PROTOENT* PPROT
14b0: 4f 45 4e 54 2c 20 4c 50 50 52 4f 54 4f 45 4e 54 OENT, LPPROTOENT
14c0: 3b 0a 0a 65 6e 75 6d 20 3a 20 69 6e 74 20 7b 0a ;..enum : int {.
14d0: 09 49 50 50 52 4f 54 4f 5f 49 50 20 20 20 3d 20 .IPPROTO_IP =
14e0: 20 20 30 2c 0a 09 49 50 50 52 4f 54 4f 5f 49 43 0,..IPPROTO_IC
14f0: 4d 50 20 3d 20 20 20 31 2c 0a 09 49 50 50 52 4f MP = 1,..IPPRO
1500: 54 4f 5f 49 47 4d 50 20 3d 20 20 20 32 2c 0a 09 TO_IGMP = 2,..
1510: 49 50 50 52 4f 54 4f 5f 47 47 50 20 20 3d 20 20 IPPROTO_GGP =
1520: 20 33 2c 0a 09 49 50 50 52 4f 54 4f 5f 54 43 50 3,..IPPROTO_TCP
1530: 20 20 3d 20 20 20 36 2c 0a 09 49 50 50 52 4f 54 = 6,..IPPROT
1540: 4f 5f 50 55 50 20 20 3d 20 20 31 32 2c 0a 09 49 O_PUP = 12,..I
1550: 50 50 52 4f 54 4f 5f 55 44 50 20 20 3d 20 20 31 PPROTO_UDP = 1
1560: 37 2c 0a 09 49 50 50 52 4f 54 4f 5f 49 44 50 20 7,..IPPROTO_IDP
1570: 20 3d 20 20 32 32 2c 0a 09 49 50 50 52 4f 54 4f = 22,..IPPROTO
1580: 5f 4e 44 20 20 20 3d 20 20 37 37 2c 0a 09 49 50 _ND = 77,..IP
1590: 50 52 4f 54 4f 5f 52 41 57 20 20 3d 20 32 35 35 PROTO_RAW = 255
15a0: 2c 0a 09 49 50 50 52 4f 54 4f 5f 4d 41 58 20 20 ,..IPPROTO_MAX
15b0: 3d 20 32 35 36 2c 0a 0a 09 2f 2f 20 49 50 76 36 = 256,...// IPv6
15c0: 20 6f 70 74 69 6f 6e 73 0a 09 49 50 50 52 4f 54 options..IPPROT
15d0: 4f 5f 48 4f 50 4f 50 54 53 20 20 3d 20 20 30 2c O_HOPOPTS = 0,
15e0: 20 2f 2f 20 49 50 76 36 20 48 6f 70 2d 62 79 2d // IPv6 Hop-by-
15f0: 48 6f 70 20 6f 70 74 69 6f 6e 73 0a 09 49 50 50 Hop options..IPP
1600: 52 4f 54 4f 5f 49 50 56 36 20 20 20 20 20 3d 20 ROTO_IPV6 =
1610: 34 31 2c 20 2f 2f 20 49 50 76 36 20 68 65 61 64 41, // IPv6 head
1620: 65 72 0a 09 49 50 50 52 4f 54 4f 5f 52 4f 55 54 er..IPPROTO_ROUT
1630: 49 4e 47 20 20 3d 20 34 33 2c 20 2f 2f 20 49 50 ING = 43, // IP
1640: 76 36 20 52 6f 75 74 69 6e 67 20 68 65 61 64 65 v6 Routing heade
1650: 72 0a 09 49 50 50 52 4f 54 4f 5f 46 52 41 47 4d r..IPPROTO_FRAGM
1660: 45 4e 54 20 3d 20 34 34 2c 20 2f 2f 20 49 50 76 ENT = 44, // IPv
1670: 36 20 66 72 61 67 6d 65 6e 74 61 74 69 6f 6e 20 6 fragmentation
1680: 68 65 61 64 65 72 0a 09 49 50 50 52 4f 54 4f 5f header..IPPROTO_
1690: 45 53 50 20 20 20 20 20 20 3d 20 35 30 2c 20 2f ESP = 50, /
16a0: 2f 20 65 6e 63 61 70 73 75 6c 61 74 69 6e 67 20 / encapsulating
16b0: 73 65 63 75 72 69 74 79 20 70 61 79 6c 6f 61 64 security payload
16c0: 0a 09 49 50 50 52 4f 54 4f 5f 41 48 20 20 20 20 ..IPPROTO_AH
16d0: 20 20 20 3d 20 35 31 2c 20 2f 2f 20 61 75 74 68 = 51, // auth
16e0: 65 6e 74 69 63 61 74 69 6f 6e 20 68 65 61 64 65 entication heade
16f0: 72 0a 09 49 50 50 52 4f 54 4f 5f 49 43 4d 50 56 r..IPPROTO_ICMPV
1700: 36 20 20 20 3d 20 35 38 2c 20 2f 2f 20 49 43 4d 6 = 58, // ICM
1710: 50 76 36 0a 09 49 50 50 52 4f 54 4f 5f 4e 4f 4e Pv6..IPPROTO_NON
1720: 45 20 20 20 20 20 3d 20 35 39 2c 20 2f 2f 20 49 E = 59, // I
1730: 50 76 36 20 6e 6f 20 6e 65 78 74 20 68 65 61 64 Pv6 no next head
1740: 65 72 0a 09 49 50 50 52 4f 54 4f 5f 44 53 54 4f er..IPPROTO_DSTO
1750: 50 54 53 20 20 3d 20 36 30 20 20 2f 2f 20 49 50 PTS = 60 // IP
1760: 76 36 20 44 65 73 74 69 6e 61 74 69 6f 6e 20 6f v6 Destination o
1770: 70 74 69 6f 6e 73 0a 7d 0a 0a 65 6e 75 6d 20 7b ptions.}..enum {
1780: 0a 09 49 50 50 4f 52 54 5f 45 43 48 4f 20 20 20 ..IPPORT_ECHO
1790: 20 20 20 20 20 3d 20 20 20 20 37 2c 0a 09 49 50 = 7,..IP
17a0: 50 4f 52 54 5f 44 49 53 43 41 52 44 20 20 20 20 PORT_DISCARD
17b0: 20 3d 20 20 20 20 39 2c 0a 09 49 50 50 4f 52 54 = 9,..IPPORT
17c0: 5f 53 59 53 54 41 54 20 20 20 20 20 20 3d 20 20 _SYSTAT =
17d0: 20 31 31 2c 0a 09 49 50 50 4f 52 54 5f 44 41 59 11,..IPPORT_DAY
17e0: 54 49 4d 45 20 20 20 20 20 3d 20 20 20 31 33 2c TIME = 13,
17f0: 0a 09 49 50 50 4f 52 54 5f 4e 45 54 53 54 41 54 ..IPPORT_NETSTAT
1800: 20 20 20 20 20 3d 20 20 20 31 35 2c 0a 09 49 50 = 15,..IP
1810: 50 4f 52 54 5f 46 54 50 20 20 20 20 20 20 20 20 PORT_FTP
1820: 20 3d 20 20 20 32 31 2c 0a 09 49 50 50 4f 52 54 = 21,..IPPORT
1830: 5f 54 45 4c 4e 45 54 20 20 20 20 20 20 3d 20 20 _TELNET =
1840: 20 32 33 2c 0a 09 49 50 50 4f 52 54 5f 53 4d 54 23,..IPPORT_SMT
1850: 50 20 20 20 20 20 20 20 20 3d 20 20 20 32 35 2c P = 25,
1860: 0a 09 49 50 50 4f 52 54 5f 54 49 4d 45 53 45 52 ..IPPORT_TIMESER
1870: 56 45 52 20 20 3d 20 20 20 33 37 2c 0a 09 49 50 VER = 37,..IP
1880: 50 4f 52 54 5f 4e 41 4d 45 53 45 52 56 45 52 20 PORT_NAMESERVER
1890: 20 3d 20 20 20 34 32 2c 0a 09 49 50 50 4f 52 54 = 42,..IPPORT
18a0: 5f 57 48 4f 49 53 20 20 20 20 20 20 20 3d 20 20 _WHOIS =
18b0: 20 34 33 2c 0a 09 49 50 50 4f 52 54 5f 4d 54 50 43,..IPPORT_MTP
18c0: 20 20 20 20 20 20 20 20 20 3d 20 20 20 35 37 2c = 57,
18d0: 0a 09 49 50 50 4f 52 54 5f 54 46 54 50 20 20 20 ..IPPORT_TFTP
18e0: 20 20 20 20 20 3d 20 20 20 36 39 2c 0a 09 49 50 = 69,..IP
18f0: 50 4f 52 54 5f 52 4a 45 20 20 20 20 20 20 20 20 PORT_RJE
1900: 20 3d 20 20 20 37 37 2c 0a 09 49 50 50 4f 52 54 = 77,..IPPORT
1910: 5f 46 49 4e 47 45 52 20 20 20 20 20 20 3d 20 20 _FINGER =
1920: 20 37 39 2c 0a 09 49 50 50 4f 52 54 5f 54 54 59 79,..IPPORT_TTY
1930: 4c 49 4e 4b 20 20 20 20 20 3d 20 20 20 38 37 2c LINK = 87,
1940: 0a 09 49 50 50 4f 52 54 5f 53 55 50 44 55 50 20 ..IPPORT_SUPDUP
1950: 20 20 20 20 20 3d 20 20 20 39 35 2c 0a 09 49 50 = 95,..IP
1960: 50 4f 52 54 5f 45 58 45 43 53 45 52 56 45 52 20 PORT_EXECSERVER
1970: 20 3d 20 20 35 31 32 2c 0a 09 49 50 50 4f 52 54 = 512,..IPPORT
1980: 5f 4c 4f 47 49 4e 53 45 52 56 45 52 20 3d 20 20 _LOGINSERVER =
1990: 35 31 33 2c 0a 09 49 50 50 4f 52 54 5f 43 4d 44 513,..IPPORT_CMD
19a0: 53 45 52 56 45 52 20 20 20 3d 20 20 35 31 34 2c SERVER = 514,
19b0: 0a 09 49 50 50 4f 52 54 5f 45 46 53 53 45 52 56 ..IPPORT_EFSSERV
19c0: 45 52 20 20 20 3d 20 20 35 32 30 2c 0a 09 49 50 ER = 520,..IP
19d0: 50 4f 52 54 5f 42 49 46 46 55 44 50 20 20 20 20 PORT_BIFFUDP
19e0: 20 3d 20 20 35 31 32 2c 0a 09 49 50 50 4f 52 54 = 512,..IPPORT
19f0: 5f 57 48 4f 53 45 52 56 45 52 20 20 20 3d 20 20 _WHOSERVER =
1a00: 35 31 33 2c 0a 09 49 50 50 4f 52 54 5f 52 4f 55 513,..IPPORT_ROU
1a10: 54 45 53 45 52 56 45 52 20 3d 20 20 35 32 30 2c TESERVER = 520,
1a20: 0a 09 49 50 50 4f 52 54 5f 52 45 53 45 52 56 45 ..IPPORT_RESERVE
1a30: 44 20 20 20 20 3d 20 31 30 32 34 0a 7d 0a 0a 65 D = 1024.}..e
1a40: 6e 75 6d 20 7b 0a 09 49 4d 50 4c 49 4e 4b 5f 49 num {..IMPLINK_I
1a50: 50 20 20 20 20 20 20 20 20 20 3d 20 20 31 35 35 P = 155
1a60: 2c 0a 09 49 4d 50 4c 49 4e 4b 5f 4c 4f 57 45 58 ,..IMPLINK_LOWEX
1a70: 50 45 52 20 20 20 3d 20 20 31 35 36 2c 0a 09 49 PER = 156,..I
1a80: 4d 50 4c 49 4e 4b 5f 48 49 47 48 45 58 50 45 52 MPLINK_HIGHEXPER
1a90: 20 20 3d 20 20 31 35 38 0a 7d 0a 0a 73 74 72 75 = 158.}..stru
1aa0: 63 74 20 49 4e 5f 41 44 44 52 20 7b 0a 09 75 6e ct IN_ADDR {..un
1ab0: 69 6f 6e 20 7b 0a 09 09 73 74 72 75 63 74 20 7b ion {...struct {
1ac0: 20 75 5f 63 68 61 72 20 20 73 5f 62 31 2c 20 73 u_char s_b1, s
1ad0: 5f 62 32 2c 20 73 5f 62 33 2c 20 73 5f 62 34 3b _b2, s_b3, s_b4;
1ae0: 20 7d 0a 09 09 73 74 72 75 63 74 20 7b 20 75 5f }...struct { u_
1af0: 63 68 61 72 20 20 73 5f 6e 65 74 2c 20 73 5f 68 char s_net, s_h
1b00: 6f 73 74 2c 20 73 5f 6c 68 2c 20 73 5f 69 6d 70 ost, s_lh, s_imp
1b10: 6e 6f 3b 20 7d 0a 09 09 73 74 72 75 63 74 20 7b no; }...struct {
1b20: 20 75 5f 73 68 6f 72 74 20 73 5f 77 31 2c 20 73 u_short s_w1, s
1b30: 5f 77 32 3b 20 7d 0a 09 09 73 74 72 75 63 74 20 _w2; }...struct
1b40: 7b 20 75 5f 73 68 6f 72 74 20 73 5f 77 5f 2c 20 { u_short s_w_,
1b50: 73 5f 69 6d 70 3b 20 7d 20 2f 2f 20 43 61 6e 20 s_imp; } // Can
1b60: 49 20 67 65 74 20 72 69 64 20 6f 66 20 73 5f 77 I get rid of s_w
1b70: 5f 20 75 73 69 6e 67 20 61 6c 69 67 6e 6d 65 6e _ using alignmen
1b80: 74 20 74 72 69 63 6b 73 3f 0a 09 09 75 5f 6c 6f t tricks?...u_lo
1b90: 6e 67 20 53 5f 61 64 64 72 3b 0a 09 09 75 5f 6c ng S_addr;...u_l
1ba0: 6f 6e 67 20 73 5f 61 64 64 72 3b 0a 09 7d 0a 7d ong s_addr;..}.}
1bb0: 0a 61 6c 69 61 73 20 49 4e 5f 41 44 44 52 2a 20 .alias IN_ADDR*
1bc0: 50 49 4e 5f 41 44 44 52 2c 20 4c 50 49 4e 5f 41 PIN_ADDR, LPIN_A
1bd0: 44 44 52 3b 0a 0a 2f 2f 20 49 4e 5f 43 4c 41 53 DDR;..// IN_CLAS
1be0: 53 78 20 61 72 65 20 6e 6f 74 20 75 73 65 64 20 Sx are not used
1bf0: 61 6e 79 77 68 65 72 65 20 6f 72 20 64 6f 63 75 anywhere or docu
1c00: 6d 65 6e 74 65 64 20 6f 6e 20 4d 53 44 4e 2e 0a mented on MSDN..
1c10: 62 6f 6f 6c 20 49 4e 5f 43 4c 41 53 53 41 28 69 bool IN_CLASSA(i
1c20: 6e 74 20 69 29 20 7b 20 72 65 74 75 72 6e 20 28 nt i) { return (
1c30: 69 20 26 20 30 78 38 30 30 30 30 30 30 30 29 20 i & 0x80000000)
1c40: 3d 3d 20 30 3b 20 7d 0a 0a 63 6f 6e 73 74 20 49 == 0; }..const I
1c50: 4e 5f 43 4c 41 53 53 41 5f 4e 45 54 20 20 20 20 N_CLASSA_NET
1c60: 3d 20 30 78 66 66 30 30 30 30 30 30 3b 0a 63 6f = 0xff000000;.co
1c70: 6e 73 74 20 49 4e 5f 43 4c 41 53 53 41 5f 4e 53 nst IN_CLASSA_NS
1c80: 48 49 46 54 20 3d 20 20 20 20 20 20 20 20 20 32 HIFT = 2
1c90: 34 3b 0a 63 6f 6e 73 74 20 49 4e 5f 43 4c 41 53 4;.const IN_CLAS
1ca0: 53 41 5f 48 4f 53 54 20 20 20 3d 20 30 78 30 30 SA_HOST = 0x00
1cb0: 66 66 66 66 66 66 3b 0a 63 6f 6e 73 74 20 49 4e ffffff;.const IN
1cc0: 5f 43 4c 41 53 53 41 5f 4d 41 58 20 20 20 20 3d _CLASSA_MAX =
1cd0: 20 20 20 20 20 20 20 20 31 32 38 3b 0a 0a 62 6f 128;..bo
1ce0: 6f 6c 20 49 4e 5f 43 4c 41 53 53 42 28 69 6e 74 ol IN_CLASSB(int
1cf0: 20 69 29 20 7b 20 72 65 74 75 72 6e 20 28 69 20 i) { return (i
1d00: 26 20 30 78 63 30 30 30 30 30 30 30 29 20 3d 3d & 0xc0000000) ==
1d10: 20 30 78 38 30 30 30 30 30 30 30 3b 20 7d 0a 0a 0x80000000; }..
1d20: 63 6f 6e 73 74 20 49 4e 5f 43 4c 41 53 53 42 5f const IN_CLASSB_
1d30: 4e 45 54 20 20 20 20 3d 20 30 78 66 66 66 66 30 NET = 0xffff0
1d40: 30 30 30 3b 0a 63 6f 6e 73 74 20 49 4e 5f 43 4c 000;.const IN_CL
1d50: 41 53 53 42 5f 4e 53 48 49 46 54 20 3d 20 20 20 ASSB_NSHIFT =
1d60: 20 20 20 20 20 20 31 36 3b 0a 63 6f 6e 73 74 20 16;.const
1d70: 49 4e 5f 43 4c 41 53 53 42 5f 48 4f 53 54 20 20 IN_CLASSB_HOST
1d80: 20 3d 20 30 78 30 30 30 30 66 66 66 66 3b 0a 63 = 0x0000ffff;.c
1d90: 6f 6e 73 74 20 49 4e 5f 43 4c 41 53 53 42 5f 4d onst IN_CLASSB_M
1da0: 41 58 20 20 20 20 3d 20 20 20 20 20 20 36 35 35 AX = 655
1db0: 33 36 3b 0a 0a 62 6f 6f 6c 20 49 4e 5f 43 4c 41 36;..bool IN_CLA
1dc0: 53 53 43 28 69 6e 74 20 69 29 20 7b 20 72 65 74 SSC(int i) { ret
1dd0: 75 72 6e 20 28 69 20 26 20 30 78 65 30 30 30 30 urn (i & 0xe0000
1de0: 30 30 30 29 20 3d 3d 20 30 78 63 30 30 30 30 30 000) == 0xc00000
1df0: 30 30 3b 20 7d 0a 0a 63 6f 6e 73 74 20 49 4e 5f 00; }..const IN_
1e00: 43 4c 41 53 53 43 5f 4e 45 54 20 20 20 20 3d 20 CLASSC_NET =
1e10: 30 78 66 66 66 66 66 66 30 30 3b 0a 63 6f 6e 73 0xffffff00;.cons
1e20: 74 20 49 4e 5f 43 4c 41 53 53 43 5f 4e 53 48 49 t IN_CLASSC_NSHI
1e30: 46 54 20 3d 20 20 20 20 20 20 20 20 20 20 38 3b FT = 8;
1e40: 0a 63 6f 6e 73 74 20 49 4e 5f 43 4c 41 53 53 43 .const IN_CLASSC
1e50: 5f 48 4f 53 54 20 20 20 3d 20 30 78 30 30 30 30 _HOST = 0x0000
1e60: 30 30 66 66 3b 0a 0a 63 6f 6e 73 74 20 75 5f 6c 00ff;..const u_l
1e70: 6f 6e 67 0a 09 49 4e 41 44 44 52 5f 41 4e 59 20 ong..INADDR_ANY
1e80: 20 20 20 20 20 20 3d 20 30 2c 0a 09 49 4e 41 44 = 0,..INAD
1e90: 44 52 5f 4c 4f 4f 50 42 41 43 4b 20 20 3d 20 30 DR_LOOPBACK = 0
1ea0: 78 37 46 30 30 30 30 30 31 2c 0a 09 49 4e 41 44 x7F000001,..INAD
1eb0: 44 52 5f 42 52 4f 41 44 43 41 53 54 20 3d 20 30 DR_BROADCAST = 0
1ec0: 78 46 46 46 46 46 46 46 46 2c 0a 09 49 4e 41 44 xFFFFFFFF,..INAD
1ed0: 44 52 5f 4e 4f 4e 45 20 20 20 20 20 20 3d 20 30 DR_NONE = 0
1ee0: 78 46 46 46 46 46 46 46 46 3b 0a 0a 73 74 72 75 xFFFFFFFF;..stru
1ef0: 63 74 20 53 4f 43 4b 41 44 44 52 5f 49 4e 20 7b ct SOCKADDR_IN {
1f00: 0a 09 73 68 6f 72 74 20 20 20 73 69 6e 5f 66 61 ..short sin_fa
1f10: 6d 69 6c 79 3b 0a 09 75 5f 73 68 6f 72 74 20 73 mily;..u_short s
1f20: 69 6e 5f 70 6f 72 74 3b 0a 09 49 4e 5f 41 44 44 in_port;..IN_ADD
1f30: 52 20 73 69 6e 5f 61 64 64 72 3b 0a 09 63 68 61 R sin_addr;..cha
1f40: 72 5b 38 5d 20 73 69 6e 5f 7a 65 72 6f 3b 0a 7d r[8] sin_zero;.}
1f50: 0a 61 6c 69 61 73 20 53 4f 43 4b 41 44 44 52 5f .alias SOCKADDR_
1f60: 49 4e 2a 20 50 53 4f 43 4b 41 44 44 52 5f 49 4e IN* PSOCKADDR_IN
1f70: 2c 20 4c 50 53 4f 43 4b 41 44 44 52 5f 49 4e 3b , LPSOCKADDR_IN;
1f80: 0a 0a 63 6f 6e 73 74 20 73 69 7a 65 5f 74 0a 09 ..const size_t..
1f90: 57 53 41 44 45 53 43 52 49 50 54 49 4f 4e 5f 4c WSADESCRIPTION_L
1fa0: 45 4e 20 3d 20 32 35 36 2c 0a 09 57 53 41 53 59 EN = 256,..WSASY
1fb0: 53 5f 53 54 41 54 55 53 5f 4c 45 4e 20 20 3d 20 S_STATUS_LEN =
1fc0: 31 32 38 3b 0a 0a 73 74 72 75 63 74 20 57 53 41 128;..struct WSA
1fd0: 44 41 54 41 20 7b 0a 09 57 4f 52 44 20 20 20 77 DATA {..WORD w
1fe0: 56 65 72 73 69 6f 6e 3b 0a 09 57 4f 52 44 20 20 Version;..WORD
1ff0: 20 77 48 69 67 68 56 65 72 73 69 6f 6e 3b 0a 09 wHighVersion;..
2000: 63 68 61 72 5b 57 53 41 44 45 53 43 52 49 50 54 char[WSADESCRIPT
2010: 49 4f 4e 5f 4c 45 4e 2b 31 5d 20 73 7a 44 65 73 ION_LEN+1] szDes
2020: 63 72 69 70 74 69 6f 6e 3b 0a 09 63 68 61 72 5b cription;..char[
2030: 57 53 41 53 59 53 5f 53 54 41 54 55 53 5f 4c 45 WSASYS_STATUS_LE
2040: 4e 2b 31 5d 20 20 73 7a 53 79 73 74 65 6d 53 74 N+1] szSystemSt
2050: 61 74 75 73 3b 0a 09 75 73 68 6f 72 74 20 69 4d atus;..ushort iM
2060: 61 78 53 6f 63 6b 65 74 73 3b 0a 09 75 73 68 6f axSockets;..usho
2070: 72 74 20 69 4d 61 78 55 64 70 44 67 3b 0a 09 63 rt iMaxUdpDg;..c
2080: 68 61 72 2a 20 20 6c 70 56 65 6e 64 6f 72 49 6e har* lpVendorIn
2090: 66 6f 3b 0a 7d 0a 61 6c 69 61 73 20 57 53 41 44 fo;.}.alias WSAD
20a0: 41 54 41 2a 20 4c 50 57 53 41 44 41 54 41 3b 0a ATA* LPWSADATA;.
20b0: 0a 2f 2f 20 54 68 69 73 20 69 73 20 6e 6f 74 20 .// This is not
20c0: 64 6f 63 75 6d 65 6e 74 65 64 20 6f 6e 20 74 68 documented on th
20d0: 65 20 4d 53 44 4e 20 73 69 74 65 0a 63 6f 6e 73 e MSDN site.cons
20e0: 74 20 49 50 5f 4f 50 54 49 4f 4e 53 20 3d 20 31 t IP_OPTIONS = 1
20f0: 3b 0a 0a 63 6f 6e 73 74 20 69 6e 74 0a 09 53 4f ;..const int..SO
2100: 5f 4f 50 54 49 4f 4e 53 20 20 20 20 20 3d 20 20 _OPTIONS =
2110: 20 31 2c 0a 09 53 4f 5f 44 45 42 55 47 20 20 20 1,..SO_DEBUG
2120: 20 20 20 20 3d 20 20 20 31 2c 0a 09 53 4f 5f 41 = 1,..SO_A
2130: 43 43 45 50 54 43 4f 4e 4e 20 20 3d 20 20 20 32 CCEPTCONN = 2
2140: 2c 0a 09 53 4f 5f 52 45 55 53 45 41 44 44 52 20 ,..SO_REUSEADDR
2150: 20 20 3d 20 20 20 34 2c 0a 09 53 4f 5f 4b 45 45 = 4,..SO_KEE
2160: 50 41 4c 49 56 45 20 20 20 3d 20 20 20 38 2c 0a PALIVE = 8,.
2170: 09 53 4f 5f 44 4f 4e 54 52 4f 55 54 45 20 20 20 .SO_DONTROUTE
2180: 3d 20 20 31 36 2c 0a 09 53 4f 5f 42 52 4f 41 44 = 16,..SO_BROAD
2190: 43 41 53 54 20 20 20 3d 20 20 33 32 2c 0a 09 53 CAST = 32,..S
21a0: 4f 5f 55 53 45 4c 4f 4f 50 42 41 43 4b 20 3d 20 O_USELOOPBACK =
21b0: 20 36 34 2c 0a 09 53 4f 5f 4c 49 4e 47 45 52 20 64,..SO_LINGER
21c0: 20 20 20 20 20 3d 20 31 32 38 2c 0a 09 53 4f 5f = 128,..SO_
21d0: 4f 4f 42 49 4e 4c 49 4e 45 20 20 20 3d 20 32 35 OOBINLINE = 25
21e0: 36 2c 0a 09 53 4f 5f 44 4f 4e 54 4c 49 4e 47 45 6,..SO_DONTLINGE
21f0: 52 20 20 3d 20 7e 53 4f 5f 4c 49 4e 47 45 52 2c R = ~SO_LINGER,
2200: 0a 09 53 4f 5f 45 58 43 4c 55 53 49 56 45 41 44 ..SO_EXCLUSIVEAD
2210: 44 52 55 53 45 3d 20 7e 53 4f 5f 52 45 55 53 45 DRUSE= ~SO_REUSE
2220: 41 44 44 52 3b 0a 0a 65 6e 75 6d 20 3a 20 69 6e ADDR;..enum : in
2230: 74 20 7b 0a 09 53 4f 5f 53 4e 44 42 55 46 20 3d t {..SO_SNDBUF =
2240: 20 30 78 31 30 30 31 2c 0a 09 53 4f 5f 52 43 56 0x1001,..SO_RCV
2250: 42 55 46 2c 0a 09 53 4f 5f 53 4e 44 4c 4f 57 41 BUF,..SO_SNDLOWA
2260: 54 2c 0a 09 53 4f 5f 52 43 56 4c 4f 57 41 54 2c T,..SO_RCVLOWAT,
2270: 0a 09 53 4f 5f 53 4e 44 54 49 4d 45 4f 2c 0a 09 ..SO_SNDTIMEO,..
2280: 53 4f 5f 52 43 56 54 49 4d 45 4f 2c 0a 09 53 4f SO_RCVTIMEO,..SO
2290: 5f 45 52 52 4f 52 2c 0a 09 53 4f 5f 54 59 50 45 _ERROR,..SO_TYPE
22a0: 20 2f 2f 20 3d 20 30 78 31 30 30 38 0a 7d 0a 0a // = 0x1008.}..
22b0: 63 6f 6e 73 74 20 53 4f 43 4b 45 54 20 49 4e 56 const SOCKET INV
22c0: 41 4c 49 44 5f 53 4f 43 4b 45 54 20 3d 20 63 61 ALID_SOCKET = ca
22d0: 73 74 28 53 4f 43 4b 45 54 29 28 7e 30 29 3b 0a st(SOCKET)(~0);.
22e0: 63 6f 6e 73 74 20 69 6e 74 20 53 4f 43 4b 45 54 const int SOCKET
22f0: 5f 45 52 52 4f 52 20 3d 20 2d 31 3b 0a 0a 65 6e _ERROR = -1;..en
2300: 75 6d 20 3a 20 69 6e 74 20 7b 0a 09 53 4f 43 4b um : int {..SOCK
2310: 5f 53 54 52 45 41 4d 20 3d 20 31 2c 0a 09 53 4f _STREAM = 1,..SO
2320: 43 4b 5f 44 47 52 41 4d 2c 0a 09 53 4f 43 4b 5f CK_DGRAM,..SOCK_
2330: 52 41 57 2c 0a 09 53 4f 43 4b 5f 52 44 4d 2c 0a RAW,..SOCK_RDM,.
2340: 09 53 4f 43 4b 5f 53 45 51 50 41 43 4b 45 54 0a .SOCK_SEQPACKET.
2350: 7d 0a 0a 63 6f 6e 73 74 20 69 6e 74 20 54 43 50 }..const int TCP
2360: 5f 4e 4f 44 45 4c 41 59 20 3d 20 30 78 30 30 30 _NODELAY = 0x000
2370: 31 3b 0a 0a 65 6e 75 6d 20 3a 20 69 6e 74 20 7b 1;..enum : int {
2380: 0a 09 41 46 5f 55 4e 53 50 45 43 2c 0a 09 41 46 ..AF_UNSPEC,..AF
2390: 5f 55 4e 49 58 2c 0a 09 41 46 5f 49 4e 45 54 2c _UNIX,..AF_INET,
23a0: 0a 09 41 46 5f 49 4d 50 4c 49 4e 4b 2c 0a 09 41 ..AF_IMPLINK,..A
23b0: 46 5f 50 55 50 2c 0a 09 41 46 5f 43 48 41 4f 53 F_PUP,..AF_CHAOS
23c0: 2c 0a 09 41 46 5f 49 50 58 2c 20 20 2f 2f 20 3d ,..AF_IPX, // =
23d0: 20 20 36 0a 09 41 46 5f 4e 53 20 20 20 20 20 20 6..AF_NS
23e0: 20 3d 20 20 36 2c 0a 09 41 46 5f 49 53 4f 2c 0a = 6,..AF_ISO,.
23f0: 09 41 46 5f 4f 53 49 20 20 20 20 20 20 3d 20 41 .AF_OSI = A
2400: 46 5f 49 53 4f 2c 0a 09 41 46 5f 45 43 4d 41 2c F_ISO,..AF_ECMA,
2410: 0a 09 41 46 5f 44 41 54 41 4b 49 54 2c 0a 09 41 ..AF_DATAKIT,..A
2420: 46 5f 43 43 49 54 54 2c 0a 09 41 46 5f 53 4e 41 F_CCITT,..AF_SNA
2430: 2c 0a 09 41 46 5f 44 45 43 6e 65 74 2c 0a 09 41 ,..AF_DECnet,..A
2440: 46 5f 44 4c 49 2c 0a 09 41 46 5f 4c 41 54 2c 0a F_DLI,..AF_LAT,.
2450: 09 41 46 5f 48 59 4c 49 4e 4b 2c 0a 09 41 46 5f .AF_HYLINK,..AF_
2460: 41 50 50 4c 45 54 41 4c 4b 2c 0a 09 41 46 5f 4e APPLETALK,..AF_N
2470: 45 54 42 49 4f 53 2c 0a 09 41 46 5f 56 4f 49 43 ETBIOS,..AF_VOIC
2480: 45 56 49 45 57 2c 0a 09 41 46 5f 46 49 52 45 46 EVIEW,..AF_FIREF
2490: 4f 58 2c 0a 09 41 46 5f 55 4e 4b 4e 4f 57 4e 31 OX,..AF_UNKNOWN1
24a0: 2c 0a 09 41 46 5f 42 41 4e 2c 0a 09 41 46 5f 41 ,..AF_BAN,..AF_A
24b0: 54 4d 2c 0a 09 41 46 5f 49 4e 45 54 36 2c 0a 09 TM,..AF_INET6,..
24c0: 2f 2f 20 41 46 5f 43 4c 55 53 54 45 52 2c 20 41 // AF_CLUSTER, A
24d0: 46 5f 31 32 38 34 34 20 6e 61 64 20 41 46 5f 4e F_12844 nad AF_N
24e0: 45 54 44 45 53 20 61 72 65 20 6e 6f 74 20 64 6f ETDES are not do
24f0: 63 75 6d 65 6e 74 65 64 20 6f 6e 20 4d 53 44 4e cumented on MSDN
2500: 0a 09 41 46 5f 43 4c 55 53 54 45 52 2c 0a 09 41 ..AF_CLUSTER,..A
2510: 46 5f 31 32 38 34 34 2c 0a 09 41 46 5f 49 52 44 F_12844,..AF_IRD
2520: 41 2c 20 2f 2f 20 3d 20 32 36 0a 09 41 46 5f 4e A, // = 26..AF_N
2530: 45 54 44 45 53 20 20 20 3d 20 32 38 2c 0a 09 41 ETDES = 28,..A
2540: 46 5f 4d 41 58 20 20 20 2f 2f 20 3d 20 32 39 0a F_MAX // = 29.
2550: 7d 0a 0a 73 74 72 75 63 74 20 53 4f 43 4b 41 44 }..struct SOCKAD
2560: 44 52 20 7b 0a 09 75 5f 73 68 6f 72 74 20 20 73 DR {..u_short s
2570: 61 5f 66 61 6d 69 6c 79 3b 0a 09 63 68 61 72 5b a_family;..char[
2580: 31 34 5d 20 73 61 5f 64 61 74 61 3b 0a 7d 0a 61 14] sa_data;.}.a
2590: 6c 69 61 73 20 53 4f 43 4b 41 44 44 52 2a 20 50 lias SOCKADDR* P
25a0: 53 4f 43 4b 41 44 44 52 2c 20 4c 50 53 4f 43 4b SOCKADDR, LPSOCK
25b0: 41 44 44 52 3b 0a 0a 2f 2a 20 50 6f 72 74 61 62 ADDR;../* Portab
25c0: 6c 65 20 49 50 76 36 2f 49 50 76 34 20 76 65 72 le IPv6/IPv4 ver
25d0: 73 69 6f 6e 20 6f 66 20 73 6f 63 6b 61 64 64 72 sion of sockaddr
25e0: 2e 0a 20 20 20 55 73 65 73 20 70 61 64 64 69 6e .. Uses paddin
25f0: 67 20 74 6f 20 66 6f 72 63 65 20 38 20 62 79 74 g to force 8 byt
2600: 65 20 61 6c 69 67 6e 6d 65 6e 74 0a 20 20 20 61 e alignment. a
2610: 6e 64 20 6d 61 78 69 6d 75 6d 20 73 69 7a 65 20 nd maximum size
2620: 6f 66 20 31 32 38 20 62 79 74 65 73 20 2a 2f 0a of 128 bytes */.
2630: 73 74 72 75 63 74 20 53 4f 43 4b 41 44 44 52 5f struct SOCKADDR_
2640: 53 54 4f 52 41 47 45 20 7b 0a 20 20 20 20 73 68 STORAGE {. sh
2650: 6f 72 74 20 20 20 20 20 73 73 5f 66 61 6d 69 6c ort ss_famil
2660: 79 3b 0a 20 20 20 20 63 68 61 72 5b 36 5d 20 20 y;. char[6]
2670: 20 5f 5f 73 73 5f 70 61 64 31 3b 20 20 20 2f 2f __ss_pad1; //
2680: 20 70 61 64 20 74 6f 20 38 0a 20 20 20 20 6c 6f pad to 8. lo
2690: 6e 67 20 20 20 20 20 20 5f 5f 73 73 5f 61 6c 69 ng __ss_ali
26a0: 67 6e 3b 20 20 2f 2f 20 66 6f 72 63 65 20 61 6c gn; // force al
26b0: 69 67 6e 6d 65 6e 74 0a 20 20 20 20 63 68 61 72 ignment. char
26c0: 5b 31 31 32 5d 20 5f 5f 73 73 5f 70 61 64 32 3b [112] __ss_pad2;
26d0: 20 20 20 2f 2f 20 70 61 64 20 74 6f 20 31 32 38 // pad to 128
26e0: 0a 7d 0a 61 6c 69 61 73 20 53 4f 43 4b 41 44 44 .}.alias SOCKADD
26f0: 52 5f 53 54 4f 52 41 47 45 2a 20 50 53 4f 43 4b R_STORAGE* PSOCK
2700: 41 44 44 52 5f 53 54 4f 52 41 47 45 3b 0a 0a 73 ADDR_STORAGE;..s
2710: 74 72 75 63 74 20 73 6f 63 6b 70 72 6f 74 6f 20 truct sockproto
2720: 7b 0a 09 75 5f 73 68 6f 72 74 20 73 70 5f 66 61 {..u_short sp_fa
2730: 6d 69 6c 79 3b 0a 09 75 5f 73 68 6f 72 74 20 73 mily;..u_short s
2740: 70 5f 70 72 6f 74 6f 63 6f 6c 3b 0a 7d 0a 0a 65 p_protocol;.}..e
2750: 6e 75 6d 20 3a 20 69 6e 74 20 7b 0a 09 50 46 5f num : int {..PF_
2760: 55 4e 53 50 45 43 20 20 20 20 3d 20 41 46 5f 55 UNSPEC = AF_U
2770: 4e 53 50 45 43 2c 0a 09 50 46 5f 55 4e 49 58 20 NSPEC,..PF_UNIX
2780: 20 20 20 20 20 3d 20 41 46 5f 55 4e 49 58 2c 0a = AF_UNIX,.
2790: 09 50 46 5f 49 4e 45 54 20 20 20 20 20 20 3d 20 .PF_INET =
27a0: 41 46 5f 49 4e 45 54 2c 0a 09 50 46 5f 49 4d 50 AF_INET,..PF_IMP
27b0: 4c 49 4e 4b 20 20 20 3d 20 41 46 5f 49 4d 50 4c LINK = AF_IMPL
27c0: 49 4e 4b 2c 0a 09 50 46 5f 50 55 50 20 20 20 20 INK,..PF_PUP
27d0: 20 20 20 3d 20 41 46 5f 50 55 50 2c 0a 09 50 46 = AF_PUP,..PF
27e0: 5f 43 48 41 4f 53 20 20 20 20 20 3d 20 41 46 5f _CHAOS = AF_
27f0: 43 48 41 4f 53 2c 0a 09 50 46 5f 4e 53 20 20 20 CHAOS,..PF_NS
2800: 20 20 20 20 20 3d 20 41 46 5f 4e 53 2c 0a 09 50 = AF_NS,..P
2810: 46 5f 49 50 58 20 20 20 20 20 20 20 3d 20 41 46 F_IPX = AF
2820: 5f 49 50 58 2c 0a 09 50 46 5f 49 53 4f 20 20 20 _IPX,..PF_ISO
2830: 20 20 20 20 3d 20 41 46 5f 49 53 4f 2c 0a 09 50 = AF_ISO,..P
2840: 46 5f 4f 53 49 20 20 20 20 20 20 20 3d 20 41 46 F_OSI = AF
2850: 5f 4f 53 49 2c 0a 09 50 46 5f 45 43 4d 41 20 20 _OSI,..PF_ECMA
2860: 20 20 20 20 3d 20 41 46 5f 45 43 4d 41 2c 0a 09 = AF_ECMA,..
2870: 50 46 5f 44 41 54 41 4b 49 54 20 20 20 3d 20 41 PF_DATAKIT = A
2880: 46 5f 44 41 54 41 4b 49 54 2c 0a 09 50 46 5f 43 F_DATAKIT,..PF_C
2890: 43 49 54 54 20 20 20 20 20 3d 20 41 46 5f 43 43 CITT = AF_CC
28a0: 49 54 54 2c 0a 09 50 46 5f 53 4e 41 20 20 20 20 ITT,..PF_SNA
28b0: 20 20 20 3d 20 41 46 5f 53 4e 41 2c 0a 09 50 46 = AF_SNA,..PF
28c0: 5f 44 45 43 6e 65 74 20 20 20 20 3d 20 41 46 5f _DECnet = AF_
28d0: 44 45 43 6e 65 74 2c 0a 09 50 46 5f 44 4c 49 20 DECnet,..PF_DLI
28e0: 20 20 20 20 20 20 3d 20 41 46 5f 44 4c 49 2c 0a = AF_DLI,.
28f0: 09 50 46 5f 4c 41 54 20 20 20 20 20 20 20 3d 20 .PF_LAT =
2900: 41 46 5f 4c 41 54 2c 0a 09 50 46 5f 48 59 4c 49 AF_LAT,..PF_HYLI
2910: 4e 4b 20 20 20 20 3d 20 41 46 5f 48 59 4c 49 4e NK = AF_HYLIN
2920: 4b 2c 0a 09 50 46 5f 41 50 50 4c 45 54 41 4c 4b K,..PF_APPLETALK
2930: 20 3d 20 41 46 5f 41 50 50 4c 45 54 41 4c 4b 2c = AF_APPLETALK,
2940: 0a 09 50 46 5f 56 4f 49 43 45 56 49 45 57 20 3d ..PF_VOICEVIEW =
2950: 20 41 46 5f 56 4f 49 43 45 56 49 45 57 2c 0a 09 AF_VOICEVIEW,..
2960: 50 46 5f 46 49 52 45 46 4f 58 20 20 20 3d 20 41 PF_FIREFOX = A
2970: 46 5f 46 49 52 45 46 4f 58 2c 0a 09 50 46 5f 55 F_FIREFOX,..PF_U
2980: 4e 4b 4e 4f 57 4e 31 20 20 3d 20 41 46 5f 55 4e NKNOWN1 = AF_UN
2990: 4b 4e 4f 57 4e 31 2c 0a 09 50 46 5f 42 41 4e 20 KNOWN1,..PF_BAN
29a0: 20 20 20 20 20 20 3d 20 41 46 5f 42 41 4e 2c 0a = AF_BAN,.
29b0: 09 50 46 5f 41 54 4d 20 20 20 20 20 20 20 3d 20 .PF_ATM =
29c0: 41 46 5f 41 54 4d 2c 0a 09 50 46 5f 49 4e 45 54 AF_ATM,..PF_INET
29d0: 36 20 20 20 20 20 3d 20 41 46 5f 49 4e 45 54 36 6 = AF_INET6
29e0: 2c 0a 09 50 46 5f 4d 41 58 20 20 20 20 20 20 20 ,..PF_MAX
29f0: 3d 20 41 46 5f 4d 41 58 0a 7d 0a 0a 63 6f 6e 73 = AF_MAX.}..cons
2a00: 74 20 69 6e 74 20 53 4f 4c 5f 53 4f 43 4b 45 54 t int SOL_SOCKET
2a10: 20 3d 20 30 78 46 46 46 46 3b 0a 0a 63 6f 6e 73 = 0xFFFF;..cons
2a20: 74 20 69 6e 74 20 53 4f 4d 41 58 43 4f 4e 4e 20 t int SOMAXCONN
2a30: 3d 20 35 3b 0a 0a 63 6f 6e 73 74 20 69 6e 74 0a = 5;..const int.
2a40: 09 4d 53 47 5f 4f 4f 42 20 20 20 20 20 20 20 3d .MSG_OOB =
2a50: 20 31 2c 0a 09 4d 53 47 5f 50 45 45 4b 20 20 20 1,..MSG_PEEK
2a60: 20 20 20 3d 20 32 2c 0a 09 4d 53 47 5f 44 4f 4e = 2,..MSG_DON
2a70: 54 52 4f 55 54 45 20 3d 20 34 2c 0a 09 4d 53 47 TROUTE = 4,..MSG
2a80: 5f 4d 41 58 49 4f 56 4c 45 4e 20 3d 20 31 36 2c _MAXIOVLEN = 16,
2a90: 0a 09 4d 53 47 5f 50 41 52 54 49 41 4c 20 20 20 ..MSG_PARTIAL
2aa0: 3d 20 30 78 38 30 30 30 3b 0a 0a 63 6f 6e 73 74 = 0x8000;..const
2ab0: 20 73 69 7a 65 5f 74 20 4d 41 58 47 45 54 48 4f size_t MAXGETHO
2ac0: 53 54 53 54 52 55 43 54 20 3d 20 31 30 32 34 3b STSTRUCT = 1024;
2ad0: 0a 0a 2f 2f 20 4e 6f 74 20 64 6f 63 75 6d 65 6e ..// Not documen
2ae0: 74 65 64 20 6f 6e 20 4d 53 44 4e 0a 65 6e 75 6d ted on MSDN.enum
2af0: 20 7b 0a 09 46 44 5f 52 45 41 44 5f 42 49 54 2c {..FD_READ_BIT,
2b00: 0a 09 46 44 5f 57 52 49 54 45 5f 42 49 54 2c 0a ..FD_WRITE_BIT,.
2b10: 09 46 44 5f 4f 4f 42 5f 42 49 54 2c 0a 09 46 44 .FD_OOB_BIT,..FD
2b20: 5f 41 43 43 45 50 54 5f 42 49 54 2c 0a 09 46 44 _ACCEPT_BIT,..FD
2b30: 5f 43 4f 4e 4e 45 43 54 5f 42 49 54 2c 0a 09 46 _CONNECT_BIT,..F
2b40: 44 5f 43 4c 4f 53 45 5f 42 49 54 2c 0a 09 46 44 D_CLOSE_BIT,..FD
2b50: 5f 51 4f 53 5f 42 49 54 2c 0a 09 46 44 5f 47 52 _QOS_BIT,..FD_GR
2b60: 4f 55 50 5f 51 4f 53 5f 42 49 54 2c 0a 09 46 44 OUP_QOS_BIT,..FD
2b70: 5f 52 4f 55 54 49 4e 47 5f 49 4e 54 45 52 46 41 _ROUTING_INTERFA
2b80: 43 45 5f 43 48 41 4e 47 45 5f 42 49 54 2c 0a 09 CE_CHANGE_BIT,..
2b90: 46 44 5f 41 44 44 52 45 53 53 5f 4c 49 53 54 5f FD_ADDRESS_LIST_
2ba0: 43 48 41 4e 47 45 5f 42 49 54 2c 0a 09 46 44 5f CHANGE_BIT,..FD_
2bb0: 4d 41 58 5f 45 56 45 4e 54 53 20 2f 2f 20 3d 20 MAX_EVENTS // =
2bc0: 31 30 0a 7d 0a 0a 63 6f 6e 73 74 20 69 6e 74 0a 10.}..const int.
2bd0: 09 46 44 5f 52 45 41 44 20 20 20 20 20 20 20 20 .FD_READ
2be0: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 31 = 1
2bf0: 20 3c 3c 20 46 44 5f 52 45 41 44 5f 42 49 54 2c << FD_READ_BIT,
2c00: 0a 09 46 44 5f 57 52 49 54 45 20 20 20 20 20 20 ..FD_WRITE
2c10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 =
2c20: 31 20 3c 3c 20 46 44 5f 57 52 49 54 45 5f 42 49 1 << FD_WRITE_BI
2c30: 54 2c 0a 09 46 44 5f 4f 4f 42 20 20 20 20 20 20 T,..FD_OOB
2c40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2c50: 3d 20 31 20 3c 3c 20 46 44 5f 4f 4f 42 5f 42 49 = 1 << FD_OOB_BI
2c60: 54 2c 0a 09 46 44 5f 41 43 43 45 50 54 20 20 20 T,..FD_ACCEPT
2c70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2c80: 3d 20 31 20 3c 3c 20 46 44 5f 41 43 43 45 50 54 = 1 << FD_ACCEPT
2c90: 5f 42 49 54 2c 0a 09 46 44 5f 43 4f 4e 4e 45 43 _BIT,..FD_CONNEC
2ca0: 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 T
2cb0: 20 20 20 3d 20 31 20 3c 3c 20 46 44 5f 43 4f 4e = 1 << FD_CON
2cc0: 4e 45 43 54 5f 42 49 54 2c 0a 09 46 44 5f 43 4c NECT_BIT,..FD_CL
2cd0: 4f 53 45 20 20 20 20 20 20 20 20 20 20 20 20 20 OSE
2ce0: 20 20 20 20 20 20 20 3d 20 31 20 3c 3c 20 46 44 = 1 << FD
2cf0: 5f 43 4c 4f 53 45 5f 42 49 54 2c 0a 09 46 44 5f _CLOSE_BIT,..FD_
2d00: 51 4f 53 20 20 20 20 20 20 20 20 20 20 20 20 20 QOS
2d10: 20 20 20 20 20 20 20 20 20 3d 20 31 20 3c 3c 20 = 1 <<
2d20: 46 44 5f 51 4f 53 5f 42 49 54 2c 0a 09 46 44 5f FD_QOS_BIT,..FD_
2d30: 47 52 4f 55 50 5f 51 4f 53 20 20 20 20 20 20 20 GROUP_QOS
2d40: 20 20 20 20 20 20 20 20 20 3d 20 31 20 3c 3c 20 = 1 <<
2d50: 46 44 5f 47 52 4f 55 50 5f 51 4f 53 5f 42 49 54 FD_GROUP_QOS_BIT
2d60: 2c 0a 09 46 44 5f 52 4f 55 54 49 4e 47 5f 49 4e ,..FD_ROUTING_IN
2d70: 54 45 52 46 41 43 45 5f 43 48 41 4e 47 45 20 3d TERFACE_CHANGE =
2d80: 20 31 20 3c 3c 20 46 44 5f 52 4f 55 54 49 4e 47 1 << FD_ROUTING
2d90: 5f 49 4e 54 45 52 46 41 43 45 5f 43 48 41 4e 47 _INTERFACE_CHANG
2da0: 45 5f 42 49 54 2c 0a 09 46 44 5f 41 44 44 52 45 E_BIT,..FD_ADDRE
2db0: 53 53 5f 4c 49 53 54 5f 43 48 41 4e 47 45 20 20 SS_LIST_CHANGE
2dc0: 20 20 20 20 3d 20 31 20 3c 3c 20 46 44 5f 41 44 = 1 << FD_AD
2dd0: 44 52 45 53 53 5f 4c 49 53 54 5f 43 48 41 4e 47 DRESS_LIST_CHANG
2de0: 45 5f 42 49 54 2c 0a 09 46 44 5f 41 4c 4c 5f 45 E_BIT,..FD_ALL_E
2df0: 56 45 4e 54 53 20 20 20 20 20 20 20 20 20 20 20 VENTS
2e00: 20 20 20 20 3d 20 28 31 20 3c 3c 20 46 44 5f 4d = (1 << FD_M
2e10: 41 58 5f 45 56 45 4e 54 53 29 20 2d 20 31 3b 0a AX_EVENTS) - 1;.
2e20: 0a 65 6e 75 6d 20 3a 20 69 6e 74 20 7b 0a 09 57 .enum : int {..W
2e30: 53 41 42 41 53 45 45 52 52 20 20 20 20 20 20 20 SABASEERR
2e40: 20 20 3d 20 31 30 30 30 30 2c 0a 09 57 53 41 45 = 10000,..WSAE
2e50: 49 4e 54 52 20 20 20 20 20 20 20 20 20 20 20 3d INTR =
2e60: 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 34 2c WSABASEERR + 4,
2e70: 0a 09 57 53 41 45 42 41 44 46 20 20 20 20 20 20 ..WSAEBADF
2e80: 20 20 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 = WSABASEER
2e90: 52 20 2b 20 39 2c 0a 09 57 53 41 45 41 43 43 45 R + 9,..WSAEACCE
2ea0: 53 20 20 20 20 20 20 20 20 20 20 3d 20 57 53 41 S = WSA
2eb0: 42 41 53 45 45 52 52 20 2b 20 31 33 2c 0a 09 57 BASEERR + 13,..W
2ec0: 53 41 45 46 41 55 4c 54 20 20 20 20 20 20 20 20 SAEFAULT
2ed0: 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b = WSABASEERR +
2ee0: 20 31 34 2c 0a 09 57 53 41 45 49 4e 56 41 4c 20 14,..WSAEINVAL
2ef0: 20 20 20 20 20 20 20 20 20 3d 20 57 53 41 42 41 = WSABA
2f00: 53 45 45 52 52 20 2b 20 32 32 2c 0a 09 57 53 41 SEERR + 22,..WSA
2f10: 45 4d 46 49 4c 45 20 20 20 20 20 20 20 20 20 20 EMFILE
2f20: 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 32 = WSABASEERR + 2
2f30: 34 2c 0a 09 57 53 41 45 57 4f 55 4c 44 42 4c 4f 4,..WSAEWOULDBLO
2f40: 43 4b 20 20 20 20 20 3d 20 57 53 41 42 41 53 45 CK = WSABASE
2f50: 45 52 52 20 2b 20 33 35 2c 0a 09 57 53 41 45 49 ERR + 35,..WSAEI
2f60: 4e 50 52 4f 47 52 45 53 53 20 20 20 20 20 3d 20 NPROGRESS =
2f70: 57 53 41 42 41 53 45 45 52 52 20 2b 20 33 36 2c WSABASEERR + 36,
2f80: 20 2f 2f 20 64 65 70 72 65 63 61 74 65 64 20 6f // deprecated o
2f90: 6e 20 57 69 6e 53 6f 63 6b 32 0a 09 57 53 41 45 n WinSock2..WSAE
2fa0: 41 4c 52 45 41 44 59 20 20 20 20 20 20 20 20 3d ALREADY =
2fb0: 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 33 37 WSABASEERR + 37
2fc0: 2c 0a 09 57 53 41 45 4e 4f 54 53 4f 43 4b 20 20 ,..WSAENOTSOCK
2fd0: 20 20 20 20 20 20 3d 20 57 53 41 42 41 53 45 45 = WSABASEE
2fe0: 52 52 20 2b 20 33 38 2c 0a 09 57 53 41 45 44 45 RR + 38,..WSAEDE
2ff0: 53 54 41 44 44 52 52 45 51 20 20 20 20 3d 20 57 STADDRREQ = W
3000: 53 41 42 41 53 45 45 52 52 20 2b 20 33 39 2c 0a SABASEERR + 39,.
3010: 09 57 53 41 45 4d 53 47 53 49 5a 45 20 20 20 20 .WSAEMSGSIZE
3020: 20 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 = WSABASEERR
3030: 20 2b 20 34 30 2c 0a 09 57 53 41 45 50 52 4f 54 + 40,..WSAEPROT
3040: 4f 54 59 50 45 20 20 20 20 20 20 3d 20 57 53 41 OTYPE = WSA
3050: 42 41 53 45 45 52 52 20 2b 20 34 31 2c 0a 09 57 BASEERR + 41,..W
3060: 53 41 45 4e 4f 50 52 4f 54 4f 4f 50 54 20 20 20 SAENOPROTOOPT
3070: 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b = WSABASEERR +
3080: 20 34 32 2c 0a 09 57 53 41 45 50 52 4f 54 4f 4e 42,..WSAEPROTON
3090: 4f 53 55 50 50 4f 52 54 20 3d 20 57 53 41 42 41 OSUPPORT = WSABA
30a0: 53 45 45 52 52 20 2b 20 34 33 2c 0a 09 57 53 41 SEERR + 43,..WSA
30b0: 45 53 4f 43 4b 54 4e 4f 53 55 50 50 4f 52 54 20 ESOCKTNOSUPPORT
30c0: 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 34 = WSABASEERR + 4
30d0: 34 2c 0a 09 57 53 41 45 4f 50 4e 4f 54 53 55 50 4,..WSAEOPNOTSUP
30e0: 50 20 20 20 20 20 20 3d 20 57 53 41 42 41 53 45 P = WSABASE
30f0: 45 52 52 20 2b 20 34 35 2c 0a 09 57 53 41 45 50 ERR + 45,..WSAEP
3100: 46 4e 4f 53 55 50 50 4f 52 54 20 20 20 20 3d 20 FNOSUPPORT =
3110: 57 53 41 42 41 53 45 45 52 52 20 2b 20 34 36 2c WSABASEERR + 46,
3120: 0a 09 57 53 41 45 41 46 4e 4f 53 55 50 50 4f 52 ..WSAEAFNOSUPPOR
3130: 54 20 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 T = WSABASEER
3140: 52 20 2b 20 34 37 2c 0a 09 57 53 41 45 41 44 44 R + 47,..WSAEADD
3150: 52 49 4e 55 53 45 20 20 20 20 20 20 3d 20 57 53 RINUSE = WS
3160: 41 42 41 53 45 45 52 52 20 2b 20 34 38 2c 0a 09 ABASEERR + 48,..
3170: 57 53 41 45 41 44 44 52 4e 4f 54 41 56 41 49 4c WSAEADDRNOTAVAIL
3180: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
3190: 2b 20 34 39 2c 0a 09 57 53 41 45 4e 45 54 44 4f + 49,..WSAENETDO
31a0: 57 4e 20 20 20 20 20 20 20 20 3d 20 57 53 41 42 WN = WSAB
31b0: 41 53 45 45 52 52 20 2b 20 35 30 2c 0a 09 57 53 ASEERR + 50,..WS
31c0: 41 45 4e 45 54 55 4e 52 45 41 43 48 20 20 20 20 AENETUNREACH
31d0: 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 = WSABASEERR +
31e0: 35 31 2c 0a 09 57 53 41 45 4e 45 54 52 45 53 45 51,..WSAENETRESE
31f0: 54 20 20 20 20 20 20 20 3d 20 57 53 41 42 41 53 T = WSABAS
3200: 45 45 52 52 20 2b 20 35 32 2c 0a 09 57 53 41 45 EERR + 52,..WSAE
3210: 43 4f 4e 4e 41 42 4f 52 54 45 44 20 20 20 20 3d CONNABORTED =
3220: 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 35 33 WSABASEERR + 53
3230: 2c 0a 09 57 53 41 45 43 4f 4e 4e 52 45 53 45 54 ,..WSAECONNRESET
3240: 20 20 20 20 20 20 3d 20 57 53 41 42 41 53 45 45 = WSABASEE
3250: 52 52 20 2b 20 35 34 2c 0a 09 57 53 41 45 4e 4f RR + 54,..WSAENO
3260: 42 55 46 53 20 20 20 20 20 20 20 20 20 3d 20 57 BUFS = W
3270: 53 41 42 41 53 45 45 52 52 20 2b 20 35 35 2c 0a SABASEERR + 55,.
3280: 09 57 53 41 45 49 53 43 4f 4e 4e 20 20 20 20 20 .WSAEISCONN
3290: 20 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 = WSABASEERR
32a0: 20 2b 20 35 36 2c 0a 09 57 53 41 45 4e 4f 54 43 + 56,..WSAENOTC
32b0: 4f 4e 4e 20 20 20 20 20 20 20 20 3d 20 57 53 41 ONN = WSA
32c0: 42 41 53 45 45 52 52 20 2b 20 35 37 2c 0a 09 57 BASEERR + 57,..W
32d0: 53 41 45 53 48 55 54 44 4f 57 4e 20 20 20 20 20 SAESHUTDOWN
32e0: 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b = WSABASEERR +
32f0: 20 35 38 2c 0a 09 57 53 41 45 54 4f 4f 4d 41 4e 58,..WSAETOOMAN
3300: 59 52 45 46 53 20 20 20 20 3d 20 57 53 41 42 41 YREFS = WSABA
3310: 53 45 45 52 52 20 2b 20 35 39 2c 0a 09 57 53 41 SEERR + 59,..WSA
3320: 45 54 49 4d 45 44 4f 55 54 20 20 20 20 20 20 20 ETIMEDOUT
3330: 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 36 = WSABASEERR + 6
3340: 30 2c 0a 09 57 53 41 45 43 4f 4e 4e 52 45 46 55 0,..WSAECONNREFU
3350: 53 45 44 20 20 20 20 3d 20 57 53 41 42 41 53 45 SED = WSABASE
3360: 45 52 52 20 2b 20 36 31 2c 0a 09 57 53 41 45 4c ERR + 61,..WSAEL
3370: 4f 4f 50 20 20 20 20 20 20 20 20 20 20 20 3d 20 OOP =
3380: 57 53 41 42 41 53 45 45 52 52 20 2b 20 36 32 2c WSABASEERR + 62,
3390: 0a 09 57 53 41 45 4e 41 4d 45 54 4f 4f 4c 4f 4e ..WSAENAMETOOLON
33a0: 47 20 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 G = WSABASEER
33b0: 52 20 2b 20 36 33 2c 0a 09 57 53 41 45 48 4f 53 R + 63,..WSAEHOS
33c0: 54 44 4f 57 4e 20 20 20 20 20 20 20 3d 20 57 53 TDOWN = WS
33d0: 41 42 41 53 45 45 52 52 20 2b 20 36 34 2c 0a 09 ABASEERR + 64,..
33e0: 57 53 41 45 48 4f 53 54 55 4e 52 45 41 43 48 20 WSAEHOSTUNREACH
33f0: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
3400: 2b 20 36 35 2c 0a 09 57 53 41 45 4e 4f 54 45 4d + 65,..WSAENOTEM
3410: 50 54 59 20 20 20 20 20 20 20 3d 20 57 53 41 42 PTY = WSAB
3420: 41 53 45 45 52 52 20 2b 20 36 36 2c 0a 09 57 53 ASEERR + 66,..WS
3430: 41 45 50 52 4f 43 4c 49 4d 20 20 20 20 20 20 20 AEPROCLIM
3440: 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 = WSABASEERR +
3450: 36 37 2c 0a 09 57 53 41 45 55 53 45 52 53 20 20 67,..WSAEUSERS
3460: 20 20 20 20 20 20 20 20 3d 20 57 53 41 42 41 53 = WSABAS
3470: 45 45 52 52 20 2b 20 36 38 2c 0a 09 57 53 41 45 EERR + 68,..WSAE
3480: 44 51 55 4f 54 20 20 20 20 20 20 20 20 20 20 3d DQUOT =
3490: 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 36 39 WSABASEERR + 69
34a0: 2c 0a 09 57 53 41 45 53 54 41 4c 45 20 20 20 20 ,..WSAESTALE
34b0: 20 20 20 20 20 20 3d 20 57 53 41 42 41 53 45 45 = WSABASEE
34c0: 52 52 20 2b 20 37 30 2c 0a 09 57 53 41 45 52 45 RR + 70,..WSAERE
34d0: 4d 4f 54 45 20 20 20 20 20 20 20 20 20 3d 20 57 MOTE = W
34e0: 53 41 42 41 53 45 45 52 52 20 2b 20 37 31 2c 0a SABASEERR + 71,.
34f0: 09 57 53 41 45 44 49 53 43 4f 4e 20 20 20 20 20 .WSAEDISCON
3500: 20 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 = WSABASEERR
3510: 20 2b 20 31 30 31 2c 0a 09 57 53 41 53 59 53 4e + 101,..WSASYSN
3520: 4f 54 52 45 41 44 59 20 20 20 20 20 3d 20 57 53 OTREADY = WS
3530: 41 42 41 53 45 45 52 52 20 2b 20 39 31 2c 0a 09 ABASEERR + 91,..
3540: 57 53 41 56 45 52 4e 4f 54 53 55 50 50 4f 52 54 WSAVERNOTSUPPORT
3550: 45 44 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 ED = WSABASEERR
3560: 2b 20 39 32 2c 0a 09 57 53 41 4e 4f 54 49 4e 49 + 92,..WSANOTINI
3570: 54 49 41 4c 49 53 45 44 20 20 3d 20 57 53 41 42 TIALISED = WSAB
3580: 41 53 45 45 52 52 20 2b 20 39 33 2c 0a 09 57 53 ASEERR + 93,..WS
3590: 41 48 4f 53 54 5f 4e 4f 54 5f 46 4f 55 4e 44 20 AHOST_NOT_FOUND
35a0: 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 = WSABASEERR +
35b0: 31 30 30 31 2c 0a 09 57 53 41 54 52 59 5f 41 47 1001,..WSATRY_AG
35c0: 41 49 4e 20 20 20 20 20 20 20 3d 20 57 53 41 42 AIN = WSAB
35d0: 41 53 45 45 52 52 20 2b 20 31 30 30 32 2c 0a 09 ASEERR + 1002,..
35e0: 57 53 41 4e 4f 5f 52 45 43 4f 56 45 52 59 20 20 WSANO_RECOVERY
35f0: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
3600: 2b 20 31 30 30 33 2c 0a 09 57 53 41 4e 4f 5f 44 + 1003,..WSANO_D
3610: 41 54 41 20 20 20 20 20 20 20 20 20 3d 20 57 53 ATA = WS
3620: 41 42 41 53 45 45 52 52 20 2b 20 31 30 30 34 2c ABASEERR + 1004,
3630: 0a 09 57 53 41 4e 4f 5f 41 44 44 52 45 53 53 20 ..WSANO_ADDRESS
3640: 20 20 20 20 20 3d 20 57 53 41 4e 4f 5f 44 41 54 = WSANO_DAT
3650: 41 2c 0a 0a 09 2f 2f 20 57 69 6e 53 6f 63 6b 32 A,...// WinSock2
3660: 20 73 70 65 63 69 66 69 63 20 65 72 72 6f 72 20 specific error
3670: 63 6f 64 65 73 0a 09 57 53 41 45 4e 4f 4d 4f 52 codes..WSAENOMOR
3680: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 E =
3690: 57 53 41 42 41 53 45 45 52 52 20 2b 20 31 30 32 WSABASEERR + 102
36a0: 2c 0a 09 57 53 41 45 43 41 4e 43 45 4c 4c 45 44 ,..WSAECANCELLED
36b0: 20 20 20 20 20 20 20 20 20 20 3d 20 57 53 41 42 = WSAB
36c0: 41 53 45 45 52 52 20 2b 20 31 30 33 2c 0a 09 57 ASEERR + 103,..W
36d0: 53 41 45 49 4e 56 41 4c 49 44 50 52 4f 43 54 41 SAEINVALIDPROCTA
36e0: 42 4c 45 20 20 20 3d 20 57 53 41 42 41 53 45 45 BLE = WSABASEE
36f0: 52 52 20 2b 20 31 30 34 2c 0a 09 57 53 41 45 49 RR + 104,..WSAEI
3700: 4e 56 41 4c 49 44 50 52 4f 56 49 44 45 52 20 20 NVALIDPROVIDER
3710: 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b = WSABASEERR +
3720: 20 31 30 35 2c 0a 09 57 53 41 45 50 52 4f 56 49 105,..WSAEPROVI
3730: 44 45 52 46 41 49 4c 45 44 49 4e 49 54 20 3d 20 DERFAILEDINIT =
3740: 57 53 41 42 41 53 45 45 52 52 20 2b 20 31 30 36 WSABASEERR + 106
3750: 2c 0a 09 57 53 41 53 59 53 43 41 4c 4c 46 41 49 ,..WSASYSCALLFAI
3760: 4c 55 52 45 20 20 20 20 20 20 3d 20 57 53 41 42 LURE = WSAB
3770: 41 53 45 45 52 52 20 2b 20 31 30 37 2c 0a 09 57 ASEERR + 107,..W
3780: 53 41 53 45 52 56 49 43 45 5f 4e 4f 54 5f 46 4f SASERVICE_NOT_FO
3790: 55 4e 44 20 20 20 3d 20 57 53 41 42 41 53 45 45 UND = WSABASEE
37a0: 52 52 20 2b 20 31 30 38 2c 0a 09 57 53 41 54 59 RR + 108,..WSATY
37b0: 50 45 5f 4e 4f 54 5f 46 4f 55 4e 44 20 20 20 20 PE_NOT_FOUND
37c0: 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b = WSABASEERR +
37d0: 20 31 30 39 2c 0a 09 57 53 41 5f 45 5f 4e 4f 5f 109,..WSA_E_NO_
37e0: 4d 4f 52 45 20 20 20 20 20 20 20 20 20 20 3d 20 MORE =
37f0: 57 53 41 42 41 53 45 45 52 52 20 2b 20 31 31 30 WSABASEERR + 110
3800: 2c 0a 09 57 53 41 5f 45 5f 43 41 4e 43 45 4c 4c ,..WSA_E_CANCELL
3810: 45 44 20 20 20 20 20 20 20 20 3d 20 57 53 41 42 ED = WSAB
3820: 41 53 45 45 52 52 20 2b 20 31 31 31 2c 0a 09 57 ASEERR + 111,..W
3830: 53 41 45 52 45 46 55 53 45 44 20 20 20 20 20 20 SAEREFUSED
3840: 20 20 20 20 20 20 3d 20 57 53 41 42 41 53 45 45 = WSABASEE
3850: 52 52 20 2b 20 31 31 32 2c 0a 0a 09 2f 2f 20 57 RR + 112,...// W
3860: 53 20 51 75 61 6c 69 74 79 6f 66 53 65 72 76 69 S QualityofServi
3870: 63 65 20 65 72 72 6f 72 73 0a 09 57 53 41 5f 51 ce errors..WSA_Q
3880: 4f 53 5f 52 45 43 45 49 56 45 52 53 20 20 20 20 OS_RECEIVERS
3890: 20 20 20 20 20 20 3d 20 57 53 41 42 41 53 45 45 = WSABASEE
38a0: 52 52 20 2b 20 31 30 30 35 2c 0a 09 57 53 41 5f RR + 1005,..WSA_
38b0: 51 4f 53 5f 53 45 4e 44 45 52 53 20 20 20 20 20 QOS_SENDERS
38c0: 20 20 20 20 20 20 20 3d 20 57 53 41 42 41 53 45 = WSABASE
38d0: 45 52 52 20 2b 20 31 30 30 36 2c 0a 09 57 53 41 ERR + 1006,..WSA
38e0: 5f 51 4f 53 5f 4e 4f 5f 53 45 4e 44 45 52 53 20 _QOS_NO_SENDERS
38f0: 20 20 20 20 20 20 20 20 3d 20 57 53 41 42 41 53 = WSABAS
3900: 45 45 52 52 20 2b 20 31 30 30 37 2c 0a 09 57 53 EERR + 1007,..WS
3910: 41 5f 51 4f 53 5f 4e 4f 5f 52 45 43 45 49 56 45 A_QOS_NO_RECEIVE
3920: 52 53 20 20 20 20 20 20 20 3d 20 57 53 41 42 41 RS = WSABA
3930: 53 45 45 52 52 20 2b 20 31 30 30 38 2c 0a 09 57 SEERR + 1008,..W
3940: 53 41 5f 51 4f 53 5f 52 45 51 55 45 53 54 5f 43 SA_QOS_REQUEST_C
3950: 4f 4e 46 49 52 4d 45 44 20 20 3d 20 57 53 41 42 ONFIRMED = WSAB
3960: 41 53 45 45 52 52 20 2b 20 31 30 30 39 2c 0a 09 ASEERR + 1009,..
3970: 57 53 41 5f 51 4f 53 5f 41 44 4d 49 53 53 49 4f WSA_QOS_ADMISSIO
3980: 4e 5f 46 41 49 4c 55 52 45 20 20 3d 20 57 53 41 N_FAILURE = WSA
3990: 42 41 53 45 45 52 52 20 2b 20 31 30 31 30 2c 0a BASEERR + 1010,.
39a0: 09 57 53 41 5f 51 4f 53 5f 50 4f 4c 49 43 59 5f .WSA_QOS_POLICY_
39b0: 46 41 49 4c 55 52 45 20 20 20 20 20 3d 20 57 53 FAILURE = WS
39c0: 41 42 41 53 45 45 52 52 20 2b 20 31 30 31 31 2c ABASEERR + 1011,
39d0: 0a 09 57 53 41 5f 51 4f 53 5f 42 41 44 5f 53 54 ..WSA_QOS_BAD_ST
39e0: 59 4c 45 20 20 20 20 20 20 20 20 20 20 3d 20 57 YLE = W
39f0: 53 41 42 41 53 45 45 52 52 20 2b 20 31 30 31 32 SABASEERR + 1012
3a00: 2c 0a 09 57 53 41 5f 51 4f 53 5f 42 41 44 5f 4f ,..WSA_QOS_BAD_O
3a10: 42 4a 45 43 54 20 20 20 20 20 20 20 20 20 3d 20 BJECT =
3a20: 57 53 41 42 41 53 45 45 52 52 20 2b 20 31 30 31 WSABASEERR + 101
3a30: 33 2c 0a 09 57 53 41 5f 51 4f 53 5f 54 52 41 46 3,..WSA_QOS_TRAF
3a40: 46 49 43 5f 43 54 52 4c 5f 45 52 52 4f 52 20 3d FIC_CTRL_ERROR =
3a50: 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 31 30 WSABASEERR + 10
3a60: 31 34 2c 0a 09 57 53 41 5f 51 4f 53 5f 47 45 4e 14,..WSA_QOS_GEN
3a70: 45 52 49 43 5f 45 52 52 4f 52 20 20 20 20 20 20 ERIC_ERROR
3a80: 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 31 = WSABASEERR + 1
3a90: 30 31 35 2c 0a 09 57 53 41 5f 51 4f 53 5f 45 53 015,..WSA_QOS_ES
3aa0: 45 52 56 49 43 45 54 59 50 45 20 20 20 20 20 20 ERVICETYPE
3ab0: 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 = WSABASEERR +
3ac0: 31 30 31 36 2c 0a 09 57 53 41 5f 51 4f 53 5f 45 1016,..WSA_QOS_E
3ad0: 46 4c 4f 57 53 50 45 43 20 20 20 20 20 20 20 20 FLOWSPEC
3ae0: 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b = WSABASEERR +
3af0: 20 31 30 31 37 2c 0a 09 57 53 41 5f 51 4f 53 5f 1017,..WSA_QOS_
3b00: 45 50 52 4f 56 53 50 45 43 42 55 46 20 20 20 20 EPROVSPECBUF
3b10: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
3b20: 2b 20 31 30 31 38 2c 0a 09 57 53 41 5f 51 4f 53 + 1018,..WSA_QOS
3b30: 5f 45 46 49 4c 54 45 52 53 54 59 4c 45 20 20 20 _EFILTERSTYLE
3b40: 20 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 = WSABASEERR
3b50: 20 2b 20 31 30 31 39 2c 0a 09 57 53 41 5f 51 4f + 1019,..WSA_QO
3b60: 53 5f 45 46 49 4c 54 45 52 54 59 50 45 20 20 20 S_EFILTERTYPE
3b70: 20 20 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 = WSABASEER
3b80: 52 20 2b 20 31 30 32 30 2c 0a 09 57 53 41 5f 51 R + 1020,..WSA_Q
3b90: 4f 53 5f 45 46 49 4c 54 45 52 43 4f 55 4e 54 20 OS_EFILTERCOUNT
3ba0: 20 20 20 20 20 20 3d 20 57 53 41 42 41 53 45 45 = WSABASEE
3bb0: 52 52 20 2b 20 31 30 32 31 2c 0a 09 57 53 41 5f RR + 1021,..WSA_
3bc0: 51 4f 53 5f 45 4f 42 4a 4c 45 4e 47 54 48 20 20 QOS_EOBJLENGTH
3bd0: 20 20 20 20 20 20 20 3d 20 57 53 41 42 41 53 45 = WSABASE
3be0: 45 52 52 20 2b 20 31 30 32 32 2c 0a 09 57 53 41 ERR + 1022,..WSA
3bf0: 5f 51 4f 53 5f 45 46 4c 4f 57 43 4f 55 4e 54 20 _QOS_EFLOWCOUNT
3c00: 20 20 20 20 20 20 20 20 3d 20 57 53 41 42 41 53 = WSABAS
3c10: 45 45 52 52 20 2b 20 31 30 32 33 2c 0a 09 57 53 EERR + 1023,..WS
3c20: 41 5f 51 4f 53 5f 45 55 4e 4b 4f 57 4e 50 53 4f A_QOS_EUNKOWNPSO
3c30: 42 4a 20 20 20 20 20 20 20 3d 20 57 53 41 42 41 BJ = WSABA
3c40: 53 45 45 52 52 20 2b 20 31 30 32 34 2c 0a 09 57 SEERR + 1024,..W
3c50: 53 41 5f 51 4f 53 5f 45 50 4f 4c 49 43 59 4f 42 SA_QOS_EPOLICYOB
3c60: 4a 20 20 20 20 20 20 20 20 20 3d 20 57 53 41 42 J = WSAB
3c70: 41 53 45 45 52 52 20 2b 20 31 30 32 35 2c 0a 09 ASEERR + 1025,..
3c80: 57 53 41 5f 51 4f 53 5f 45 46 4c 4f 57 44 45 53 WSA_QOS_EFLOWDES
3c90: 43 20 20 20 20 20 20 20 20 20 20 3d 20 57 53 41 C = WSA
3ca0: 42 41 53 45 45 52 52 20 2b 20 31 30 32 36 2c 0a BASEERR + 1026,.
3cb0: 09 57 53 41 5f 51 4f 53 5f 45 50 53 46 4c 4f 57 .WSA_QOS_EPSFLOW
3cc0: 53 50 45 43 20 20 20 20 20 20 20 20 3d 20 57 53 SPEC = WS
3cd0: 41 42 41 53 45 45 52 52 20 2b 20 31 30 32 37 2c ABASEERR + 1027,
3ce0: 0a 09 57 53 41 5f 51 4f 53 5f 45 50 53 46 49 4c ..WSA_QOS_EPSFIL
3cf0: 54 45 52 53 50 45 43 20 20 20 20 20 20 3d 20 57 TERSPEC = W
3d00: 53 41 42 41 53 45 45 52 52 20 2b 20 31 30 32 38 SABASEERR + 1028
3d10: 2c 0a 09 57 53 41 5f 51 4f 53 5f 45 53 44 4d 4f ,..WSA_QOS_ESDMO
3d20: 44 45 4f 42 4a 20 20 20 20 20 20 20 20 20 3d 20 DEOBJ =
3d30: 57 53 41 42 41 53 45 45 52 52 20 2b 20 31 30 32 WSABASEERR + 102
3d40: 39 2c 0a 09 57 53 41 5f 51 4f 53 5f 45 53 48 41 9,..WSA_QOS_ESHA
3d50: 50 45 52 41 54 45 4f 42 4a 20 20 20 20 20 20 3d PERATEOBJ =
3d60: 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 31 30 WSABASEERR + 10
3d70: 33 30 2c 0a 09 57 53 41 5f 51 4f 53 5f 52 45 53 30,..WSA_QOS_RES
3d80: 45 52 56 45 44 5f 50 45 54 59 50 45 20 20 20 20 ERVED_PETYPE
3d90: 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 31 = WSABASEERR + 1
3da0: 30 33 31 0a 7d 0a 0a 61 6c 69 61 73 20 57 53 41 031.}..alias WSA
3db0: 47 65 74 4c 61 73 74 45 72 72 6f 72 20 68 5f 65 GetLastError h_e
3dc0: 72 72 6e 6f 3b 0a 0a 65 6e 75 6d 20 3a 20 69 6e rrno;..enum : in
3dd0: 74 20 7b 0a 09 48 4f 53 54 5f 4e 4f 54 5f 46 4f t {..HOST_NOT_FO
3de0: 55 4e 44 20 3d 20 57 53 41 48 4f 53 54 5f 4e 4f UND = WSAHOST_NO
3df0: 54 5f 46 4f 55 4e 44 2c 0a 09 54 52 59 5f 41 47 T_FOUND,..TRY_AG
3e00: 41 49 4e 20 20 20 20 20 20 3d 20 57 53 41 54 52 AIN = WSATR
3e10: 59 5f 41 47 41 49 4e 2c 0a 09 4e 4f 5f 52 45 43 Y_AGAIN,..NO_REC
3e20: 4f 56 45 52 59 20 20 20 20 3d 20 57 53 41 4e 4f OVERY = WSANO
3e30: 5f 52 45 43 4f 56 45 52 59 2c 0a 09 4e 4f 5f 44 _RECOVERY,..NO_D
3e40: 41 54 41 20 20 20 20 20 20 20 20 3d 20 57 53 41 ATA = WSA
3e50: 4e 4f 5f 44 41 54 41 2c 0a 09 4e 4f 5f 41 44 44 NO_DATA,..NO_ADD
3e60: 52 45 53 53 20 20 20 20 20 3d 20 57 53 41 4e 4f RESS = WSANO
3e70: 5f 41 44 44 52 45 53 53 0a 7d 0a 0a 65 78 74 65 _ADDRESS.}..exte
3e80: 72 6e 20 28 57 69 6e 64 6f 77 73 29 20 7b 0a 09 rn (Windows) {..
3e90: 53 4f 43 4b 45 54 20 61 63 63 65 70 74 28 53 4f SOCKET accept(SO
3ea0: 43 4b 45 54 2c 20 53 4f 43 4b 41 44 44 52 2a 2c CKET, SOCKADDR*,
3eb0: 20 69 6e 74 2a 29 3b 0a 09 69 6e 74 20 62 69 6e int*);..int bin
3ec0: 64 28 53 4f 43 4b 45 54 2c 20 43 50 74 72 21 28 d(SOCKET, CPtr!(
3ed0: 53 4f 43 4b 41 44 44 52 29 2c 20 69 6e 74 29 3b SOCKADDR), int);
3ee0: 0a 09 69 6e 74 20 63 6c 6f 73 65 73 6f 63 6b 65 ..int closesocke
3ef0: 74 28 53 4f 43 4b 45 54 29 3b 0a 09 69 6e 74 20 t(SOCKET);..int
3f00: 63 6f 6e 6e 65 63 74 28 53 4f 43 4b 45 54 2c 20 connect(SOCKET,
3f10: 43 50 74 72 21 28 53 4f 43 4b 41 44 44 52 29 2c CPtr!(SOCKADDR),
3f20: 20 69 6e 74 29 3b 0a 09 69 6e 74 20 69 6f 63 74 int);..int ioct
3f30: 6c 73 6f 63 6b 65 74 28 53 4f 43 4b 45 54 2c 20 lsocket(SOCKET,
3f40: 69 6e 74 2c 20 75 5f 6c 6f 6e 67 2a 29 3b 0a 09 int, u_long*);..
3f50: 69 6e 74 20 67 65 74 70 65 65 72 6e 61 6d 65 28 int getpeername(
3f60: 53 4f 43 4b 45 54 2c 20 53 4f 43 4b 41 44 44 52 SOCKET, SOCKADDR
3f70: 2a 2c 20 69 6e 74 2a 29 3b 0a 09 69 6e 74 20 67 *, int*);..int g
3f80: 65 74 73 6f 63 6b 6e 61 6d 65 28 53 4f 43 4b 45 etsockname(SOCKE
3f90: 54 2c 20 53 4f 43 4b 41 44 44 52 2a 2c 20 69 6e T, SOCKADDR*, in
3fa0: 74 2a 29 3b 0a 09 69 6e 74 20 67 65 74 73 6f 63 t*);..int getsoc
3fb0: 6b 6f 70 74 28 53 4f 43 4b 45 54 2c 20 69 6e 74 kopt(SOCKET, int
3fc0: 2c 20 69 6e 74 2c 20 76 6f 69 64 2a 2c 20 69 6e , int, void*, in
3fd0: 74 2a 29 3b 0a 09 75 69 6e 74 20 69 6e 65 74 5f t*);..uint inet_
3fe0: 61 64 64 72 28 43 50 74 72 21 28 63 68 61 72 29 addr(CPtr!(char)
3ff0: 29 3b 0a 09 69 6e 74 20 6c 69 73 74 65 6e 28 53 );..int listen(S
4000: 4f 43 4b 45 54 2c 20 69 6e 74 29 3b 0a 09 69 6e OCKET, int);..in
4010: 74 20 72 65 63 76 28 53 4f 43 4b 45 54 2c 20 75 t recv(SOCKET, u
4020: 62 79 74 65 2a 2c 20 69 6e 74 2c 20 69 6e 74 29 byte*, int, int)
4030: 3b 0a 09 69 6e 74 20 72 65 63 76 66 72 6f 6d 28 ;..int recvfrom(
4040: 53 4f 43 4b 45 54 2c 20 75 62 79 74 65 2a 2c 20 SOCKET, ubyte*,
4050: 69 6e 74 2c 20 69 6e 74 2c 20 53 4f 43 4b 41 44 int, int, SOCKAD
4060: 44 52 2a 2c 20 69 6e 74 2a 29 3b 0a 09 69 6e 74 DR*, int*);..int
4070: 20 73 65 6e 64 28 53 4f 43 4b 45 54 2c 20 43 50 send(SOCKET, CP
4080: 74 72 21 28 75 62 79 74 65 29 2c 20 69 6e 74 2c tr!(ubyte), int,
4090: 20 69 6e 74 29 3b 0a 09 69 6e 74 20 73 65 6e 64 int);..int send
40a0: 74 6f 28 53 4f 43 4b 45 54 2c 20 43 50 74 72 21 to(SOCKET, CPtr!
40b0: 28 75 62 79 74 65 29 2c 20 69 6e 74 2c 20 69 6e (ubyte), int, in
40c0: 74 2c 20 43 50 74 72 21 28 53 4f 43 4b 41 44 44 t, CPtr!(SOCKADD
40d0: 52 29 2c 20 69 6e 74 29 3b 0a 09 69 6e 74 20 73 R), int);..int s
40e0: 65 74 73 6f 63 6b 6f 70 74 28 53 4f 43 4b 45 54 etsockopt(SOCKET
40f0: 2c 20 69 6e 74 2c 20 69 6e 74 2c 20 43 50 74 72 , int, int, CPtr
4100: 21 28 76 6f 69 64 29 2c 20 69 6e 74 29 3b 0a 09 !(void), int);..
4110: 69 6e 74 20 73 68 75 74 64 6f 77 6e 28 53 4f 43 int shutdown(SOC
4120: 4b 45 54 2c 20 69 6e 74 29 3b 0a 09 53 4f 43 4b KET, int);..SOCK
4130: 45 54 20 73 6f 63 6b 65 74 28 69 6e 74 2c 20 69 ET socket(int, i
4140: 6e 74 2c 20 69 6e 74 29 3b 0a 0a 09 61 6c 69 61 nt, int);...alia
4150: 73 20 74 79 70 65 6f 66 28 26 61 63 63 65 70 74 s typeof(&accept
4160: 29 20 4c 50 46 4e 5f 41 43 43 45 50 54 3b 0a 09 ) LPFN_ACCEPT;..
4170: 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 62 69 alias typeof(&bi
4180: 6e 64 29 20 4c 50 46 4e 5f 42 49 4e 44 3b 0a 09 nd) LPFN_BIND;..
4190: 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 63 6c alias typeof(&cl
41a0: 6f 73 65 73 6f 63 6b 65 74 29 20 4c 50 46 4e 5f osesocket) LPFN_
41b0: 43 4c 4f 53 45 53 4f 43 4b 45 54 3b 0a 09 61 6c CLOSESOCKET;..al
41c0: 69 61 73 20 74 79 70 65 6f 66 28 26 63 6f 6e 6e ias typeof(&conn
41d0: 65 63 74 29 20 4c 50 46 4e 5f 43 4f 4e 4e 45 43 ect) LPFN_CONNEC
41e0: 54 3b 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 T;..alias typeof
41f0: 28 26 69 6f 63 74 6c 73 6f 63 6b 65 74 29 20 4c (&ioctlsocket) L
4200: 50 46 4e 5f 49 4f 43 54 4c 53 4f 43 4b 45 54 3b PFN_IOCTLSOCKET;
4210: 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 ..alias typeof(&
4220: 67 65 74 70 65 65 72 6e 61 6d 65 29 20 4c 50 46 getpeername) LPF
4230: 4e 5f 47 45 54 50 45 45 52 4e 41 4d 45 3b 0a 09 N_GETPEERNAME;..
4240: 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 67 65 alias typeof(&ge
4250: 74 73 6f 63 6b 6e 61 6d 65 29 20 4c 50 46 4e 5f tsockname) LPFN_
4260: 47 45 54 53 4f 43 4b 4e 41 4d 45 3b 0a 09 61 6c GETSOCKNAME;..al
4270: 69 61 73 20 74 79 70 65 6f 66 28 26 67 65 74 73 ias typeof(&gets
4280: 6f 63 6b 6f 70 74 29 20 4c 50 46 4e 5f 47 45 54 ockopt) LPFN_GET
4290: 53 4f 43 4b 4f 50 54 3b 0a 09 61 6c 69 61 73 20 SOCKOPT;..alias
42a0: 74 79 70 65 6f 66 28 26 69 6e 65 74 5f 61 64 64 typeof(&inet_add
42b0: 72 29 20 4c 50 46 4e 5f 49 4e 45 54 5f 41 44 44 r) LPFN_INET_ADD
42c0: 52 3b 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 R;..alias typeof
42d0: 28 26 6c 69 73 74 65 6e 29 20 4c 50 46 4e 5f 4c (&listen) LPFN_L
42e0: 49 53 54 45 4e 3b 0a 09 61 6c 69 61 73 20 74 79 ISTEN;..alias ty
42f0: 70 65 6f 66 28 26 72 65 63 76 29 20 4c 50 46 4e peof(&recv) LPFN
4300: 5f 52 45 43 56 3b 0a 09 61 6c 69 61 73 20 74 79 _RECV;..alias ty
4310: 70 65 6f 66 28 26 72 65 63 76 66 72 6f 6d 29 20 peof(&recvfrom)
4320: 4c 50 46 4e 5f 52 45 43 56 46 52 4f 4d 3b 0a 09 LPFN_RECVFROM;..
4330: 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 73 65 alias typeof(&se
4340: 6e 64 29 20 4c 50 46 4e 5f 53 45 4e 44 3b 0a 09 nd) LPFN_SEND;..
4350: 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 73 65 alias typeof(&se
4360: 6e 64 74 6f 29 20 4c 50 46 4e 5f 53 45 4e 44 54 ndto) LPFN_SENDT
4370: 4f 3b 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 O;..alias typeof
4380: 28 26 73 65 74 73 6f 63 6b 6f 70 74 29 20 4c 50 (&setsockopt) LP
4390: 46 4e 5f 53 45 54 53 4f 43 4b 4f 50 54 3b 0a 09 FN_SETSOCKOPT;..
43a0: 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 73 68 alias typeof(&sh
43b0: 75 74 64 6f 77 6e 29 20 4c 50 46 4e 5f 53 48 55 utdown) LPFN_SHU
43c0: 54 44 4f 57 4e 3b 0a 09 61 6c 69 61 73 20 74 79 TDOWN;..alias ty
43d0: 70 65 6f 66 28 26 73 6f 63 6b 65 74 29 20 4c 50 peof(&socket) LP
43e0: 46 4e 5f 53 4f 43 4b 45 54 3b 0a 7d 0a 0a 65 78 FN_SOCKET;.}..ex
43f0: 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 7b 0a tern(Windows) {.
4400: 09 63 68 61 72 2a 20 69 6e 65 74 5f 6e 74 6f 61 .char* inet_ntoa
4410: 28 49 4e 5f 41 44 44 52 29 3b 0a 09 48 4f 53 54 (IN_ADDR);..HOST
4420: 45 4e 54 2a 20 67 65 74 68 6f 73 74 62 79 61 64 ENT* gethostbyad
4430: 64 72 28 43 50 74 72 21 28 63 68 61 72 29 2c 20 dr(CPtr!(char),
4440: 69 6e 74 2c 20 69 6e 74 29 3b 0a 09 48 4f 53 54 int, int);..HOST
4450: 45 4e 54 2a 20 67 65 74 68 6f 73 74 62 79 6e 61 ENT* gethostbyna
4460: 6d 65 28 43 50 74 72 21 28 63 68 61 72 29 29 3b me(CPtr!(char));
4470: 0a 09 53 45 52 56 45 4e 54 2a 20 67 65 74 73 65 ..SERVENT* getse
4480: 72 76 62 79 70 6f 72 74 28 69 6e 74 2c 20 43 50 rvbyport(int, CP
4490: 74 72 21 28 63 68 61 72 29 29 3b 0a 09 53 45 52 tr!(char));..SER
44a0: 56 45 4e 54 2a 20 67 65 74 73 65 72 76 62 79 6e VENT* getservbyn
44b0: 61 6d 65 28 43 50 74 72 21 28 63 68 61 72 29 2c ame(CPtr!(char),
44c0: 20 43 50 74 72 21 28 63 68 61 72 29 29 3b 0a 09 CPtr!(char));..
44d0: 50 52 4f 54 4f 45 4e 54 2a 20 67 65 74 70 72 6f PROTOENT* getpro
44e0: 74 6f 62 79 6e 75 6d 62 65 72 28 69 6e 74 29 3b tobynumber(int);
44f0: 0a 09 50 52 4f 54 4f 45 4e 54 2a 20 67 65 74 70 ..PROTOENT* getp
4500: 72 6f 74 6f 62 79 6e 61 6d 65 28 43 50 74 72 21 rotobyname(CPtr!
4510: 28 63 68 61 72 29 29 3b 0a 0a 09 2f 2a 20 4e 4f (char));.../* NO
4520: 54 45 3a 20 44 4b 3a 20 69 6e 20 74 68 65 20 6f TE: DK: in the o
4530: 72 69 67 69 6e 61 6c 20 68 65 61 64 65 72 73 2c riginal headers,
4540: 20 74 68 65 73 65 20 77 65 72 65 20 64 65 63 6c these were decl
4550: 61 72 65 64 20 77 69 74 68 0a 09 20 20 20 50 41 ared with.. PA
4560: 53 43 41 4c 20 6c 69 6e 6b 61 67 65 2e 20 20 53 SCAL linkage. S
4570: 69 6e 63 65 20 74 68 69 73 20 69 73 20 61 74 20 ince this is at
4580: 6f 64 64 73 20 77 69 74 68 20 74 68 65 20 64 65 odds with the de
4590: 66 69 6e 69 74 69 6f 6e 0a 09 20 20 20 6f 66 20 finition.. of
45a0: 74 68 65 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 the functions th
45b0: 65 6d 73 65 6c 76 65 73 2c 20 61 6e 64 20 61 6c emselves, and al
45c0: 73 6f 20 73 69 6e 63 65 20 4d 69 6e 47 57 20 73 so since MinGW s
45d0: 65 65 6d 73 20 74 6f 0a 09 20 20 20 74 72 65 61 eems to.. trea
45e0: 74 20 74 68 65 20 74 77 6f 20 69 6e 74 65 72 63 t the two interc
45f0: 68 61 6e 67 61 62 6c 79 2c 20 49 20 68 61 76 65 hangably, I have
4600: 20 6d 6f 76 65 64 20 74 68 65 6d 20 68 65 72 65 moved them here
4610: 2e 20 2a 2f 0a 09 61 6c 69 61 73 20 74 79 70 65 . */..alias type
4620: 6f 66 28 26 69 6e 65 74 5f 6e 74 6f 61 29 20 4c of(&inet_ntoa) L
4630: 50 46 4e 5f 49 4e 45 54 5f 4e 54 4f 41 3b 0a 09 PFN_INET_NTOA;..
4640: 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 67 65 alias typeof(&ge
4650: 74 68 6f 73 74 62 79 61 64 64 72 29 20 4c 50 46 thostbyaddr) LPF
4660: 4e 5f 47 45 54 48 4f 53 54 42 59 41 44 44 52 3b N_GETHOSTBYADDR;
4670: 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 ..alias typeof(&
4680: 67 65 74 68 6f 73 74 62 79 6e 61 6d 65 29 20 4c gethostbyname) L
4690: 50 46 4e 5f 47 45 54 48 4f 53 54 42 59 4e 41 4d PFN_GETHOSTBYNAM
46a0: 45 3b 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 E;..alias typeof
46b0: 28 26 67 65 74 73 65 72 76 62 79 70 6f 72 74 29 (&getservbyport)
46c0: 20 4c 50 46 4e 5f 47 45 54 53 45 52 56 42 59 50 LPFN_GETSERVBYP
46d0: 4f 52 54 3b 0a 09 61 6c 69 61 73 20 74 79 70 65 ORT;..alias type
46e0: 6f 66 28 26 67 65 74 73 65 72 76 62 79 6e 61 6d of(&getservbynam
46f0: 65 29 20 4c 50 46 4e 5f 47 45 54 53 45 52 56 42 e) LPFN_GETSERVB
4700: 59 4e 41 4d 45 3b 0a 09 61 6c 69 61 73 20 74 79 YNAME;..alias ty
4710: 70 65 6f 66 28 26 67 65 74 70 72 6f 74 6f 62 79 peof(&getprotoby
4720: 6e 75 6d 62 65 72 29 20 4c 50 46 4e 5f 47 45 54 number) LPFN_GET
4730: 50 52 4f 54 4f 42 59 4e 55 4d 42 45 52 3b 0a 09 PROTOBYNUMBER;..
4740: 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 67 65 alias typeof(&ge
4750: 74 70 72 6f 74 6f 62 79 6e 61 6d 65 29 20 4c 50 tprotobyname) LP
4760: 46 4e 5f 47 45 54 50 52 4f 54 4f 42 59 4e 41 4d FN_GETPROTOBYNAM
4770: 45 3b 0a 7d 0a 0a 65 78 74 65 72 6e 28 57 69 6e E;.}..extern(Win
4780: 64 6f 77 73 29 20 7b 0a 09 69 6e 74 20 57 53 41 dows) {..int WSA
4790: 53 74 61 72 74 75 70 28 57 4f 52 44 2c 20 4c 50 Startup(WORD, LP
47a0: 57 53 41 44 41 54 41 29 3b 0a 09 69 6e 74 20 57 WSADATA);..int W
47b0: 53 41 43 6c 65 61 6e 75 70 28 29 3b 0a 09 76 6f SACleanup();..vo
47c0: 69 64 20 57 53 41 53 65 74 4c 61 73 74 45 72 72 id WSASetLastErr
47d0: 6f 72 28 69 6e 74 29 3b 0a 09 69 6e 74 20 57 53 or(int);..int WS
47e0: 41 47 65 74 4c 61 73 74 45 72 72 6f 72 28 29 3b AGetLastError();
47f0: 0a 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 ...alias typeof(
4800: 26 57 53 41 53 74 61 72 74 75 70 29 20 4c 50 46 &WSAStartup) LPF
4810: 4e 5f 57 53 41 53 54 41 52 54 55 50 3b 0a 09 61 N_WSASTARTUP;..a
4820: 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 lias typeof(&WSA
4830: 43 6c 65 61 6e 75 70 29 20 4c 50 46 4e 5f 57 53 Cleanup) LPFN_WS
4840: 41 43 4c 45 41 4e 55 50 3b 0a 09 61 6c 69 61 73 ACLEANUP;..alias
4850: 20 74 79 70 65 6f 66 28 26 57 53 41 53 65 74 4c typeof(&WSASetL
4860: 61 73 74 45 72 72 6f 72 29 20 4c 50 46 4e 5f 57 astError) LPFN_W
4870: 53 41 53 45 54 4c 41 53 54 45 52 52 4f 52 3b 0a SASETLASTERROR;.
4880: 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 .alias typeof(&W
4890: 53 41 47 65 74 4c 61 73 74 45 72 72 6f 72 29 20 SAGetLastError)
48a0: 4c 50 46 4e 5f 57 53 41 47 45 54 4c 41 53 54 45 LPFN_WSAGETLASTE
48b0: 52 52 4f 52 3b 0a 7d 0a 0a 2f 2a 0a 20 2a 20 50 RROR;.}../*. * P
48c0: 73 65 75 64 6f 2d 62 6c 6f 63 6b 69 6e 67 20 66 seudo-blocking f
48d0: 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 64 65 70 unctions are dep
48e0: 72 65 63 61 74 65 64 20 69 6e 20 57 69 6e 53 6f recated in WinSo
48f0: 63 6b 32 0a 20 2a 20 73 70 65 63 2e 20 55 73 65 ck2. * spec. Use
4900: 20 74 68 72 65 61 64 73 20 69 6e 73 74 65 61 64 threads instead
4910: 2e 0a 20 2a 2f 0a 64 65 70 72 65 63 61 74 65 64 .. */.deprecated
4920: 20 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 extern(Windows)
4930: 20 7b 0a 09 42 4f 4f 4c 20 57 53 41 49 73 42 6c {..BOOL WSAIsBl
4940: 6f 63 6b 69 6e 67 28 29 3b 0a 09 69 6e 74 20 57 ocking();..int W
4950: 53 41 55 6e 68 6f 6f 6b 42 6c 6f 63 6b 69 6e 67 SAUnhookBlocking
4960: 48 6f 6f 6b 28 29 3b 0a 09 46 41 52 50 52 4f 43 Hook();..FARPROC
4970: 20 57 53 41 53 65 74 42 6c 6f 63 6b 69 6e 67 48 WSASetBlockingH
4980: 6f 6f 6b 28 46 41 52 50 52 4f 43 29 3b 0a 09 69 ook(FARPROC);..i
4990: 6e 74 20 57 53 41 43 61 6e 63 65 6c 42 6c 6f 63 nt WSACancelBloc
49a0: 6b 69 6e 67 43 61 6c 6c 28 29 3b 0a 0a 09 61 6c kingCall();...al
49b0: 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 49 ias typeof(&WSAI
49c0: 73 42 6c 6f 63 6b 69 6e 67 29 20 4c 50 46 4e 5f sBlocking) LPFN_
49d0: 57 53 41 49 53 42 4c 4f 43 4b 49 4e 47 3b 0a 09 WSAISBLOCKING;..
49e0: 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 alias typeof(&WS
49f0: 41 55 6e 68 6f 6f 6b 42 6c 6f 63 6b 69 6e 67 48 AUnhookBlockingH
4a00: 6f 6f 6b 29 20 4c 50 46 4e 5f 57 53 41 55 4e 48 ook) LPFN_WSAUNH
4a10: 4f 4f 4b 42 4c 4f 43 4b 49 4e 47 48 4f 4f 4b 3b OOKBLOCKINGHOOK;
4a20: 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 ..alias typeof(&
4a30: 57 53 41 53 65 74 42 6c 6f 63 6b 69 6e 67 48 6f WSASetBlockingHo
4a40: 6f 6b 29 20 4c 50 46 4e 5f 57 53 41 53 45 54 42 ok) LPFN_WSASETB
4a50: 4c 4f 43 4b 49 4e 47 48 4f 4f 4b 3b 0a 09 61 6c LOCKINGHOOK;..al
4a60: 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 43 ias typeof(&WSAC
4a70: 61 6e 63 65 6c 42 6c 6f 63 6b 69 6e 67 43 61 6c ancelBlockingCal
4a80: 6c 29 20 4c 50 46 4e 5f 57 53 41 43 41 4e 43 45 l) LPFN_WSACANCE
4a90: 4c 42 4c 4f 43 4b 49 4e 47 43 41 4c 4c 3b 0a 7d LBLOCKINGCALL;.}
4aa0: 0a 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 ..extern(Windows
4ab0: 29 20 7b 0a 09 48 41 4e 44 4c 45 20 57 53 41 41 ) {..HANDLE WSAA
4ac0: 73 79 6e 63 47 65 74 53 65 72 76 42 79 4e 61 6d syncGetServByNam
4ad0: 65 28 48 57 4e 44 2c 20 75 5f 69 6e 74 2c 20 43 e(HWND, u_int, C
4ae0: 50 74 72 21 28 63 68 61 72 29 2c 20 43 50 74 72 Ptr!(char), CPtr
4af0: 21 28 63 68 61 72 29 2c 20 63 68 61 72 2a 2c 20 !(char), char*,
4b00: 69 6e 74 29 3b 0a 09 48 41 4e 44 4c 45 20 57 53 int);..HANDLE WS
4b10: 41 41 73 79 6e 63 47 65 74 53 65 72 76 42 79 50 AAsyncGetServByP
4b20: 6f 72 74 28 48 57 4e 44 2c 20 75 5f 69 6e 74 2c ort(HWND, u_int,
4b30: 20 69 6e 74 2c 20 43 50 74 72 21 28 63 68 61 72 int, CPtr!(char
4b40: 29 2c 20 63 68 61 72 2a 2c 20 69 6e 74 29 3b 0a ), char*, int);.
4b50: 09 48 41 4e 44 4c 45 20 57 53 41 41 73 79 6e 63 .HANDLE WSAAsync
4b60: 47 65 74 50 72 6f 74 6f 42 79 4e 61 6d 65 28 48 GetProtoByName(H
4b70: 57 4e 44 2c 20 75 5f 69 6e 74 2c 20 43 50 74 72 WND, u_int, CPtr
4b80: 21 28 63 68 61 72 29 2c 20 63 68 61 72 2a 2c 20 !(char), char*,
4b90: 69 6e 74 29 3b 0a 09 48 41 4e 44 4c 45 20 57 53 int);..HANDLE WS
4ba0: 41 41 73 79 6e 63 47 65 74 50 72 6f 74 6f 42 79 AAsyncGetProtoBy
4bb0: 4e 75 6d 62 65 72 28 48 57 4e 44 2c 20 75 5f 69 Number(HWND, u_i
4bc0: 6e 74 2c 20 69 6e 74 2c 20 63 68 61 72 2a 2c 20 nt, int, char*,
4bd0: 69 6e 74 29 3b 0a 09 48 41 4e 44 4c 45 20 57 53 int);..HANDLE WS
4be0: 41 41 73 79 6e 63 47 65 74 48 6f 73 74 42 79 4e AAsyncGetHostByN
4bf0: 61 6d 65 28 48 57 4e 44 2c 20 75 5f 69 6e 74 2c ame(HWND, u_int,
4c00: 20 43 50 74 72 21 28 63 68 61 72 29 2c 20 63 68 CPtr!(char), ch
4c10: 61 72 2a 2c 20 69 6e 74 29 3b 0a 09 48 41 4e 44 ar*, int);..HAND
4c20: 4c 45 20 57 53 41 41 73 79 6e 63 47 65 74 48 6f LE WSAAsyncGetHo
4c30: 73 74 42 79 41 64 64 72 28 48 57 4e 44 2c 20 75 stByAddr(HWND, u
4c40: 5f 69 6e 74 2c 20 43 50 74 72 21 28 63 68 61 72 _int, CPtr!(char
4c50: 29 2c 20 69 6e 74 2c 20 69 6e 74 2c 20 63 68 61 ), int, int, cha
4c60: 72 2a 2c 20 69 6e 74 29 3b 0a 09 69 6e 74 20 57 r*, int);..int W
4c70: 53 41 43 61 6e 63 65 6c 41 73 79 6e 63 52 65 71 SACancelAsyncReq
4c80: 75 65 73 74 28 48 41 4e 44 4c 45 29 3b 0a 09 69 uest(HANDLE);..i
4c90: 6e 74 20 57 53 41 41 73 79 6e 63 53 65 6c 65 63 nt WSAAsyncSelec
4ca0: 74 28 53 4f 43 4b 45 54 2c 20 48 57 4e 44 2c 20 t(SOCKET, HWND,
4cb0: 75 5f 69 6e 74 2c 20 6c 6f 6e 67 29 3b 0a 0a 09 u_int, long);...
4cc0: 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 alias typeof(&WS
4cd0: 41 41 73 79 6e 63 47 65 74 53 65 72 76 42 79 4e AAsyncGetServByN
4ce0: 61 6d 65 29 20 4c 50 46 4e 5f 57 53 41 41 73 79 ame) LPFN_WSAAsy
4cf0: 6e 63 47 65 74 53 65 72 76 42 79 4e 61 6d 65 3b ncGetServByName;
4d00: 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 ..alias typeof(&
4d10: 57 53 41 41 73 79 6e 63 47 65 74 53 65 72 76 42 WSAAsyncGetServB
4d20: 79 50 6f 72 74 29 20 4c 50 46 4e 5f 57 53 41 41 yPort) LPFN_WSAA
4d30: 53 59 4e 43 47 45 54 53 45 52 56 42 59 50 4f 52 SYNCGETSERVBYPOR
4d40: 54 3b 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 T;..alias typeof
4d50: 28 26 57 53 41 41 73 79 6e 63 47 65 74 50 72 6f (&WSAAsyncGetPro
4d60: 74 6f 42 79 4e 61 6d 65 29 20 4c 50 46 4e 5f 57 toByName) LPFN_W
4d70: 53 41 41 53 59 4e 43 47 45 54 50 52 4f 54 4f 42 SAASYNCGETPROTOB
4d80: 59 4e 41 4d 45 3b 0a 09 61 6c 69 61 73 20 74 79 YNAME;..alias ty
4d90: 70 65 6f 66 28 26 57 53 41 41 73 79 6e 63 47 65 peof(&WSAAsyncGe
4da0: 74 50 72 6f 74 6f 42 79 4e 75 6d 62 65 72 29 20 tProtoByNumber)
4db0: 4c 50 46 4e 5f 57 53 41 41 53 59 4e 43 47 45 54 LPFN_WSAASYNCGET
4dc0: 50 52 4f 54 4f 42 59 4e 55 4d 42 45 52 3b 0a 09 PROTOBYNUMBER;..
4dd0: 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 alias typeof(&WS
4de0: 41 41 73 79 6e 63 47 65 74 48 6f 73 74 42 79 4e AAsyncGetHostByN
4df0: 61 6d 65 29 20 4c 50 46 4e 5f 57 53 41 41 53 59 ame) LPFN_WSAASY
4e00: 4e 43 47 45 54 48 4f 53 54 42 59 4e 41 4d 45 3b NCGETHOSTBYNAME;
4e10: 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 ..alias typeof(&
4e20: 57 53 41 41 73 79 6e 63 47 65 74 48 6f 73 74 42 WSAAsyncGetHostB
4e30: 79 41 64 64 72 29 20 4c 50 46 4e 5f 57 53 41 41 yAddr) LPFN_WSAA
4e40: 53 59 4e 43 47 45 54 48 4f 53 54 42 59 41 44 44 SYNCGETHOSTBYADD
4e50: 52 3b 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 R;..alias typeof
4e60: 28 26 57 53 41 43 61 6e 63 65 6c 41 73 79 6e 63 (&WSACancelAsync
4e70: 52 65 71 75 65 73 74 29 20 4c 50 46 4e 5f 57 53 Request) LPFN_WS
4e80: 41 43 41 4e 43 45 4c 41 53 59 4e 43 52 45 51 55 ACANCELASYNCREQU
4e90: 45 53 54 3b 0a 09 61 6c 69 61 73 20 74 79 70 65 EST;..alias type
4ea0: 6f 66 28 26 57 53 41 41 73 79 6e 63 53 65 6c 65 of(&WSAAsyncSele
4eb0: 63 74 29 20 4c 50 46 4e 5f 57 53 41 41 53 59 4e ct) LPFN_WSAASYN
4ec0: 43 53 45 4c 45 43 54 3b 0a 7d 0a 0a 65 78 74 65 CSELECT;.}..exte
4ed0: 72 6e 28 57 69 6e 64 6f 77 73 29 20 7b 0a 09 75 rn(Windows) {..u
4ee0: 5f 6c 6f 6e 67 20 68 74 6f 6e 6c 28 75 5f 6c 6f _long htonl(u_lo
4ef0: 6e 67 29 3b 0a 09 75 5f 6c 6f 6e 67 20 6e 74 6f ng);..u_long nto
4f00: 68 6c 28 75 5f 6c 6f 6e 67 29 3b 0a 09 75 5f 73 hl(u_long);..u_s
4f10: 68 6f 72 74 20 68 74 6f 6e 73 28 75 5f 73 68 6f hort htons(u_sho
4f20: 72 74 29 3b 0a 09 75 5f 73 68 6f 72 74 20 6e 74 rt);..u_short nt
4f30: 6f 68 73 28 75 5f 73 68 6f 72 74 29 3b 0a 09 69 ohs(u_short);..i
4f40: 6e 74 20 73 65 6c 65 63 74 28 69 6e 74 20 6e 66 nt select(int nf
4f50: 64 73 2c 20 66 64 5f 73 65 74 2a 2c 20 66 64 5f ds, fd_set*, fd_
4f60: 73 65 74 2a 2c 20 66 64 5f 73 65 74 2a 2c 20 43 set*, fd_set*, C
4f70: 50 74 72 21 28 54 49 4d 45 56 41 4c 29 29 3b 0a Ptr!(TIMEVAL));.
4f80: 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 ..alias typeof(&
4f90: 68 74 6f 6e 6c 29 20 4c 50 46 4e 5f 48 54 4f 4e htonl) LPFN_HTON
4fa0: 4c 3b 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 L;..alias typeof
4fb0: 28 26 6e 74 6f 68 6c 29 20 4c 50 46 4e 5f 4e 54 (&ntohl) LPFN_NT
4fc0: 4f 48 4c 3b 0a 09 61 6c 69 61 73 20 74 79 70 65 OHL;..alias type
4fd0: 6f 66 28 26 68 74 6f 6e 73 29 20 4c 50 46 4e 5f of(&htons) LPFN_
4fe0: 48 54 4f 4e 53 3b 0a 09 61 6c 69 61 73 20 74 79 HTONS;..alias ty
4ff0: 70 65 6f 66 28 26 6e 74 6f 68 73 29 20 4c 50 46 peof(&ntohs) LPF
5000: 4e 5f 4e 54 4f 48 53 3b 0a 09 61 6c 69 61 73 20 N_NTOHS;..alias
5010: 74 79 70 65 6f 66 28 26 73 65 6c 65 63 74 29 20 typeof(&select)
5020: 4c 50 46 4e 5f 53 45 4c 45 43 54 3b 0a 0a 09 69 LPFN_SELECT;...i
5030: 6e 74 20 67 65 74 68 6f 73 74 6e 61 6d 65 28 63 nt gethostname(c
5040: 68 61 72 2a 2c 20 69 6e 74 29 3b 0a 09 61 6c 69 har*, int);..ali
5050: 61 73 20 74 79 70 65 6f 66 28 26 67 65 74 68 6f as typeof(&getho
5060: 73 74 6e 61 6d 65 29 20 4c 50 46 4e 5f 47 45 54 stname) LPFN_GET
5070: 48 4f 53 54 4e 41 4d 45 3b 0a 7d 0a 0a 61 6c 69 HOSTNAME;.}..ali
5080: 61 73 20 4d 41 4b 45 4c 4f 4e 47 20 57 53 41 4d as MAKELONG WSAM
5090: 41 4b 45 41 53 59 4e 43 52 45 50 4c 59 2c 20 57 AKEASYNCREPLY, W
50a0: 53 41 4d 41 4b 45 53 45 4c 45 43 54 52 45 50 4c SAMAKESELECTREPL
50b0: 59 3b 0a 61 6c 69 61 73 20 4c 4f 57 4f 52 44 20 Y;.alias LOWORD
50c0: 57 53 41 47 45 54 41 53 59 4e 43 42 55 46 4c 45 WSAGETASYNCBUFLE
50d0: 4e 2c 20 57 53 41 47 45 54 53 45 4c 45 43 54 45 N, WSAGETSELECTE
50e0: 56 45 4e 54 3b 0a 61 6c 69 61 73 20 48 49 57 4f VENT;.alias HIWO
50f0: 52 44 20 57 53 41 47 45 54 41 53 59 4e 43 45 52 RD WSAGETASYNCER
5100: 52 4f 52 2c 20 57 53 41 47 45 54 53 45 4c 45 43 ROR, WSAGETSELEC
5110: 54 45 52 52 4f 52 3b 0a 0a 0a 61 6c 69 61 73 20 TERROR;...alias
5120: 49 4e 41 44 44 52 5f 41 4e 59 20 41 44 44 52 5f INADDR_ANY ADDR_
5130: 41 4e 59 3b 0a 0a 62 6f 6f 6c 20 49 4e 5f 43 4c ANY;..bool IN_CL
5140: 41 53 53 44 28 69 6e 74 20 69 29 20 7b 20 72 65 ASSD(int i) { re
5150: 74 75 72 6e 20 28 69 20 26 20 30 78 66 30 30 30 turn (i & 0xf000
5160: 30 30 30 30 29 20 3d 3d 20 30 78 65 30 30 30 30 0000) == 0xe0000
5170: 30 30 30 3b 20 7d 0a 0a 63 6f 6e 73 74 20 49 4e 000; }..const IN
5180: 5f 43 4c 41 53 53 44 5f 4e 45 54 20 20 20 20 3d _CLASSD_NET =
5190: 20 30 78 66 30 30 30 30 30 30 30 3b 0a 63 6f 6e 0xf0000000;.con
51a0: 73 74 20 49 4e 5f 43 4c 41 53 53 44 5f 4e 53 48 st IN_CLASSD_NSH
51b0: 49 46 54 20 3d 20 20 20 20 20 20 20 20 20 32 38 IFT = 28
51c0: 3b 0a 63 6f 6e 73 74 20 49 4e 5f 43 4c 41 53 53 ;.const IN_CLASS
51d0: 44 5f 48 4f 53 54 20 20 20 3d 20 30 78 30 66 66 D_HOST = 0x0ff
51e0: 66 66 66 66 66 3b 0a 0a 61 6c 69 61 73 20 49 4e fffff;..alias IN
51f0: 5f 43 4c 41 53 53 44 20 49 4e 5f 4d 55 4c 54 49 _CLASSD IN_MULTI
5200: 43 41 53 54 3b 0a 0a 63 6f 6e 73 74 20 46 52 4f CAST;..const FRO
5210: 4d 5f 50 52 4f 54 4f 43 4f 4c 5f 49 4e 46 4f 20 M_PROTOCOL_INFO
5220: 3d 20 2d 31 3b 0a 0a 65 6e 75 6d 20 3a 20 69 6e = -1;..enum : in
5230: 74 20 7b 0a 09 53 4f 5f 47 52 4f 55 50 5f 49 44 t {..SO_GROUP_ID
5240: 20 3d 20 30 78 32 30 30 31 2c 0a 09 53 4f 5f 47 = 0x2001,..SO_G
5250: 52 4f 55 50 5f 50 52 49 4f 52 49 54 59 2c 0a 09 ROUP_PRIORITY,..
5260: 53 4f 5f 4d 41 58 5f 4d 53 47 5f 53 49 5a 45 2c SO_MAX_MSG_SIZE,
5270: 0a 09 53 4f 5f 50 52 4f 54 4f 43 4f 4c 5f 49 4e ..SO_PROTOCOL_IN
5280: 46 4f 41 2c 0a 09 53 4f 5f 50 52 4f 54 4f 43 4f FOA,..SO_PROTOCO
5290: 4c 5f 49 4e 46 4f 57 0a 7d 0a 2f 2f 20 4e 4f 54 L_INFOW.}.// NOT
52a0: 45 3a 20 54 68 65 73 65 20 61 72 65 20 6c 6f 67 E: These are log
52b0: 69 63 61 6c 6c 79 20 70 61 72 74 20 6f 66 20 74 ically part of t
52c0: 68 65 20 70 72 65 76 69 6f 75 73 20 65 6e 75 6d he previous enum
52d0: 2c 20 62 75 74 20 79 6f 75 20 63 61 6e 27 74 0a , but you can't.
52e0: 2f 2f 20 68 61 76 65 20 76 65 72 73 69 6f 6e 20 // have version
52f0: 73 74 61 74 65 6d 65 6e 74 73 20 69 6e 20 61 6e statements in an
5300: 20 65 6e 75 6d 20 62 6f 64 79 2e 2e 2e 0a 76 65 enum body....ve
5310: 72 73 69 6f 6e 28 55 6e 69 63 6f 64 65 29 0a 09 rsion(Unicode)..
5320: 63 6f 6e 73 74 20 69 6e 74 20 53 4f 5f 50 52 4f const int SO_PRO
5330: 54 4f 43 4f 4c 5f 49 4e 46 4f 20 3d 20 53 4f 5f TOCOL_INFO = SO_
5340: 50 52 4f 54 4f 43 4f 4c 5f 49 4e 46 4f 57 3b 0a PROTOCOL_INFOW;.
5350: 65 6c 73 65 0a 09 63 6f 6e 73 74 20 69 6e 74 20 else..const int
5360: 53 4f 5f 50 52 4f 54 4f 43 4f 4c 5f 49 4e 46 4f SO_PROTOCOL_INFO
5370: 20 3d 20 53 4f 5f 50 52 4f 54 4f 43 4f 4c 5f 49 = SO_PROTOCOL_I
5380: 4e 46 4f 41 3b 0a 0a 63 6f 6e 73 74 20 50 56 44 NFOA;..const PVD
5390: 5f 43 4f 4e 46 49 47 20 3d 20 30 78 33 30 30 31 _CONFIG = 0x3001
53a0: 3b 0a 0a 63 6f 6e 73 74 20 4d 53 47 5f 49 4e 54 ;..const MSG_INT
53b0: 45 52 52 55 50 54 20 3d 20 30 78 31 30 3b 0a 2f ERRUPT = 0x10;./
53c0: 2f 63 6f 6e 73 74 20 4d 53 47 5f 4d 41 58 49 4f /const MSG_MAXIO
53d0: 56 4c 45 4e 20 3d 20 31 36 3b 20 2f 2f 20 41 6c VLEN = 16; // Al
53e0: 72 65 61 64 79 20 64 65 63 6c 61 72 65 64 20 61 ready declared a
53f0: 62 6f 76 65 0a 0a 61 6c 69 61 73 20 48 41 4e 44 bove..alias HAND
5400: 4c 45 20 57 53 41 45 56 45 4e 54 3b 0a 61 6c 69 LE WSAEVENT;.ali
5410: 61 73 20 4c 50 48 41 4e 44 4c 45 20 4c 50 57 53 as LPHANDLE LPWS
5420: 41 45 56 45 4e 54 3b 0a 61 6c 69 61 73 20 4f 56 AEVENT;.alias OV
5430: 45 52 4c 41 50 50 45 44 20 57 53 41 4f 56 45 52 ERLAPPED WSAOVER
5440: 4c 41 50 50 45 44 3b 0a 61 6c 69 61 73 20 4f 56 LAPPED;.alias OV
5450: 45 52 4c 41 50 50 45 44 2a 20 4c 50 57 53 41 4f ERLAPPED* LPWSAO
5460: 56 45 52 4c 41 50 50 45 44 3b 0a 0a 70 72 69 76 VERLAPPED;..priv
5470: 61 74 65 20 69 6d 70 6f 72 74 20 77 69 6e 33 32 ate import win32
5480: 2e 77 69 6e 65 72 72 6f 72 3b 0a 70 72 69 76 61 .winerror;.priva
5490: 74 65 20 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e te import win32.
54a0: 77 69 6e 62 61 73 65 3b 0a 0a 65 6e 75 6d 20 7b winbase;..enum {
54b0: 0a 09 57 53 41 5f 49 4f 5f 50 45 4e 44 49 4e 47 ..WSA_IO_PENDING
54c0: 20 20 20 20 20 20 20 20 3d 20 45 52 52 4f 52 5f = ERROR_
54d0: 49 4f 5f 50 45 4e 44 49 4e 47 2c 0a 09 57 53 41 IO_PENDING,..WSA
54e0: 5f 49 4f 5f 49 4e 43 4f 4d 50 4c 45 54 45 20 20 _IO_INCOMPLETE
54f0: 20 20 20 3d 20 45 52 52 4f 52 5f 49 4f 5f 49 4e = ERROR_IO_IN
5500: 43 4f 4d 50 4c 45 54 45 2c 0a 09 57 53 41 5f 49 COMPLETE,..WSA_I
5510: 4e 56 41 4c 49 44 5f 48 41 4e 44 4c 45 20 20 20 NVALID_HANDLE
5520: 20 3d 20 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 = ERROR_INVALID
5530: 5f 48 41 4e 44 4c 45 2c 0a 09 57 53 41 5f 49 4e _HANDLE,..WSA_IN
5540: 56 41 4c 49 44 5f 50 41 52 41 4d 45 54 45 52 20 VALID_PARAMETER
5550: 3d 20 45 52 52 4f 52 5f 49 4e 56 41 4c 49 44 5f = ERROR_INVALID_
5560: 50 41 52 41 4d 45 54 45 52 2c 0a 09 57 53 41 5f PARAMETER,..WSA_
5570: 4e 4f 54 5f 45 4e 4f 55 47 48 5f 4d 45 4d 4f 52 NOT_ENOUGH_MEMOR
5580: 59 20 3d 20 45 52 52 4f 52 5f 4e 4f 54 5f 45 4e Y = ERROR_NOT_EN
5590: 4f 55 47 48 5f 4d 45 4d 4f 52 59 2c 0a 09 57 53 OUGH_MEMORY,..WS
55a0: 41 5f 4f 50 45 52 41 54 49 4f 4e 5f 41 42 4f 52 A_OPERATION_ABOR
55b0: 54 45 44 20 3d 20 45 52 52 4f 52 5f 4f 50 45 52 TED = ERROR_OPER
55c0: 41 54 49 4f 4e 5f 41 42 4f 52 54 45 44 0a 7d 0a ATION_ABORTED.}.
55d0: 0a 63 6f 6e 73 74 20 57 53 41 5f 49 4e 56 41 4c .const WSA_INVAL
55e0: 49 44 5f 45 56 45 4e 54 20 3d 20 63 61 73 74 28 ID_EVENT = cast(
55f0: 57 53 41 45 56 45 4e 54 29 6e 75 6c 6c 3b 0a 63 WSAEVENT)null;.c
5600: 6f 6e 73 74 20 57 53 41 5f 4d 41 58 49 4d 55 4d onst WSA_MAXIMUM
5610: 5f 57 41 49 54 5f 45 56 45 4e 54 53 20 3d 20 4d _WAIT_EVENTS = M
5620: 41 58 49 4d 55 4d 5f 57 41 49 54 5f 4f 42 4a 45 AXIMUM_WAIT_OBJE
5630: 43 54 53 3b 0a 63 6f 6e 73 74 20 57 53 41 5f 57 CTS;.const WSA_W
5640: 41 49 54 5f 46 41 49 4c 45 44 20 3d 20 63 61 73 AIT_FAILED = cas
5650: 74 28 44 57 4f 52 44 29 2d 31 3b 0a 63 6f 6e 73 t(DWORD)-1;.cons
5660: 74 20 57 53 41 5f 57 41 49 54 5f 45 56 45 4e 54 t WSA_WAIT_EVENT
5670: 5f 30 20 3d 20 57 41 49 54 5f 4f 42 4a 45 43 54 _0 = WAIT_OBJECT
5680: 5f 30 3b 0a 63 6f 6e 73 74 20 57 53 41 5f 57 41 _0;.const WSA_WA
5690: 49 54 5f 49 4f 5f 43 4f 4d 50 4c 45 54 49 4f 4e IT_IO_COMPLETION
56a0: 20 3d 20 57 41 49 54 5f 49 4f 5f 43 4f 4d 50 4c = WAIT_IO_COMPL
56b0: 45 54 49 4f 4e 3b 0a 63 6f 6e 73 74 20 57 53 41 ETION;.const WSA
56c0: 5f 57 41 49 54 5f 54 49 4d 45 4f 55 54 20 3d 20 _WAIT_TIMEOUT =
56d0: 57 41 49 54 5f 54 49 4d 45 4f 55 54 3b 0a 63 6f WAIT_TIMEOUT;.co
56e0: 6e 73 74 20 57 53 41 5f 49 4e 46 49 4e 49 54 45 nst WSA_INFINITE
56f0: 20 3d 20 49 4e 46 49 4e 49 54 45 3b 0a 0a 73 74 = INFINITE;..st
5700: 72 75 63 74 20 57 53 41 42 55 46 20 7b 0a 09 75 ruct WSABUF {..u
5710: 69 6e 74 20 20 6c 65 6e 3b 0a 09 63 68 61 72 2a int len;..char*
5720: 20 62 75 66 3b 0a 7d 0a 0a 61 6c 69 61 73 20 57 buf;.}..alias W
5730: 53 41 42 55 46 2a 20 4c 50 57 53 41 42 55 46 3b SABUF* LPWSABUF;
5740: 0a 0a 65 6e 75 6d 20 47 55 41 52 41 4e 54 45 45 ..enum GUARANTEE
5750: 20 7b 0a 09 42 65 73 74 45 66 66 6f 72 74 53 65 {..BestEffortSe
5760: 72 76 69 63 65 2c 0a 09 43 6f 6e 74 72 6f 6c 6c rvice,..Controll
5770: 65 64 4c 6f 61 64 53 65 72 76 69 63 65 2c 0a 09 edLoadService,..
5780: 50 72 65 64 69 63 74 69 76 65 53 65 72 76 69 63 PredictiveServic
5790: 65 2c 0a 09 47 75 61 72 61 6e 74 65 65 64 44 65 e,..GuaranteedDe
57a0: 6c 61 79 53 65 72 76 69 63 65 2c 0a 09 47 75 61 layService,..Gua
57b0: 72 61 6e 74 65 65 64 53 65 72 76 69 63 65 0a 7d ranteedService.}
57c0: 0a 0a 2f 2a 20 54 4f 44 4f 3a 20 46 4c 4f 57 53 ../* TODO: FLOWS
57d0: 50 45 43 20 61 6e 64 20 72 65 6c 61 74 65 64 20 PEC and related
57e0: 64 65 66 69 6e 69 74 69 6f 6e 73 20 62 65 6c 6f definitions belo
57f0: 6e 67 20 69 6e 20 71 6f 73 2e 68 20 2a 2f 0a 0a ng in qos.h */..
5800: 2f 2a 0a 20 20 20 57 69 6e 64 6f 77 73 20 53 6f /*. Windows So
5810: 63 6b 65 74 73 20 32 20 41 70 70 6c 69 63 61 74 ckets 2 Applicat
5820: 69 6f 6e 20 50 72 6f 67 72 61 6d 6d 69 6e 67 20 ion Programming
5830: 49 6e 74 65 72 66 61 63 65 2c 0a 20 20 20 72 65 Interface,. re
5840: 76 69 73 69 6f 6e 20 32 2e 32 2e 32 20 28 31 39 vision 2.2.2 (19
5850: 39 37 29 20 75 73 65 73 20 74 68 65 20 74 79 70 97) uses the typ
5860: 65 20 75 69 6e 74 33 32 20 66 6f 72 20 53 45 52 e uint32 for SER
5870: 56 49 43 45 54 59 50 45 0a 20 20 20 61 6e 64 20 VICETYPE. and
5880: 74 68 65 20 65 6c 65 6d 65 6e 74 73 20 6f 66 20 the elements of
5890: 5f 66 6c 6f 77 73 70 65 63 2c 20 62 75 74 20 74 _flowspec, but t
58a0: 68 65 20 74 79 70 65 20 75 69 6e 74 33 32 20 69 he type uint32 i
58b0: 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 0a 20 20 s not defined.
58c0: 20 6f 72 20 75 73 65 64 20 61 6e 79 77 68 65 72 or used anywher
58d0: 65 20 65 6c 73 65 20 69 6e 20 74 68 65 20 77 33 e else in the w3
58e0: 32 61 70 69 2e 20 46 6f 72 20 6e 6f 77 2c 20 6a 2api. For now, j
58f0: 75 73 74 20 75 73 65 0a 20 20 20 75 6e 73 69 67 ust use. unsig
5900: 6e 65 64 20 69 6e 74 2c 20 77 68 69 63 68 20 69 ned int, which i
5910: 73 20 33 32 20 62 69 74 73 20 6f 6e 20 5f 57 49 s 32 bits on _WI
5920: 4e 33 32 20 61 6e 64 20 5f 57 49 4e 36 34 2e 0a N32 and _WIN64..
5930: 2a 2f 0a 0a 61 6c 69 61 73 20 75 69 6e 74 20 53 */..alias uint S
5940: 45 52 56 49 43 45 54 59 50 45 3b 0a 0a 73 74 72 ERVICETYPE;..str
5950: 75 63 74 20 46 4c 4f 57 53 50 45 43 20 7b 0a 09 uct FLOWSPEC {..
5960: 75 69 6e 74 20 20 20 20 20 20 20 20 54 6f 6b 65 uint Toke
5970: 6e 52 61 74 65 3b 0a 09 75 69 6e 74 20 20 20 20 nRate;..uint
5980: 20 20 20 20 54 6f 6b 65 6e 42 75 63 6b 65 74 53 TokenBucketS
5990: 69 7a 65 3b 0a 09 75 69 6e 74 20 20 20 20 20 20 ize;..uint
59a0: 20 20 50 65 61 6b 42 61 6e 64 77 69 64 74 68 3b PeakBandwidth;
59b0: 0a 09 75 69 6e 74 20 20 20 20 20 20 20 20 4c 61 ..uint La
59c0: 74 65 6e 63 79 3b 0a 09 75 69 6e 74 20 20 20 20 tency;..uint
59d0: 20 20 20 20 44 65 6c 61 79 56 61 72 69 61 74 69 DelayVariati
59e0: 6f 6e 3b 0a 09 53 45 52 56 49 43 45 54 59 50 45 on;..SERVICETYPE
59f0: 20 53 65 72 76 69 63 65 54 79 70 65 3b 0a 09 75 ServiceType;..u
5a00: 69 6e 74 20 20 20 20 20 20 20 20 4d 61 78 53 64 int MaxSd
5a10: 75 53 69 7a 65 3b 0a 09 75 69 6e 74 20 20 20 20 uSize;..uint
5a20: 20 20 20 20 4d 69 6e 69 6d 75 6d 50 6f 6c 69 63 MinimumPolic
5a30: 65 64 53 69 7a 65 3b 0a 7d 0a 0a 61 6c 69 61 73 edSize;.}..alias
5a40: 20 46 4c 4f 57 53 50 45 43 2a 20 50 46 4c 4f 57 FLOWSPEC* PFLOW
5a50: 53 50 45 43 2c 20 4c 50 46 4c 4f 57 53 50 45 43 SPEC, LPFLOWSPEC
5a60: 3b 0a 0a 73 74 72 75 63 74 20 51 4f 53 0a 7b 0a ;..struct QOS.{.
5a70: 09 46 4c 4f 57 53 50 45 43 20 53 65 6e 64 69 6e .FLOWSPEC Sendin
5a80: 67 46 6c 6f 77 73 70 65 63 3b 0a 09 46 4c 4f 57 gFlowspec;..FLOW
5a90: 53 50 45 43 20 52 65 63 65 69 76 69 6e 67 46 6c SPEC ReceivingFl
5aa0: 6f 77 73 70 65 63 3b 0a 09 57 53 41 42 55 46 20 owspec;..WSABUF
5ab0: 20 20 50 72 6f 76 69 64 65 72 53 70 65 63 69 66 ProviderSpecif
5ac0: 69 63 3b 0a 7d 0a 0a 61 6c 69 61 73 20 51 4f 53 ic;.}..alias QOS
5ad0: 2a 20 4c 50 51 4f 53 3b 0a 0a 65 6e 75 6d 20 7b * LPQOS;..enum {
5ae0: 0a 09 43 46 5f 41 43 43 45 50 54 2c 0a 09 43 46 ..CF_ACCEPT,..CF
5af0: 5f 52 45 4a 45 43 54 2c 0a 09 43 46 5f 44 45 46 _REJECT,..CF_DEF
5b00: 45 52 0a 7d 0a 0a 2f 2f 20 52 45 4d 3a 20 41 6c ER.}..// REM: Al
5b10: 72 65 61 64 79 20 64 65 66 69 6e 65 64 20 61 62 ready defined ab
5b20: 6f 76 65 0a 2f 2a 65 6e 75 6d 20 7b 0a 09 53 44 ove./*enum {..SD
5b30: 5f 52 45 43 45 49 56 45 2c 0a 09 53 44 5f 53 45 _RECEIVE,..SD_SE
5b40: 4e 44 2c 0a 09 53 44 5f 42 4f 54 48 0a 7d 2a 2f ND,..SD_BOTH.}*/
5b50: 0a 0a 61 6c 69 61 73 20 75 69 6e 74 20 47 52 4f ..alias uint GRO
5b60: 55 50 3b 0a 0a 65 6e 75 6d 20 7b 0a 09 53 47 5f UP;..enum {..SG_
5b70: 55 4e 43 4f 4e 53 54 52 41 49 4e 45 44 5f 47 52 UNCONSTRAINED_GR
5b80: 4f 55 50 20 3d 20 30 78 30 31 2c 0a 09 53 47 5f OUP = 0x01,..SG_
5b90: 43 4f 4e 53 54 52 41 49 4e 45 44 5f 47 52 4f 55 CONSTRAINED_GROU
5ba0: 50 0a 7d 0a 0a 73 74 72 75 63 74 20 57 53 41 4e P.}..struct WSAN
5bb0: 45 54 57 4f 52 4b 45 56 45 4e 54 53 20 7b 0a 09 ETWORKEVENTS {..
5bc0: 69 6e 74 20 6c 4e 65 74 77 6f 72 6b 45 76 65 6e int lNetworkEven
5bd0: 74 73 3b 0a 09 69 6e 74 5b 46 44 5f 4d 41 58 5f ts;..int[FD_MAX_
5be0: 45 56 45 4e 54 53 5d 20 69 45 72 72 6f 72 43 6f EVENTS] iErrorCo
5bf0: 64 65 3b 0a 7d 0a 0a 61 6c 69 61 73 20 57 53 41 de;.}..alias WSA
5c00: 4e 45 54 57 4f 52 4b 45 56 45 4e 54 53 2a 20 4c NETWORKEVENTS* L
5c10: 50 57 53 41 4e 45 54 57 4f 52 4b 45 56 45 4e 54 PWSANETWORKEVENT
5c20: 53 3b 0a 0a 63 6f 6e 73 74 20 4d 41 58 5f 50 52 S;..const MAX_PR
5c30: 4f 54 4f 43 4f 4c 5f 43 48 41 49 4e 20 3d 20 37 OTOCOL_CHAIN = 7
5c40: 3b 0a 0a 63 6f 6e 73 74 20 42 41 53 45 5f 50 52 ;..const BASE_PR
5c50: 4f 54 4f 43 4f 4c 20 20 20 20 3d 20 31 3b 0a 63 OTOCOL = 1;.c
5c60: 6f 6e 73 74 20 4c 41 59 45 52 45 44 5f 50 52 4f onst LAYERED_PRO
5c70: 54 4f 43 4f 4c 20 3d 20 30 3b 0a 0a 65 6e 75 6d TOCOL = 0;..enum
5c80: 20 57 53 41 45 53 45 54 53 45 52 56 49 43 45 4f WSAESETSERVICEO
5c90: 50 0a 7b 0a 09 52 4e 52 53 45 52 56 49 43 45 5f P.{..RNRSERVICE_
5ca0: 52 45 47 49 53 54 45 52 20 3d 20 30 2c 0a 09 52 REGISTER = 0,..R
5cb0: 4e 52 53 45 52 56 49 43 45 5f 44 45 52 45 47 49 NRSERVICE_DEREGI
5cc0: 53 54 45 52 2c 0a 09 52 4e 52 53 45 52 56 49 43 STER,..RNRSERVIC
5cd0: 45 5f 44 45 4c 45 54 45 0a 7d 0a 0a 61 6c 69 61 E_DELETE.}..alia
5ce0: 73 20 57 53 41 45 53 45 54 53 45 52 56 49 43 45 s WSAESETSERVICE
5cf0: 4f 50 2a 20 50 57 53 41 45 53 45 54 53 45 52 56 OP* PWSAESETSERV
5d00: 49 43 45 4f 50 2c 20 4c 50 57 53 41 45 53 45 54 ICEOP, LPWSAESET
5d10: 53 45 52 56 49 43 45 4f 50 3b 0a 0a 73 74 72 75 SERVICEOP;..stru
5d20: 63 74 20 41 46 50 52 4f 54 4f 43 4f 4c 53 20 7b ct AFPROTOCOLS {
5d30: 0a 09 49 4e 54 20 69 41 64 64 72 65 73 73 46 61 ..INT iAddressFa
5d40: 6d 69 6c 79 3b 0a 09 49 4e 54 20 69 50 72 6f 74 mily;..INT iProt
5d50: 6f 63 6f 6c 3b 0a 7d 0a 0a 61 6c 69 61 73 20 41 ocol;.}..alias A
5d60: 46 50 52 4f 54 4f 43 4f 4c 53 2a 20 50 41 46 50 FPROTOCOLS* PAFP
5d70: 52 4f 54 4f 43 4f 4c 53 2c 20 4c 50 41 46 50 52 ROTOCOLS, LPAFPR
5d80: 4f 54 4f 43 4f 4c 53 3b 0a 0a 65 6e 75 6d 20 57 OTOCOLS;..enum W
5d90: 53 41 45 43 4f 4d 50 41 52 41 54 4f 52 0a 7b 0a SAECOMPARATOR.{.
5da0: 09 43 4f 4d 50 5f 45 51 55 41 4c 20 3d 20 30 2c .COMP_EQUAL = 0,
5db0: 0a 09 43 4f 4d 50 5f 4e 4f 54 4c 45 53 53 0a 7d ..COMP_NOTLESS.}
5dc0: 0a 0a 61 6c 69 61 73 20 57 53 41 45 43 4f 4d 50 ..alias WSAECOMP
5dd0: 41 52 41 54 4f 52 2a 20 50 57 53 41 45 43 4f 4d ARATOR* PWSAECOM
5de0: 50 41 52 41 54 4f 52 2c 20 4c 50 57 53 41 45 43 PARATOR, LPWSAEC
5df0: 4f 4d 50 41 52 41 54 4f 52 3b 0a 0a 73 74 72 75 OMPARATOR;..stru
5e00: 63 74 20 57 53 41 56 45 52 53 49 4f 4e 0a 7b 0a ct WSAVERSION.{.
5e10: 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 .DWORD
5e20: 64 77 56 65 72 73 69 6f 6e 3b 0a 09 57 53 41 45 dwVersion;..WSAE
5e30: 43 4f 4d 50 41 52 41 54 4f 52 20 65 63 48 6f 77 COMPARATOR ecHow
5e40: 3b 0a 7d 0a 0a 61 6c 69 61 73 20 57 53 41 56 45 ;.}..alias WSAVE
5e50: 52 53 49 4f 4e 2a 20 50 57 53 41 56 45 52 53 49 RSION* PWSAVERSI
5e60: 4f 4e 2c 20 4c 50 57 53 41 56 45 52 53 49 4f 4e ON, LPWSAVERSION
5e70: 3b 0a 0a 2f 2f 20 49 6d 70 6f 72 74 20 66 6f 72 ;..// Import for
5e80: 20 53 4f 43 4b 45 54 5f 41 44 44 52 45 53 53 2c SOCKET_ADDRESS,
5e90: 20 43 53 41 44 44 52 5f 49 4e 46 4f 0a 2f 2f 20 CSADDR_INFO.//
5ea0: 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e 6e 73 70 import win32.nsp
5eb0: 61 70 69 3b 0a 2f 2f 23 69 66 6e 64 65 66 20 5f api;.//#ifndef _
5ec0: 5f 43 53 41 44 44 52 5f 54 5f 44 45 46 49 4e 45 _CSADDR_T_DEFINE
5ed0: 44 20 2f 2a 20 61 6c 73 6f 20 69 6e 20 6e 73 70 D /* also in nsp
5ee0: 61 70 69 2e 68 20 2a 2f 0a 2f 2f 23 64 65 66 69 api.h */.//#defi
5ef0: 6e 65 20 5f 5f 43 53 41 44 44 52 5f 54 5f 44 45 ne __CSADDR_T_DE
5f00: 46 49 4e 45 44 0a 0a 73 74 72 75 63 74 20 53 4f FINED..struct SO
5f10: 43 4b 45 54 5f 41 44 44 52 45 53 53 20 7b 0a 09 CKET_ADDRESS {..
5f20: 4c 50 53 4f 43 4b 41 44 44 52 20 6c 70 53 6f 63 LPSOCKADDR lpSoc
5f30: 6b 61 64 64 72 3b 0a 09 49 4e 54 20 20 20 20 20 kaddr;..INT
5f40: 20 20 20 69 53 6f 63 6b 61 64 64 72 4c 65 6e 67 iSockaddrLeng
5f50: 74 68 3b 0a 7d 0a 0a 61 6c 69 61 73 20 53 4f 43 th;.}..alias SOC
5f60: 4b 45 54 5f 41 44 44 52 45 53 53 2a 20 50 53 4f KET_ADDRESS* PSO
5f70: 43 4b 45 54 5f 41 44 44 52 45 53 53 2c 20 4c 50 CKET_ADDRESS, LP
5f80: 53 4f 43 4b 45 54 5f 41 44 44 52 45 53 53 3b 0a SOCKET_ADDRESS;.
5f90: 0a 73 74 72 75 63 74 20 43 53 41 44 44 52 5f 49 .struct CSADDR_I
5fa0: 4e 46 4f 20 7b 0a 09 53 4f 43 4b 45 54 5f 41 44 NFO {..SOCKET_AD
5fb0: 44 52 45 53 53 20 4c 6f 63 61 6c 41 64 64 72 3b DRESS LocalAddr;
5fc0: 0a 09 53 4f 43 4b 45 54 5f 41 44 44 52 45 53 53 ..SOCKET_ADDRESS
5fd0: 20 52 65 6d 6f 74 65 41 64 64 72 3b 0a 09 49 4e RemoteAddr;..IN
5fe0: 54 20 20 20 20 20 20 20 20 20 20 20 20 69 53 6f T iSo
5ff0: 63 6b 65 74 54 79 70 65 3b 0a 09 49 4e 54 20 20 cketType;..INT
6000: 20 20 20 20 20 20 20 20 20 20 69 50 72 6f 74 6f iProto
6010: 63 6f 6c 3b 0a 7d 0a 0a 61 6c 69 61 73 20 43 53 col;.}..alias CS
6020: 41 44 44 52 5f 49 4e 46 4f 2a 20 50 43 53 41 44 ADDR_INFO* PCSAD
6030: 44 52 5f 49 4e 46 4f 2c 20 4c 50 43 53 41 44 44 DR_INFO, LPCSADD
6040: 52 5f 49 4e 46 4f 3b 0a 0a 2f 2f 23 65 6e 64 69 R_INFO;..//#endi
6050: 66 0a 0a 73 74 72 75 63 74 20 53 4f 43 4b 45 54 f..struct SOCKET
6060: 5f 41 44 44 52 45 53 53 5f 4c 49 53 54 20 7b 0a _ADDRESS_LIST {.
6070: 20 20 20 20 49 4e 54 20 20 20 20 20 20 20 20 20 INT
6080: 20 20 20 20 20 20 69 41 64 64 72 65 73 73 43 6f iAddressCo
6090: 75 6e 74 3b 0a 20 20 20 20 53 4f 43 4b 45 54 5f unt;. SOCKET_
60a0: 41 44 44 52 45 53 53 5b 31 5d 20 5f 41 64 64 72 ADDRESS[1] _Addr
60b0: 65 73 73 3b 0a 20 20 20 20 53 4f 43 4b 45 54 5f ess;. SOCKET_
60c0: 41 44 44 52 45 53 53 2a 20 41 64 64 72 65 73 73 ADDRESS* Address
60d0: 28 29 20 7b 20 72 65 74 75 72 6e 20 5f 41 64 64 () { return _Add
60e0: 72 65 73 73 2e 70 74 72 3b 20 7d 0a 7d 0a 0a 61 ress.ptr; }.}..a
60f0: 6c 69 61 73 20 53 4f 43 4b 45 54 5f 41 44 44 52 lias SOCKET_ADDR
6100: 45 53 53 5f 4c 49 53 54 2a 20 4c 50 53 4f 43 4b ESS_LIST* LPSOCK
6110: 45 54 5f 41 44 44 52 45 53 53 5f 4c 49 53 54 3b ET_ADDRESS_LIST;
6120: 0a 0a 2f 2f 20 54 4f 44 4f 3a 20 49 6d 70 6f 72 ..// TODO: Impor
6130: 74 20 77 74 79 70 65 73 2f 6e 73 70 61 70 69 3f t wtypes/nspapi?
6140: 0a 2f 2f 23 69 66 6e 64 65 66 20 5f 5f 42 4c 4f .//#ifndef __BLO
6150: 42 5f 54 5f 44 45 46 49 4e 45 44 20 2f 2a 20 61 B_T_DEFINED /* a
6160: 6c 73 6f 20 69 6e 20 77 74 79 70 65 73 2e 68 20 lso in wtypes.h
6170: 61 6e 64 20 6e 73 70 61 70 69 2e 68 20 2a 2f 0a and nspapi.h */.
6180: 2f 2f 23 64 65 66 69 6e 65 20 5f 5f 42 4c 4f 42 //#define __BLOB
6190: 5f 54 5f 44 45 46 49 4e 45 44 0a 73 74 72 75 63 _T_DEFINED.struc
61a0: 74 20 42 4c 4f 42 20 7b 0a 09 55 4c 4f 4e 47 20 t BLOB {..ULONG
61b0: 63 62 53 69 7a 65 3b 0a 09 42 59 54 45 2a 20 70 cbSize;..BYTE* p
61c0: 42 6c 6f 62 44 61 74 61 3b 0a 7d 0a 0a 61 6c 69 BlobData;.}..ali
61d0: 61 73 20 42 4c 4f 42 2a 20 50 42 4c 4f 42 2c 20 as BLOB* PBLOB,
61e0: 4c 50 42 4c 4f 42 3b 0a 2f 2f 23 65 6e 64 69 66 LPBLOB;.//#endif
61f0: 0a 0a 73 74 72 75 63 74 20 57 53 41 51 55 45 52 ..struct WSAQUER
6200: 59 53 45 54 41 0a 7b 0a 09 44 57 4f 52 44 20 20 YSETA.{..DWORD
6210: 20 20 20 20 20 20 20 64 77 53 69 7a 65 3b 0a 09 dwSize;..
6220: 4c 50 53 54 52 20 20 20 20 20 20 20 20 20 6c 70 LPSTR lp
6230: 73 7a 53 65 72 76 69 63 65 49 6e 73 74 61 6e 63 szServiceInstanc
6240: 65 4e 61 6d 65 3b 0a 09 4c 50 47 55 49 44 20 20 eName;..LPGUID
6250: 20 20 20 20 20 20 6c 70 53 65 72 76 69 63 65 43 lpServiceC
6260: 6c 61 73 73 49 64 3b 0a 09 4c 50 57 53 41 56 45 lassId;..LPWSAVE
6270: 52 53 49 4f 4e 20 20 6c 70 56 65 72 73 69 6f 6e RSION lpVersion
6280: 3b 0a 09 4c 50 53 54 52 20 20 20 20 20 20 20 20 ;..LPSTR
6290: 20 6c 70 73 7a 43 6f 6d 6d 65 6e 74 3b 0a 09 44 lpszComment;..D
62a0: 57 4f 52 44 20 20 20 20 20 20 20 20 20 64 77 4e WORD dwN
62b0: 61 6d 65 53 70 61 63 65 3b 0a 09 4c 50 47 55 49 ameSpace;..LPGUI
62c0: 44 20 20 20 20 20 20 20 20 6c 70 4e 53 50 72 6f D lpNSPro
62d0: 76 69 64 65 72 49 64 3b 0a 09 4c 50 53 54 52 20 viderId;..LPSTR
62e0: 20 20 20 20 20 20 20 20 6c 70 73 7a 43 6f 6e 74 lpszCont
62f0: 65 78 74 3b 0a 09 44 57 4f 52 44 20 20 20 20 20 ext;..DWORD
6300: 20 20 20 20 64 77 4e 75 6d 62 65 72 4f 66 50 72 dwNumberOfPr
6310: 6f 74 6f 63 6f 6c 73 3b 0a 09 4c 50 41 46 50 52 otocols;..LPAFPR
6320: 4f 54 4f 43 4f 4c 53 20 6c 70 61 66 70 50 72 6f OTOCOLS lpafpPro
6330: 74 6f 63 6f 6c 73 3b 0a 09 4c 50 53 54 52 20 20 tocols;..LPSTR
6340: 20 20 20 20 20 20 20 6c 70 73 7a 51 75 65 72 79 lpszQuery
6350: 53 74 72 69 6e 67 3b 0a 09 44 57 4f 52 44 20 20 String;..DWORD
6360: 20 20 20 20 20 20 20 64 77 4e 75 6d 62 65 72 4f dwNumberO
6370: 66 43 73 41 64 64 72 73 3b 0a 09 4c 50 43 53 41 fCsAddrs;..LPCSA
6380: 44 44 52 5f 49 4e 46 4f 20 6c 70 63 73 61 42 75 DDR_INFO lpcsaBu
6390: 66 66 65 72 3b 0a 09 44 57 4f 52 44 20 20 20 20 ffer;..DWORD
63a0: 20 20 20 20 20 64 77 4f 75 74 70 75 74 46 6c 61 dwOutputFla
63b0: 67 73 3b 0a 09 4c 50 42 4c 4f 42 20 20 20 20 20 gs;..LPBLOB
63c0: 20 20 20 6c 70 42 6c 6f 62 3b 0a 7d 0a 0a 61 6c lpBlob;.}..al
63d0: 69 61 73 20 57 53 41 51 55 45 52 59 53 45 54 41 ias WSAQUERYSETA
63e0: 2a 20 50 57 53 41 51 55 45 52 59 53 45 54 41 2c * PWSAQUERYSETA,
63f0: 20 4c 50 57 53 41 51 55 45 52 59 53 45 54 41 3b LPWSAQUERYSETA;
6400: 0a 0a 73 74 72 75 63 74 20 57 53 41 51 55 45 52 ..struct WSAQUER
6410: 59 53 45 54 57 0a 7b 0a 09 44 57 4f 52 44 20 20 YSETW.{..DWORD
6420: 20 20 20 20 20 20 20 64 77 53 69 7a 65 3b 0a 09 dwSize;..
6430: 4c 50 57 53 54 52 20 20 20 20 20 20 20 20 6c 70 LPWSTR lp
6440: 73 7a 53 65 72 76 69 63 65 49 6e 73 74 61 6e 63 szServiceInstanc
6450: 65 4e 61 6d 65 3b 0a 09 4c 50 47 55 49 44 20 20 eName;..LPGUID
6460: 20 20 20 20 20 20 6c 70 53 65 72 76 69 63 65 43 lpServiceC
6470: 6c 61 73 73 49 64 3b 0a 09 4c 50 57 53 41 56 45 lassId;..LPWSAVE
6480: 52 53 49 4f 4e 20 20 6c 70 56 65 72 73 69 6f 6e RSION lpVersion
6490: 3b 0a 09 4c 50 57 53 54 52 20 20 20 20 20 20 20 ;..LPWSTR
64a0: 20 6c 70 73 7a 43 6f 6d 6d 65 6e 74 3b 0a 09 44 lpszComment;..D
64b0: 57 4f 52 44 20 20 20 20 20 20 20 20 20 64 77 4e WORD dwN
64c0: 61 6d 65 53 70 61 63 65 3b 0a 09 4c 50 47 55 49 ameSpace;..LPGUI
64d0: 44 20 20 20 20 20 20 20 20 6c 70 4e 53 50 72 6f D lpNSPro
64e0: 76 69 64 65 72 49 64 3b 0a 09 4c 50 57 53 54 52 viderId;..LPWSTR
64f0: 20 20 20 20 20 20 20 20 6c 70 73 7a 43 6f 6e 74 lpszCont
6500: 65 78 74 3b 0a 09 44 57 4f 52 44 20 20 20 20 20 ext;..DWORD
6510: 20 20 20 20 64 77 4e 75 6d 62 65 72 4f 66 50 72 dwNumberOfPr
6520: 6f 74 6f 63 6f 6c 73 3b 0a 09 4c 50 41 46 50 52 otocols;..LPAFPR
6530: 4f 54 4f 43 4f 4c 53 20 6c 70 61 66 70 50 72 6f OTOCOLS lpafpPro
6540: 74 6f 63 6f 6c 73 3b 0a 09 4c 50 57 53 54 52 20 tocols;..LPWSTR
6550: 20 20 20 20 20 20 20 6c 70 73 7a 51 75 65 72 79 lpszQuery
6560: 53 74 72 69 6e 67 3b 0a 09 44 57 4f 52 44 20 20 String;..DWORD
6570: 20 20 20 20 20 20 20 64 77 4e 75 6d 62 65 72 4f dwNumberO
6580: 66 43 73 41 64 64 72 73 3b 0a 09 4c 50 43 53 41 fCsAddrs;..LPCSA
6590: 44 44 52 5f 49 4e 46 4f 20 6c 70 63 73 61 42 75 DDR_INFO lpcsaBu
65a0: 66 66 65 72 3b 0a 09 44 57 4f 52 44 20 20 20 20 ffer;..DWORD
65b0: 20 20 20 20 20 64 77 4f 75 74 70 75 74 46 6c 61 dwOutputFla
65c0: 67 73 3b 0a 09 4c 50 42 4c 4f 42 20 20 20 20 20 gs;..LPBLOB
65d0: 20 20 20 6c 70 42 6c 6f 62 3b 0a 7d 0a 0a 0a 61 lpBlob;.}...a
65e0: 6c 69 61 73 20 57 53 41 51 55 45 52 59 53 45 54 lias WSAQUERYSET
65f0: 57 2a 20 50 57 53 41 51 55 45 52 59 53 45 54 57 W* PWSAQUERYSETW
6600: 2c 20 4c 50 57 53 41 51 55 45 52 59 53 45 54 57 , LPWSAQUERYSETW
6610: 3b 0a 0a 76 65 72 73 69 6f 6e 28 55 6e 69 63 6f ;..version(Unico
6620: 64 65 29 20 7b 0a 09 61 6c 69 61 73 20 57 53 41 de) {..alias WSA
6630: 51 55 45 52 59 53 45 54 57 20 57 53 41 51 55 45 QUERYSETW WSAQUE
6640: 52 59 53 45 54 3b 0a 09 61 6c 69 61 73 20 50 57 RYSET;..alias PW
6650: 53 41 51 55 45 52 59 53 45 54 57 20 50 57 53 41 SAQUERYSETW PWSA
6660: 51 55 45 52 59 53 45 54 3b 0a 09 61 6c 69 61 73 QUERYSET;..alias
6670: 20 4c 50 57 53 41 51 55 45 52 59 53 45 54 57 20 LPWSAQUERYSETW
6680: 4c 50 57 53 41 51 55 45 52 59 53 45 54 3b 0a 7d LPWSAQUERYSET;.}
6690: 20 65 6c 73 65 20 7b 0a 09 61 6c 69 61 73 20 57 else {..alias W
66a0: 53 41 51 55 45 52 59 53 45 54 41 20 57 53 41 51 SAQUERYSETA WSAQ
66b0: 55 45 52 59 53 45 54 3b 0a 09 61 6c 69 61 73 20 UERYSET;..alias
66c0: 50 57 53 41 51 55 45 52 59 53 45 54 41 20 50 57 PWSAQUERYSETA PW
66d0: 53 41 51 55 45 52 59 53 45 54 3b 0a 09 61 6c 69 SAQUERYSET;..ali
66e0: 61 73 20 4c 50 57 53 41 51 55 45 52 59 53 45 54 as LPWSAQUERYSET
66f0: 41 20 4c 50 57 53 41 51 55 45 52 59 53 45 54 3b A LPWSAQUERYSET;
6700: 0a 7d 0a 0a 63 6f 6e 73 74 20 69 6e 74 0a 09 4c .}..const int..L
6710: 55 50 5f 44 45 45 50 20 20 20 20 20 20 20 20 20 UP_DEEP
6720: 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 31 2c = 0x0001,
6730: 0a 09 4c 55 50 5f 43 4f 4e 54 41 49 4e 45 52 53 ..LUP_CONTAINERS
6740: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 = 0x00
6750: 30 32 2c 0a 09 4c 55 50 5f 4e 4f 43 4f 4e 54 41 02,..LUP_NOCONTA
6760: 49 4e 45 52 53 20 20 20 20 20 20 20 20 3d 20 30 INERS = 0
6770: 78 30 30 30 34 2c 0a 09 4c 55 50 5f 4e 45 41 52 x0004,..LUP_NEAR
6780: 45 53 54 20 20 20 20 20 20 20 20 20 20 20 20 20 EST
6790: 3d 20 30 78 30 30 30 38 2c 0a 09 4c 55 50 5f 52 = 0x0008,..LUP_R
67a0: 45 54 55 52 4e 5f 4e 41 4d 45 20 20 20 20 20 20 ETURN_NAME
67b0: 20 20 20 3d 20 30 78 30 30 31 30 2c 0a 09 4c 55 = 0x0010,..LU
67c0: 50 5f 52 45 54 55 52 4e 5f 54 59 50 45 20 20 20 P_RETURN_TYPE
67d0: 20 20 20 20 20 20 3d 20 30 78 30 30 32 30 2c 0a = 0x0020,.
67e0: 09 4c 55 50 5f 52 45 54 55 52 4e 5f 56 45 52 53 .LUP_RETURN_VERS
67f0: 49 4f 4e 20 20 20 20 20 20 3d 20 30 78 30 30 34 ION = 0x004
6800: 30 2c 0a 09 4c 55 50 5f 52 45 54 55 52 4e 5f 43 0,..LUP_RETURN_C
6810: 4f 4d 4d 45 4e 54 20 20 20 20 20 20 3d 20 30 78 OMMENT = 0x
6820: 30 30 38 30 2c 0a 09 4c 55 50 5f 52 45 54 55 52 0080,..LUP_RETUR
6830: 4e 5f 41 44 44 52 20 20 20 20 20 20 20 20 20 3d N_ADDR =
6840: 20 30 78 30 31 30 30 2c 0a 09 4c 55 50 5f 52 45 0x0100,..LUP_RE
6850: 54 55 52 4e 5f 42 4c 4f 42 20 20 20 20 20 20 20 TURN_BLOB
6860: 20 20 3d 20 30 78 30 32 30 30 2c 0a 09 4c 55 50 = 0x0200,..LUP
6870: 5f 52 45 54 55 52 4e 5f 41 4c 49 41 53 45 53 20 _RETURN_ALIASES
6880: 20 20 20 20 20 3d 20 30 78 30 34 30 30 2c 0a 09 = 0x0400,..
6890: 4c 55 50 5f 52 45 54 55 52 4e 5f 51 55 45 52 59 LUP_RETURN_QUERY
68a0: 5f 53 54 52 49 4e 47 20 3d 20 30 78 30 38 30 30 _STRING = 0x0800
68b0: 2c 0a 09 4c 55 50 5f 52 45 54 55 52 4e 5f 41 4c ,..LUP_RETURN_AL
68c0: 4c 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 L = 0x0
68d0: 46 46 30 2c 0a 09 4c 55 50 5f 52 45 53 5f 53 45 FF0,..LUP_RES_SE
68e0: 52 56 49 43 45 20 20 20 20 20 20 20 20 20 3d 20 RVICE =
68f0: 30 78 38 30 30 30 2c 0a 09 4c 55 50 5f 46 4c 55 0x8000,..LUP_FLU
6900: 53 48 43 41 43 48 45 20 20 20 20 20 20 20 20 20 SHCACHE
6910: 20 3d 20 30 78 31 30 30 30 2c 0a 09 4c 55 50 5f = 0x1000,..LUP_
6920: 46 4c 55 53 48 50 52 45 56 49 4f 55 53 20 20 20 FLUSHPREVIOUS
6930: 20 20 20 20 3d 20 30 78 32 30 30 30 3b 0a 0a 73 = 0x2000;..s
6940: 74 72 75 63 74 20 57 53 41 4e 53 43 4c 41 53 53 truct WSANSCLASS
6950: 49 4e 46 4f 41 0a 7b 0a 09 4c 50 53 54 52 20 20 INFOA.{..LPSTR
6960: 6c 70 73 7a 4e 61 6d 65 3b 0a 09 44 57 4f 52 44 lpszName;..DWORD
6970: 20 20 64 77 4e 61 6d 65 53 70 61 63 65 3b 0a 09 dwNameSpace;..
6980: 44 57 4f 52 44 20 20 64 77 56 61 6c 75 65 54 79 DWORD dwValueTy
6990: 70 65 3b 0a 09 44 57 4f 52 44 20 20 64 77 56 61 pe;..DWORD dwVa
69a0: 6c 75 65 53 69 7a 65 3b 0a 09 4c 50 56 4f 49 44 lueSize;..LPVOID
69b0: 20 6c 70 56 61 6c 75 65 3b 0a 7d 0a 0a 61 6c 69 lpValue;.}..ali
69c0: 61 73 20 57 53 41 4e 53 43 4c 41 53 53 49 4e 46 as WSANSCLASSINF
69d0: 4f 41 2a 20 50 57 53 41 4e 53 43 4c 41 53 53 49 OA* PWSANSCLASSI
69e0: 4e 46 4f 41 2c 20 4c 50 57 53 41 4e 53 43 4c 41 NFOA, LPWSANSCLA
69f0: 53 53 49 4e 46 4f 41 3b 0a 0a 73 74 72 75 63 74 SSINFOA;..struct
6a00: 20 57 53 41 4e 53 43 4c 41 53 53 49 4e 46 4f 57 WSANSCLASSINFOW
6a10: 0a 7b 0a 09 4c 50 57 53 54 52 20 6c 70 73 7a 4e .{..LPWSTR lpszN
6a20: 61 6d 65 3b 0a 09 44 57 4f 52 44 20 20 64 77 4e ame;..DWORD dwN
6a30: 61 6d 65 53 70 61 63 65 3b 0a 09 44 57 4f 52 44 ameSpace;..DWORD
6a40: 20 20 64 77 56 61 6c 75 65 54 79 70 65 3b 0a 09 dwValueType;..
6a50: 44 57 4f 52 44 20 20 64 77 56 61 6c 75 65 53 69 DWORD dwValueSi
6a60: 7a 65 3b 0a 09 4c 50 56 4f 49 44 20 6c 70 56 61 ze;..LPVOID lpVa
6a70: 6c 75 65 3b 0a 7d 0a 0a 61 6c 69 61 73 20 57 53 lue;.}..alias WS
6a80: 41 4e 53 43 4c 41 53 53 49 4e 46 4f 57 2a 20 50 ANSCLASSINFOW* P
6a90: 57 53 41 4e 53 43 4c 41 53 53 49 4e 46 4f 57 2c WSANSCLASSINFOW,
6aa0: 20 4c 50 57 53 41 4e 53 43 4c 41 53 53 49 4e 46 LPWSANSCLASSINF
6ab0: 4f 57 3b 0a 0a 76 65 72 73 69 6f 6e 28 55 6e 69 OW;..version(Uni
6ac0: 63 6f 64 65 29 20 7b 0a 09 61 6c 69 61 73 20 57 code) {..alias W
6ad0: 53 41 4e 53 43 4c 41 53 53 49 4e 46 4f 57 20 57 SANSCLASSINFOW W
6ae0: 53 41 4e 53 43 4c 41 53 53 49 4e 46 4f 3b 0a 09 SANSCLASSINFO;..
6af0: 61 6c 69 61 73 20 50 57 53 41 4e 53 43 4c 41 53 alias PWSANSCLAS
6b00: 53 49 4e 46 4f 57 20 50 57 53 41 4e 53 43 4c 41 SINFOW PWSANSCLA
6b10: 53 53 49 4e 46 4f 3b 0a 09 61 6c 69 61 73 20 4c SSINFO;..alias L
6b20: 50 57 53 41 4e 53 43 4c 41 53 53 49 4e 46 4f 57 PWSANSCLASSINFOW
6b30: 20 4c 50 57 53 41 4e 53 43 4c 41 53 53 49 4e 46 LPWSANSCLASSINF
6b40: 4f 3b 0a 7d 20 65 6c 73 65 20 7b 0a 09 61 6c 69 O;.} else {..ali
6b50: 61 73 20 57 53 41 4e 53 43 4c 41 53 53 49 4e 46 as WSANSCLASSINF
6b60: 4f 41 20 57 53 41 4e 53 43 4c 41 53 53 49 4e 46 OA WSANSCLASSINF
6b70: 4f 3b 0a 09 61 6c 69 61 73 20 50 57 53 41 4e 53 O;..alias PWSANS
6b80: 43 4c 41 53 53 49 4e 46 4f 41 20 50 57 53 41 4e CLASSINFOA PWSAN
6b90: 53 43 4c 41 53 53 49 4e 46 4f 3b 0a 09 61 6c 69 SCLASSINFO;..ali
6ba0: 61 73 20 4c 50 57 53 41 4e 53 43 4c 41 53 53 49 as LPWSANSCLASSI
6bb0: 4e 46 4f 41 20 4c 50 57 53 41 4e 53 43 4c 41 53 NFOA LPWSANSCLAS
6bc0: 53 49 4e 46 4f 3b 0a 7d 0a 0a 73 74 72 75 63 74 SINFO;.}..struct
6bd0: 20 57 53 41 53 45 52 56 49 43 45 43 4c 41 53 53 WSASERVICECLASS
6be0: 49 4e 46 4f 41 0a 7b 0a 09 4c 50 47 55 49 44 20 INFOA.{..LPGUID
6bf0: 20 20 20 20 20 20 20 20 20 20 20 6c 70 53 65 72 lpSer
6c00: 76 69 63 65 43 6c 61 73 73 49 64 3b 0a 09 4c 50 viceClassId;..LP
6c10: 53 54 52 20 20 20 20 20 20 20 20 20 20 20 20 20 STR
6c20: 6c 70 73 7a 53 65 72 76 69 63 65 43 6c 61 73 73 lpszServiceClass
6c30: 4e 61 6d 65 3b 0a 09 44 57 4f 52 44 20 20 20 20 Name;..DWORD
6c40: 20 20 20 20 20 20 20 20 20 64 77 43 6f 75 6e 74 dwCount
6c50: 3b 0a 09 4c 50 57 53 41 4e 53 43 4c 41 53 53 49 ;..LPWSANSCLASSI
6c60: 4e 46 4f 41 20 6c 70 43 6c 61 73 73 49 6e 66 6f NFOA lpClassInfo
6c70: 73 3b 0a 7d 0a 0a 61 6c 69 61 73 20 57 53 41 53 s;.}..alias WSAS
6c80: 45 52 56 49 43 45 43 4c 41 53 53 49 4e 46 4f 41 ERVICECLASSINFOA
6c90: 2a 20 50 57 53 41 53 45 52 56 49 43 45 43 4c 41 * PWSASERVICECLA
6ca0: 53 53 49 4e 46 4f 41 2c 20 4c 50 57 53 41 53 45 SSINFOA, LPWSASE
6cb0: 52 56 49 43 45 43 4c 41 53 53 49 4e 46 4f 41 3b RVICECLASSINFOA;
6cc0: 0a 0a 73 74 72 75 63 74 20 57 53 41 53 45 52 56 ..struct WSASERV
6cd0: 49 43 45 43 4c 41 53 53 49 4e 46 4f 57 0a 7b 0a ICECLASSINFOW.{.
6ce0: 09 4c 50 47 55 49 44 20 20 20 20 20 20 20 20 20 .LPGUID
6cf0: 20 20 20 6c 70 53 65 72 76 69 63 65 43 6c 61 73 lpServiceClas
6d00: 73 49 64 3b 0a 09 4c 50 57 53 54 52 20 20 20 20 sId;..LPWSTR
6d10: 20 20 20 20 20 20 20 20 6c 70 73 7a 53 65 72 76 lpszServ
6d20: 69 63 65 43 6c 61 73 73 4e 61 6d 65 3b 0a 09 44 iceClassName;..D
6d30: 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 20 WORD
6d40: 20 64 77 43 6f 75 6e 74 3b 0a 09 4c 50 57 53 41 dwCount;..LPWSA
6d50: 4e 53 43 4c 41 53 53 49 4e 46 4f 57 20 6c 70 43 NSCLASSINFOW lpC
6d60: 6c 61 73 73 49 6e 66 6f 73 3b 0a 7d 0a 0a 61 6c lassInfos;.}..al
6d70: 69 61 73 20 57 53 41 53 45 52 56 49 43 45 43 4c ias WSASERVICECL
6d80: 41 53 53 49 4e 46 4f 57 2a 20 50 57 53 41 53 45 ASSINFOW* PWSASE
6d90: 52 56 49 43 45 43 4c 41 53 53 49 4e 46 4f 57 2c RVICECLASSINFOW,
6da0: 20 4c 50 57 53 41 53 45 52 56 49 43 45 43 4c 41 LPWSASERVICECLA
6db0: 53 53 49 4e 46 4f 57 3b 0a 0a 76 65 72 73 69 6f SSINFOW;..versio
6dc0: 6e 28 55 6e 69 63 6f 64 65 29 20 7b 0a 09 61 6c n(Unicode) {..al
6dd0: 69 61 73 20 57 53 41 53 45 52 56 49 43 45 43 4c ias WSASERVICECL
6de0: 41 53 53 49 4e 46 4f 57 20 57 53 41 53 45 52 56 ASSINFOW WSASERV
6df0: 49 43 45 43 4c 41 53 53 49 4e 46 4f 3b 0a 09 61 ICECLASSINFO;..a
6e00: 6c 69 61 73 20 50 57 53 41 53 45 52 56 49 43 45 lias PWSASERVICE
6e10: 43 4c 41 53 53 49 4e 46 4f 57 20 50 57 53 41 53 CLASSINFOW PWSAS
6e20: 45 52 56 49 43 45 43 4c 41 53 53 49 4e 46 4f 3b ERVICECLASSINFO;
6e30: 0a 09 61 6c 69 61 73 20 4c 50 57 53 41 53 45 52 ..alias LPWSASER
6e40: 56 49 43 45 43 4c 41 53 53 49 4e 46 4f 57 20 4c VICECLASSINFOW L
6e50: 50 57 53 41 53 45 52 56 49 43 45 43 4c 41 53 53 PWSASERVICECLASS
6e60: 49 4e 46 4f 3b 0a 7d 20 65 6c 73 65 20 7b 0a 09 INFO;.} else {..
6e70: 61 6c 69 61 73 20 57 53 41 53 45 52 56 49 43 45 alias WSASERVICE
6e80: 43 4c 41 53 53 49 4e 46 4f 41 20 57 53 41 53 45 CLASSINFOA WSASE
6e90: 52 56 49 43 45 43 4c 41 53 53 49 4e 46 4f 3b 0a RVICECLASSINFO;.
6ea0: 09 61 6c 69 61 73 20 50 57 53 41 53 45 52 56 49 .alias PWSASERVI
6eb0: 43 45 43 4c 41 53 53 49 4e 46 4f 41 20 50 57 53 CECLASSINFOA PWS
6ec0: 41 53 45 52 56 49 43 45 43 4c 41 53 53 49 4e 46 ASERVICECLASSINF
6ed0: 4f 3b 0a 09 61 6c 69 61 73 20 4c 50 57 53 41 53 O;..alias LPWSAS
6ee0: 45 52 56 49 43 45 43 4c 41 53 53 49 4e 46 4f 41 ERVICECLASSINFOA
6ef0: 20 4c 50 57 53 41 53 45 52 56 49 43 45 43 4c 41 LPWSASERVICECLA
6f00: 53 53 49 4e 46 4f 3b 0a 7d 0a 0a 73 74 72 75 63 SSINFO;.}..struc
6f10: 74 20 57 53 41 4e 41 4d 45 53 50 41 43 45 5f 49 t WSANAMESPACE_I
6f20: 4e 46 4f 41 20 7b 0a 09 47 55 49 44 20 20 4e 53 NFOA {..GUID NS
6f30: 50 72 6f 76 69 64 65 72 49 64 3b 0a 09 44 57 4f ProviderId;..DWO
6f40: 52 44 20 64 77 4e 61 6d 65 53 70 61 63 65 3b 0a RD dwNameSpace;.
6f50: 09 42 4f 4f 4c 20 20 66 41 63 74 69 76 65 3b 0a .BOOL fActive;.
6f60: 09 44 57 4f 52 44 20 64 77 56 65 72 73 69 6f 6e .DWORD dwVersion
6f70: 3b 0a 09 4c 50 53 54 52 20 6c 70 73 7a 49 64 65 ;..LPSTR lpszIde
6f80: 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a 61 6c 69 61 ntifier;.}..alia
6f90: 73 20 57 53 41 4e 41 4d 45 53 50 41 43 45 5f 49 s WSANAMESPACE_I
6fa0: 4e 46 4f 41 2a 20 50 57 53 41 4e 41 4d 45 53 50 NFOA* PWSANAMESP
6fb0: 41 43 45 5f 49 4e 46 4f 41 2c 20 4c 50 57 53 41 ACE_INFOA, LPWSA
6fc0: 4e 41 4d 45 53 50 41 43 45 5f 49 4e 46 4f 41 3b NAMESPACE_INFOA;
6fd0: 0a 0a 73 74 72 75 63 74 20 57 53 41 4e 41 4d 45 ..struct WSANAME
6fe0: 53 50 41 43 45 5f 49 4e 46 4f 57 20 7b 0a 09 47 SPACE_INFOW {..G
6ff0: 55 49 44 20 20 20 4e 53 50 72 6f 76 69 64 65 72 UID NSProvider
7000: 49 64 3b 0a 09 44 57 4f 52 44 20 20 64 77 4e 61 Id;..DWORD dwNa
7010: 6d 65 53 70 61 63 65 3b 0a 09 42 4f 4f 4c 20 20 meSpace;..BOOL
7020: 20 66 41 63 74 69 76 65 3b 0a 09 44 57 4f 52 44 fActive;..DWORD
7030: 20 20 64 77 56 65 72 73 69 6f 6e 3b 0a 09 4c 50 dwVersion;..LP
7040: 57 53 54 52 20 6c 70 73 7a 49 64 65 6e 74 69 66 WSTR lpszIdentif
7050: 69 65 72 3b 0a 7d 0a 0a 61 6c 69 61 73 20 57 53 ier;.}..alias WS
7060: 41 4e 41 4d 45 53 50 41 43 45 5f 49 4e 46 4f 57 ANAMESPACE_INFOW
7070: 2a 20 50 57 53 41 4e 41 4d 45 53 50 41 43 45 5f * PWSANAMESPACE_
7080: 49 4e 46 4f 57 2c 20 4c 50 57 53 41 4e 41 4d 45 INFOW, LPWSANAME
7090: 53 50 41 43 45 5f 49 4e 46 4f 57 3b 0a 0a 76 65 SPACE_INFOW;..ve
70a0: 72 73 69 6f 6e 28 55 6e 69 63 6f 64 65 29 20 7b rsion(Unicode) {
70b0: 0a 09 61 6c 69 61 73 20 57 53 41 4e 41 4d 45 53 ..alias WSANAMES
70c0: 50 41 43 45 5f 49 4e 46 4f 57 20 57 53 41 4e 41 PACE_INFOW WSANA
70d0: 4d 45 53 50 41 43 45 5f 49 4e 46 4f 3b 0a 09 61 MESPACE_INFO;..a
70e0: 6c 69 61 73 20 50 57 53 41 4e 41 4d 45 53 50 41 lias PWSANAMESPA
70f0: 43 45 5f 49 4e 46 4f 57 20 50 57 53 41 4e 41 4d CE_INFOW PWSANAM
7100: 45 53 50 41 43 45 5f 49 4e 46 4f 3b 0a 09 61 6c ESPACE_INFO;..al
7110: 69 61 73 20 4c 50 57 53 41 4e 41 4d 45 53 50 41 ias LPWSANAMESPA
7120: 43 45 5f 49 4e 46 4f 57 20 4c 50 57 53 41 4e 41 CE_INFOW LPWSANA
7130: 4d 45 53 50 41 43 45 5f 49 4e 46 4f 3b 0a 7d 20 MESPACE_INFO;.}
7140: 65 6c 73 65 20 7b 0a 09 61 6c 69 61 73 20 57 53 else {..alias WS
7150: 41 4e 41 4d 45 53 50 41 43 45 5f 49 4e 46 4f 41 ANAMESPACE_INFOA
7160: 20 57 53 41 4e 41 4d 45 53 50 41 43 45 5f 49 4e WSANAMESPACE_IN
7170: 46 4f 3b 0a 09 61 6c 69 61 73 20 50 57 53 41 4e FO;..alias PWSAN
7180: 41 4d 45 53 50 41 43 45 5f 49 4e 46 4f 41 20 50 AMESPACE_INFOA P
7190: 57 53 41 4e 41 4d 45 53 50 41 43 45 5f 49 4e 46 WSANAMESPACE_INF
71a0: 4f 3b 0a 09 61 6c 69 61 73 20 4c 50 57 53 41 4e O;..alias LPWSAN
71b0: 41 4d 45 53 50 41 43 45 5f 49 4e 46 4f 41 20 4c AMESPACE_INFOA L
71c0: 50 57 53 41 4e 41 4d 45 53 50 41 43 45 5f 49 4e PWSANAMESPACE_IN
71d0: 46 4f 3b 0a 7d 0a 0a 73 74 72 75 63 74 20 57 53 FO;.}..struct WS
71e0: 41 50 52 4f 54 4f 43 4f 4c 43 48 41 49 4e 20 7b APROTOCOLCHAIN {
71f0: 0a 09 69 6e 74 20 20 20 20 20 20 20 20 20 20 20 ..int
7200: 20 20 20 20 20 20 20 20 20 20 20 20 43 68 61 69 Chai
7210: 6e 4c 65 6e 3b 0a 09 44 57 4f 52 44 5b 4d 41 58 nLen;..DWORD[MAX
7220: 5f 50 52 4f 54 4f 43 4f 4c 5f 43 48 41 49 4e 5d _PROTOCOL_CHAIN]
7230: 20 43 68 61 69 6e 45 6e 74 72 69 65 73 3b 0a 7d ChainEntries;.}
7240: 0a 0a 61 6c 69 61 73 20 57 53 41 50 52 4f 54 4f ..alias WSAPROTO
7250: 43 4f 4c 43 48 41 49 4e 2a 20 4c 50 57 53 41 50 COLCHAIN* LPWSAP
7260: 52 4f 54 4f 43 4f 4c 43 48 41 49 4e 3b 0a 0a 63 ROTOCOLCHAIN;..c
7270: 6f 6e 73 74 20 57 53 41 50 52 4f 54 4f 43 4f 4c onst WSAPROTOCOL
7280: 5f 4c 45 4e 20 3d 20 32 35 35 3b 0a 0a 73 74 72 _LEN = 255;..str
7290: 75 63 74 20 57 53 41 50 52 4f 54 4f 43 4f 4c 5f uct WSAPROTOCOL_
72a0: 49 4e 46 4f 41 20 7b 0a 09 44 57 4f 52 44 20 64 INFOA {..DWORD d
72b0: 77 53 65 72 76 69 63 65 46 6c 61 67 73 31 3b 0a wServiceFlags1;.
72c0: 09 44 57 4f 52 44 20 64 77 53 65 72 76 69 63 65 .DWORD dwService
72d0: 46 6c 61 67 73 32 3b 0a 09 44 57 4f 52 44 20 64 Flags2;..DWORD d
72e0: 77 53 65 72 76 69 63 65 46 6c 61 67 73 33 3b 0a wServiceFlags3;.
72f0: 09 44 57 4f 52 44 20 64 77 53 65 72 76 69 63 65 .DWORD dwService
7300: 46 6c 61 67 73 34 3b 0a 09 44 57 4f 52 44 20 64 Flags4;..DWORD d
7310: 77 50 72 6f 76 69 64 65 72 46 6c 61 67 73 3b 0a wProviderFlags;.
7320: 09 47 55 49 44 20 50 72 6f 76 69 64 65 72 49 64 .GUID ProviderId
7330: 3b 0a 09 44 57 4f 52 44 20 64 77 43 61 74 61 6c ;..DWORD dwCatal
7340: 6f 67 45 6e 74 72 79 49 64 3b 0a 09 57 53 41 50 ogEntryId;..WSAP
7350: 52 4f 54 4f 43 4f 4c 43 48 41 49 4e 20 50 72 6f ROTOCOLCHAIN Pro
7360: 74 6f 63 6f 6c 43 68 61 69 6e 3b 0a 09 69 6e 74 tocolChain;..int
7370: 20 69 56 65 72 73 69 6f 6e 3b 0a 09 69 6e 74 20 iVersion;..int
7380: 69 41 64 64 72 65 73 73 46 61 6d 69 6c 79 3b 0a iAddressFamily;.
7390: 09 69 6e 74 20 69 4d 61 78 53 6f 63 6b 41 64 64 .int iMaxSockAdd
73a0: 72 3b 0a 09 69 6e 74 20 69 4d 69 6e 53 6f 63 6b r;..int iMinSock
73b0: 41 64 64 72 3b 0a 09 69 6e 74 20 69 53 6f 63 6b Addr;..int iSock
73c0: 65 74 54 79 70 65 3b 0a 09 69 6e 74 20 69 50 72 etType;..int iPr
73d0: 6f 74 6f 63 6f 6c 3b 0a 09 69 6e 74 20 69 50 72 otocol;..int iPr
73e0: 6f 74 6f 63 6f 6c 4d 61 78 4f 66 66 73 65 74 3b otocolMaxOffset;
73f0: 0a 09 69 6e 74 20 69 4e 65 74 77 6f 72 6b 42 79 ..int iNetworkBy
7400: 74 65 4f 72 64 65 72 3b 0a 09 69 6e 74 20 69 53 teOrder;..int iS
7410: 65 63 75 72 69 74 79 53 63 68 65 6d 65 3b 0a 09 ecurityScheme;..
7420: 44 57 4f 52 44 20 64 77 4d 65 73 73 61 67 65 53 DWORD dwMessageS
7430: 69 7a 65 3b 0a 09 44 57 4f 52 44 20 64 77 50 72 ize;..DWORD dwPr
7440: 6f 76 69 64 65 72 52 65 73 65 72 76 65 64 3b 0a oviderReserved;.
7450: 09 43 48 41 52 5b 57 53 41 50 52 4f 54 4f 43 4f .CHAR[WSAPROTOCO
7460: 4c 5f 4c 45 4e 2b 31 5d 20 73 7a 50 72 6f 74 6f L_LEN+1] szProto
7470: 63 6f 6c 3b 0a 7d 0a 0a 61 6c 69 61 73 20 57 53 col;.}..alias WS
7480: 41 50 52 4f 54 4f 43 4f 4c 5f 49 4e 46 4f 41 2a APROTOCOL_INFOA*
7490: 20 4c 50 57 53 41 50 52 4f 54 4f 43 4f 4c 5f 49 LPWSAPROTOCOL_I
74a0: 4e 46 4f 41 3b 0a 0a 73 74 72 75 63 74 20 57 53 NFOA;..struct WS
74b0: 41 50 52 4f 54 4f 43 4f 4c 5f 49 4e 46 4f 57 20 APROTOCOL_INFOW
74c0: 7b 0a 09 44 57 4f 52 44 20 64 77 53 65 72 76 69 {..DWORD dwServi
74d0: 63 65 46 6c 61 67 73 31 3b 0a 09 44 57 4f 52 44 ceFlags1;..DWORD
74e0: 20 64 77 53 65 72 76 69 63 65 46 6c 61 67 73 32 dwServiceFlags2
74f0: 3b 0a 09 44 57 4f 52 44 20 64 77 53 65 72 76 69 ;..DWORD dwServi
7500: 63 65 46 6c 61 67 73 33 3b 0a 09 44 57 4f 52 44 ceFlags3;..DWORD
7510: 20 64 77 53 65 72 76 69 63 65 46 6c 61 67 73 34 dwServiceFlags4
7520: 3b 0a 09 44 57 4f 52 44 20 64 77 50 72 6f 76 69 ;..DWORD dwProvi
7530: 64 65 72 46 6c 61 67 73 3b 0a 09 47 55 49 44 20 derFlags;..GUID
7540: 50 72 6f 76 69 64 65 72 49 64 3b 0a 09 44 57 4f ProviderId;..DWO
7550: 52 44 20 64 77 43 61 74 61 6c 6f 67 45 6e 74 72 RD dwCatalogEntr
7560: 79 49 64 3b 0a 09 57 53 41 50 52 4f 54 4f 43 4f yId;..WSAPROTOCO
7570: 4c 43 48 41 49 4e 20 50 72 6f 74 6f 63 6f 6c 43 LCHAIN ProtocolC
7580: 68 61 69 6e 3b 0a 09 69 6e 74 20 69 56 65 72 73 hain;..int iVers
7590: 69 6f 6e 3b 0a 09 69 6e 74 20 69 41 64 64 72 65 ion;..int iAddre
75a0: 73 73 46 61 6d 69 6c 79 3b 0a 09 69 6e 74 20 69 ssFamily;..int i
75b0: 4d 61 78 53 6f 63 6b 41 64 64 72 3b 0a 09 69 6e MaxSockAddr;..in
75c0: 74 20 69 4d 69 6e 53 6f 63 6b 41 64 64 72 3b 0a t iMinSockAddr;.
75d0: 09 69 6e 74 20 69 53 6f 63 6b 65 74 54 79 70 65 .int iSocketType
75e0: 3b 0a 09 69 6e 74 20 69 50 72 6f 74 6f 63 6f 6c ;..int iProtocol
75f0: 3b 0a 09 69 6e 74 20 69 50 72 6f 74 6f 63 6f 6c ;..int iProtocol
7600: 4d 61 78 4f 66 66 73 65 74 3b 0a 09 69 6e 74 20 MaxOffset;..int
7610: 69 4e 65 74 77 6f 72 6b 42 79 74 65 4f 72 64 65 iNetworkByteOrde
7620: 72 3b 0a 09 69 6e 74 20 69 53 65 63 75 72 69 74 r;..int iSecurit
7630: 79 53 63 68 65 6d 65 3b 0a 09 44 57 4f 52 44 20 yScheme;..DWORD
7640: 64 77 4d 65 73 73 61 67 65 53 69 7a 65 3b 0a 09 dwMessageSize;..
7650: 44 57 4f 52 44 20 64 77 50 72 6f 76 69 64 65 72 DWORD dwProvider
7660: 52 65 73 65 72 76 65 64 3b 0a 09 57 43 48 41 52 Reserved;..WCHAR
7670: 5b 57 53 41 50 52 4f 54 4f 43 4f 4c 5f 4c 45 4e [WSAPROTOCOL_LEN
7680: 2b 31 5d 20 73 7a 50 72 6f 74 6f 63 6f 6c 3b 0a +1] szProtocol;.
7690: 7d 0a 0a 61 6c 69 61 73 20 57 53 41 50 52 4f 54 }..alias WSAPROT
76a0: 4f 43 4f 4c 5f 49 4e 46 4f 57 2a 20 4c 50 57 53 OCOL_INFOW* LPWS
76b0: 41 50 52 4f 54 4f 43 4f 4c 5f 49 4e 46 4f 57 3b APROTOCOL_INFOW;
76c0: 0a 0a 2f 2f 20 54 4f 44 4f 3a 20 42 65 6c 6f 77 ..// TODO: Below
76d0: 20 66 70 74 72 20 77 61 73 20 64 65 66 69 6e 65 fptr was define
76e0: 64 20 61 73 20 22 43 41 4c 4c 42 41 43 4b 22 20 d as "CALLBACK"
76f0: 66 6f 72 20 6c 69 6e 6b 61 67 65 3b 20 69 73 20 for linkage; is
7700: 74 68 69 73 20 72 69 67 68 74 3f 0a 65 78 74 65 this right?.exte
7710: 72 6e 28 43 29 20 7b 0a 09 61 6c 69 61 73 20 69 rn(C) {..alias i
7720: 6e 74 20 66 75 6e 63 74 69 6f 6e 28 4c 50 57 53 nt function(LPWS
7730: 41 42 55 46 2c 20 4c 50 57 53 41 42 55 46 2c 20 ABUF, LPWSABUF,
7740: 4c 50 51 4f 53 2c 20 4c 50 51 4f 53 2c 20 4c 50 LPQOS, LPQOS, LP
7750: 57 53 41 42 55 46 2c 20 4c 50 57 53 41 42 55 46 WSABUF, LPWSABUF
7760: 2c 20 47 52 4f 55 50 20 2a 2c 20 44 57 4f 52 44 , GROUP *, DWORD
7770: 29 20 4c 50 43 4f 4e 44 49 54 49 4f 4e 50 52 4f ) LPCONDITIONPRO
7780: 43 3b 0a 7d 0a 0a 65 78 74 65 72 6e 28 57 69 6e C;.}..extern(Win
7790: 64 6f 77 73 29 20 7b 0a 09 61 6c 69 61 73 20 76 dows) {..alias v
77a0: 6f 69 64 20 66 75 6e 63 74 69 6f 6e 28 44 57 4f oid function(DWO
77b0: 52 44 2c 20 44 57 4f 52 44 2c 20 4c 50 57 53 41 RD, DWORD, LPWSA
77c0: 4f 56 45 52 4c 41 50 50 45 44 2c 20 44 57 4f 52 OVERLAPPED, DWOR
77d0: 44 29 20 4c 50 57 53 41 4f 56 45 52 4c 41 50 50 D) LPWSAOVERLAPP
77e0: 45 44 5f 43 4f 4d 50 4c 45 54 49 4f 4e 5f 52 4f ED_COMPLETION_RO
77f0: 55 54 49 4e 45 3b 0a 7d 0a 0a 76 65 72 73 69 6f UTINE;.}..versio
7800: 6e 28 55 6e 69 63 6f 64 65 29 20 7b 0a 09 61 6c n(Unicode) {..al
7810: 69 61 73 20 57 53 41 50 52 4f 54 4f 43 4f 4c 5f ias WSAPROTOCOL_
7820: 49 4e 46 4f 57 20 57 53 41 50 52 4f 54 4f 43 4f INFOW WSAPROTOCO
7830: 4c 5f 49 4e 46 4f 3b 0a 09 61 6c 69 61 73 20 4c L_INFO;..alias L
7840: 50 57 53 41 50 52 4f 54 4f 43 4f 4c 5f 49 4e 46 PWSAPROTOCOL_INF
7850: 4f 57 20 4c 50 57 53 41 50 52 4f 54 4f 43 4f 4c OW LPWSAPROTOCOL
7860: 5f 49 4e 46 4f 3b 0a 7d 20 65 6c 73 65 20 7b 0a _INFO;.} else {.
7870: 09 61 6c 69 61 73 20 57 53 41 50 52 4f 54 4f 43 .alias WSAPROTOC
7880: 4f 4c 5f 49 4e 46 4f 41 20 57 53 41 50 52 4f 54 OL_INFOA WSAPROT
7890: 4f 43 4f 4c 5f 49 4e 46 4f 3b 0a 09 61 6c 69 61 OCOL_INFO;..alia
78a0: 73 20 4c 50 57 53 41 50 52 4f 54 4f 43 4f 4c 5f s LPWSAPROTOCOL_
78b0: 49 4e 46 4f 41 20 4c 50 57 53 41 50 52 4f 54 4f INFOA LPWSAPROTO
78c0: 43 4f 4c 5f 49 4e 46 4f 3b 0a 7d 0a 0a 2f 2a 20 COL_INFO;.}../*
78d0: 4e 65 65 64 65 64 20 66 6f 72 20 58 50 20 26 20 Needed for XP &
78e0: 2e 4e 45 54 20 53 65 72 76 65 72 20 66 75 6e 63 .NET Server func
78f0: 74 69 6f 6e 20 57 53 41 4e 53 50 49 6f 63 74 6c tion WSANSPIoctl
7900: 2e 20 20 2a 2f 0a 65 6e 75 6d 20 57 53 41 43 4f . */.enum WSACO
7910: 4d 50 4c 45 54 49 4f 4e 54 59 50 45 20 7b 0a 20 MPLETIONTYPE {.
7920: 20 20 20 4e 53 50 5f 4e 4f 54 49 46 59 5f 49 4d NSP_NOTIFY_IM
7930: 4d 45 44 49 41 54 45 4c 59 20 3d 20 30 2c 0a 20 MEDIATELY = 0,.
7940: 20 20 20 4e 53 50 5f 4e 4f 54 49 46 59 5f 48 57 NSP_NOTIFY_HW
7950: 4e 44 2c 0a 20 20 20 20 4e 53 50 5f 4e 4f 54 49 ND,. NSP_NOTI
7960: 46 59 5f 45 56 45 4e 54 2c 0a 20 20 20 20 4e 53 FY_EVENT,. NS
7970: 50 5f 4e 4f 54 49 46 59 5f 50 4f 52 54 2c 0a 20 P_NOTIFY_PORT,.
7980: 20 20 20 4e 53 50 5f 4e 4f 54 49 46 59 5f 41 50 NSP_NOTIFY_AP
7990: 43 0a 7d 0a 0a 61 6c 69 61 73 20 57 53 41 43 4f C.}..alias WSACO
79a0: 4d 50 4c 45 54 49 4f 4e 54 59 50 45 2a 20 50 57 MPLETIONTYPE* PW
79b0: 53 41 43 4f 4d 50 4c 45 54 49 4f 4e 54 59 50 45 SACOMPLETIONTYPE
79c0: 2c 20 4c 50 57 53 41 43 4f 4d 50 4c 45 54 49 4f , LPWSACOMPLETIO
79d0: 4e 54 59 50 45 3b 0a 0a 73 74 72 75 63 74 20 57 NTYPE;..struct W
79e0: 53 41 43 4f 4d 50 4c 45 54 49 4f 4e 20 7b 0a 20 SACOMPLETION {.
79f0: 20 20 20 57 53 41 43 4f 4d 50 4c 45 54 49 4f 4e WSACOMPLETION
7a00: 54 59 50 45 20 54 79 70 65 3b 0a 20 20 20 20 75 TYPE Type;. u
7a10: 6e 69 6f 6e 20 57 53 41 43 4f 4d 50 4c 45 54 49 nion WSACOMPLETI
7a20: 4f 4e 5f 50 41 52 41 4d 45 54 45 52 53 20 7b 0a ON_PARAMETERS {.
7a30: 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 57 struct W
7a40: 53 41 43 4f 4d 50 4c 45 54 49 4f 4e 5f 57 49 4e SACOMPLETION_WIN
7a50: 44 4f 57 4d 45 53 53 41 47 45 20 7b 0a 20 20 20 DOWMESSAGE {.
7a60: 20 20 20 20 20 20 20 20 20 48 57 4e 44 20 68 57 HWND hW
7a70: 6e 64 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 nd;.
7a80: 55 49 4e 54 20 75 4d 73 67 3b 0a 20 20 20 20 20 UINT uMsg;.
7a90: 20 20 20 20 20 20 20 57 50 41 52 41 4d 20 63 6f WPARAM co
7aa0: 6e 74 65 78 74 3b 0a 20 20 20 20 20 20 20 20 7d ntext;. }
7ab0: 0a 09 09 57 53 41 43 4f 4d 50 4c 45 54 49 4f 4e ...WSACOMPLETION
7ac0: 5f 57 49 4e 44 4f 57 4d 45 53 53 41 47 45 20 57 _WINDOWMESSAGE W
7ad0: 69 6e 64 6f 77 4d 65 73 73 61 67 65 3b 0a 20 20 indowMessage;.
7ae0: 20 20 20 20 20 20 73 74 72 75 63 74 20 57 53 41 struct WSA
7af0: 43 4f 4d 50 4c 45 54 49 4f 4e 5f 45 56 45 4e 54 COMPLETION_EVENT
7b00: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 4c {. L
7b10: 50 57 53 41 4f 56 45 52 4c 41 50 50 45 44 20 6c PWSAOVERLAPPED l
7b20: 70 4f 76 65 72 6c 61 70 70 65 64 3b 0a 20 20 20 pOverlapped;.
7b30: 20 20 20 20 20 7d 0a 09 09 57 53 41 43 4f 4d 50 }...WSACOMP
7b40: 4c 45 54 49 4f 4e 5f 45 56 45 4e 54 20 45 76 65 LETION_EVENT Eve
7b50: 6e 74 3b 0a 20 20 20 20 20 20 20 20 73 74 72 75 nt;. stru
7b60: 63 74 20 57 53 41 43 4f 4d 50 4c 45 54 49 4f 4e ct WSACOMPLETION
7b70: 5f 41 50 43 20 7b 0a 20 20 20 20 20 20 20 20 20 _APC {.
7b80: 20 20 20 4c 50 57 53 41 4f 56 45 52 4c 41 50 50 LPWSAOVERLAPP
7b90: 45 44 20 6c 70 4f 76 65 72 6c 61 70 70 65 64 3b ED lpOverlapped;
7ba0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 4c 50 57 . LPW
7bb0: 53 41 4f 56 45 52 4c 41 50 50 45 44 5f 43 4f 4d SAOVERLAPPED_COM
7bc0: 50 4c 45 54 49 4f 4e 5f 52 4f 55 54 49 4e 45 20 PLETION_ROUTINE
7bd0: 6c 70 66 6e 43 6f 6d 70 6c 65 74 69 6f 6e 50 72 lpfnCompletionPr
7be0: 6f 63 3b 0a 20 20 20 20 20 20 20 20 7d 0a 09 09 oc;. }...
7bf0: 57 53 41 43 4f 4d 50 4c 45 54 49 4f 4e 5f 41 50 WSACOMPLETION_AP
7c00: 43 20 41 70 63 3b 0a 20 20 20 20 20 20 20 20 73 C Apc;. s
7c10: 74 72 75 63 74 20 57 53 41 43 4f 4d 50 4c 45 54 truct WSACOMPLET
7c20: 49 4f 4e 5f 50 4f 52 54 20 7b 0a 20 20 20 20 20 ION_PORT {.
7c30: 20 20 20 20 20 20 20 4c 50 57 53 41 4f 56 45 52 LPWSAOVER
7c40: 4c 41 50 50 45 44 20 6c 70 4f 76 65 72 6c 61 70 LAPPED lpOverlap
7c50: 70 65 64 3b 0a 20 20 20 20 20 20 20 20 20 20 20 ped;.
7c60: 20 48 41 4e 44 4c 45 20 68 50 6f 72 74 3b 0a 20 HANDLE hPort;.
7c70: 20 20 20 20 20 20 20 20 20 20 20 55 4c 4f 4e 47 ULONG
7c80: 5f 50 54 52 20 4b 65 79 3b 0a 20 20 20 20 20 20 _PTR Key;.
7c90: 20 20 7d 0a 09 09 57 53 41 43 4f 4d 50 4c 45 54 }...WSACOMPLET
7ca0: 49 4f 4e 5f 50 4f 52 54 20 50 6f 72 74 3b 0a 20 ION_PORT Port;.
7cb0: 20 20 20 7d 0a 09 57 53 41 43 4f 4d 50 4c 45 54 }..WSACOMPLET
7cc0: 49 4f 4e 5f 50 41 52 41 4d 45 54 45 52 53 20 50 ION_PARAMETERS P
7cd0: 61 72 61 6d 65 74 65 72 73 3b 0a 7d 0a 0a 61 6c arameters;.}..al
7ce0: 69 61 73 20 57 53 41 43 4f 4d 50 4c 45 54 49 4f ias WSACOMPLETIO
7cf0: 4e 2a 20 50 57 53 41 43 4f 4d 50 4c 45 54 49 4f N* PWSACOMPLETIO
7d00: 4e 2c 20 4c 50 57 53 41 43 4f 4d 50 4c 45 54 49 N, LPWSACOMPLETI
7d10: 4f 4e 3b 0a 0a 63 6f 6e 73 74 20 69 6e 74 0a 09 ON;..const int..
7d20: 50 46 4c 5f 4d 55 4c 54 49 50 4c 45 5f 50 52 4f PFL_MULTIPLE_PRO
7d30: 54 4f 5f 45 4e 54 52 49 45 53 20 20 3d 20 30 78 TO_ENTRIES = 0x
7d40: 30 30 30 30 30 30 30 31 2c 0a 09 50 46 4c 5f 52 00000001,..PFL_R
7d50: 45 43 4f 4d 4d 45 4e 44 45 44 5f 50 52 4f 54 4f ECOMMENDED_PROTO
7d60: 5f 45 4e 54 52 59 20 3d 20 30 78 30 30 30 30 30 _ENTRY = 0x00000
7d70: 30 30 32 2c 0a 09 50 46 4c 5f 48 49 44 44 45 4e 002,..PFL_HIDDEN
7d80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
7d90: 20 20 3d 20 30 78 30 30 30 30 30 30 30 34 2c 0a = 0x00000004,.
7da0: 09 50 46 4c 5f 4d 41 54 43 48 45 53 5f 50 52 4f .PFL_MATCHES_PRO
7db0: 54 4f 43 4f 4c 5f 5a 45 52 4f 20 20 20 3d 20 30 TOCOL_ZERO = 0
7dc0: 78 30 30 30 30 30 30 30 38 3b 0a 0a 63 6f 6e 73 x00000008;..cons
7dd0: 74 20 69 6e 74 0a 09 58 50 31 5f 43 4f 4e 4e 45 t int..XP1_CONNE
7de0: 43 54 49 4f 4e 4c 45 53 53 20 20 20 20 20 20 20 CTIONLESS
7df0: 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 31 = 0x00000001
7e00: 2c 0a 09 58 50 31 5f 47 55 41 52 41 4e 54 45 45 ,..XP1_GUARANTEE
7e10: 44 5f 44 45 4c 49 56 45 52 59 20 20 20 20 20 20 D_DELIVERY
7e20: 3d 20 30 78 30 30 30 30 30 30 30 32 2c 0a 09 58 = 0x00000002,..X
7e30: 50 31 5f 47 55 41 52 41 4e 54 45 45 44 5f 4f 52 P1_GUARANTEED_OR
7e40: 44 45 52 20 20 20 20 20 20 20 20 20 3d 20 30 78 DER = 0x
7e50: 30 30 30 30 30 30 30 34 2c 0a 09 58 50 31 5f 4d 00000004,..XP1_M
7e60: 45 53 53 41 47 45 5f 4f 52 49 45 4e 54 45 44 20 ESSAGE_ORIENTED
7e70: 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 = 0x0000
7e80: 30 30 30 38 2c 0a 09 58 50 31 5f 50 53 45 55 44 0008,..XP1_PSEUD
7e90: 4f 5f 53 54 52 45 41 4d 20 20 20 20 20 20 20 20 O_STREAM
7ea0: 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 31 30 = 0x00000010
7eb0: 2c 0a 09 58 50 31 5f 47 52 41 43 45 46 55 4c 5f ,..XP1_GRACEFUL_
7ec0: 43 4c 4f 53 45 20 20 20 20 20 20 20 20 20 20 20 CLOSE
7ed0: 3d 20 30 78 30 30 30 30 30 30 32 30 2c 0a 09 58 = 0x00000020,..X
7ee0: 50 31 5f 45 58 50 45 44 49 54 45 44 5f 44 41 54 P1_EXPEDITED_DAT
7ef0: 41 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 A = 0x
7f00: 30 30 30 30 30 30 34 30 2c 0a 09 58 50 31 5f 43 00000040,..XP1_C
7f10: 4f 4e 4e 45 43 54 5f 44 41 54 41 20 20 20 20 20 ONNECT_DATA
7f20: 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 = 0x0000
7f30: 30 30 38 30 2c 0a 09 58 50 31 5f 44 49 53 43 4f 0080,..XP1_DISCO
7f40: 4e 4e 45 43 54 5f 44 41 54 41 20 20 20 20 20 20 NNECT_DATA
7f50: 20 20 20 20 3d 20 30 78 30 30 30 30 30 31 30 30 = 0x00000100
7f60: 2c 0a 09 58 50 31 5f 53 55 50 50 4f 52 54 5f 42 ,..XP1_SUPPORT_B
7f70: 52 4f 41 44 43 41 53 54 20 20 20 20 20 20 20 20 ROADCAST
7f80: 3d 20 30 78 30 30 30 30 30 32 30 30 2c 0a 09 58 = 0x00000200,..X
7f90: 50 31 5f 53 55 50 50 4f 52 54 5f 4d 55 4c 54 49 P1_SUPPORT_MULTI
7fa0: 50 4f 49 4e 54 20 20 20 20 20 20 20 3d 20 30 78 POINT = 0x
7fb0: 30 30 30 30 30 34 30 30 2c 0a 09 58 50 31 5f 4d 00000400,..XP1_M
7fc0: 55 4c 54 49 50 4f 49 4e 54 5f 43 4f 4e 54 52 4f ULTIPOINT_CONTRO
7fd0: 4c 5f 50 4c 41 4e 45 20 3d 20 30 78 30 30 30 30 L_PLANE = 0x0000
7fe0: 30 38 30 30 2c 0a 09 58 50 31 5f 4d 55 4c 54 49 0800,..XP1_MULTI
7ff0: 50 4f 49 4e 54 5f 44 41 54 41 5f 50 4c 41 4e 45 POINT_DATA_PLANE
8000: 20 20 20 20 3d 20 30 78 30 30 30 30 31 30 30 30 = 0x00001000
8010: 2c 0a 09 58 50 31 5f 51 4f 53 5f 53 55 50 50 4f ,..XP1_QOS_SUPPO
8020: 52 54 45 44 20 20 20 20 20 20 20 20 20 20 20 20 RTED
8030: 3d 20 30 78 30 30 30 30 32 30 30 30 2c 0a 09 58 = 0x00002000,..X
8040: 50 31 5f 49 4e 54 45 52 52 55 50 54 20 20 20 20 P1_INTERRUPT
8050: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 = 0x
8060: 30 30 30 30 34 30 30 30 2c 0a 09 58 50 31 5f 55 00004000,..XP1_U
8070: 4e 49 5f 53 45 4e 44 20 20 20 20 20 20 20 20 20 NI_SEND
8080: 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 = 0x0000
8090: 38 30 30 30 2c 0a 09 58 50 31 5f 55 4e 49 5f 52 8000,..XP1_UNI_R
80a0: 45 43 56 20 20 20 20 20 20 20 20 20 20 20 20 20 ECV
80b0: 20 20 20 20 3d 20 30 78 30 30 30 31 30 30 30 30 = 0x00010000
80c0: 2c 0a 09 58 50 31 5f 49 46 53 5f 48 41 4e 44 4c ,..XP1_IFS_HANDL
80d0: 45 53 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ES
80e0: 3d 20 30 78 30 30 30 32 30 30 30 30 2c 0a 09 58 = 0x00020000,..X
80f0: 50 31 5f 50 41 52 54 49 41 4c 5f 4d 45 53 53 41 P1_PARTIAL_MESSA
8100: 47 45 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 GE = 0x
8110: 30 30 30 34 30 30 30 30 3b 0a 0a 65 6e 75 6d 20 00040000;..enum
8120: 3a 20 69 6e 74 20 7b 0a 09 42 49 47 45 4e 44 49 : int {..BIGENDI
8130: 41 4e 20 20 20 20 3d 20 30 78 30 30 30 30 2c 0a AN = 0x0000,.
8140: 09 4c 49 54 54 4c 45 45 4e 44 49 41 4e 20 3d 20 .LITTLEENDIAN =
8150: 30 78 30 30 30 31 0a 7d 0a 0a 63 6f 6e 73 74 20 0x0001.}..const
8160: 53 45 43 55 52 49 54 59 5f 50 52 4f 54 4f 43 4f SECURITY_PROTOCO
8170: 4c 5f 4e 4f 4e 45 20 3d 20 30 78 30 30 30 30 3b L_NONE = 0x0000;
8180: 0a 0a 63 6f 6e 73 74 20 4a 4c 5f 53 45 4e 44 45 ..const JL_SENDE
8190: 52 5f 4f 4e 4c 59 20 3d 20 30 78 30 31 3b 0a 63 R_ONLY = 0x01;.c
81a0: 6f 6e 73 74 20 4a 4c 5f 52 45 43 45 49 56 45 52 onst JL_RECEIVER
81b0: 5f 4f 4e 4c 59 20 3d 20 30 78 30 32 3b 0a 63 6f _ONLY = 0x02;.co
81c0: 6e 73 74 20 4a 4c 5f 42 4f 54 48 20 3d 20 30 78 nst JL_BOTH = 0x
81d0: 30 34 3b 0a 0a 63 6f 6e 73 74 20 57 53 41 5f 46 04;..const WSA_F
81e0: 4c 41 47 5f 4f 56 45 52 4c 41 50 50 45 44 20 3d LAG_OVERLAPPED =
81f0: 20 30 78 30 31 3b 0a 63 6f 6e 73 74 20 57 53 41 0x01;.const WSA
8200: 5f 46 4c 41 47 5f 4d 55 4c 54 49 50 4f 49 4e 54 _FLAG_MULTIPOINT
8210: 5f 43 5f 52 4f 4f 54 20 3d 20 30 78 30 32 3b 0a _C_ROOT = 0x02;.
8220: 63 6f 6e 73 74 20 57 53 41 5f 46 4c 41 47 5f 4d const WSA_FLAG_M
8230: 55 4c 54 49 50 4f 49 4e 54 5f 43 5f 4c 45 41 46 ULTIPOINT_C_LEAF
8240: 20 3d 20 30 78 30 34 3b 0a 63 6f 6e 73 74 20 57 = 0x04;.const W
8250: 53 41 5f 46 4c 41 47 5f 4d 55 4c 54 49 50 4f 49 SA_FLAG_MULTIPOI
8260: 4e 54 5f 44 5f 52 4f 4f 54 20 3d 20 30 78 30 38 NT_D_ROOT = 0x08
8270: 3b 0a 63 6f 6e 73 74 20 57 53 41 5f 46 4c 41 47 ;.const WSA_FLAG
8280: 5f 4d 55 4c 54 49 50 4f 49 4e 54 5f 44 5f 4c 45 _MULTIPOINT_D_LE
8290: 41 46 20 3d 20 30 78 31 30 3b 0a 0a 63 6f 6e 73 AF = 0x10;..cons
82a0: 74 20 69 6e 74 20 49 4f 43 5f 55 4e 49 58 20 3d t int IOC_UNIX =
82b0: 20 30 78 30 30 30 30 30 30 30 30 3b 0a 63 6f 6e 0x00000000;.con
82c0: 73 74 20 69 6e 74 20 49 4f 43 5f 57 53 32 20 3d st int IOC_WS2 =
82d0: 20 30 78 30 38 30 30 30 30 30 30 3b 0a 63 6f 6e 0x08000000;.con
82e0: 73 74 20 69 6e 74 20 49 4f 43 5f 50 52 4f 54 4f st int IOC_PROTO
82f0: 43 4f 4c 20 3d 20 30 78 31 30 30 30 30 30 30 30 COL = 0x10000000
8300: 3b 0a 63 6f 6e 73 74 20 69 6e 74 20 49 4f 43 5f ;.const int IOC_
8310: 56 45 4e 44 4f 52 20 3d 20 30 78 31 38 30 30 30 VENDOR = 0x18000
8320: 30 30 30 3b 0a 0a 74 65 6d 70 6c 61 74 65 20 5f 000;..template _
8330: 57 53 41 49 4f 28 69 6e 74 20 78 2c 20 69 6e 74 WSAIO(int x, int
8340: 20 79 29 20 7b 20 63 6f 6e 73 74 20 69 6e 74 20 y) { const int
8350: 5f 57 53 41 49 4f 20 3d 20 49 4f 43 5f 56 4f 49 _WSAIO = IOC_VOI
8360: 44 20 7c 20 78 20 7c 20 79 3b 20 7d 0a 74 65 6d D | x | y; }.tem
8370: 70 6c 61 74 65 20 5f 57 53 41 49 4f 52 28 69 6e plate _WSAIOR(in
8380: 74 20 78 2c 20 69 6e 74 20 79 29 20 7b 20 63 6f t x, int y) { co
8390: 6e 73 74 20 69 6e 74 20 5f 57 53 41 49 4f 52 20 nst int _WSAIOR
83a0: 3d 20 49 4f 43 5f 4f 55 54 20 7c 20 78 20 7c 20 = IOC_OUT | x |
83b0: 79 3b 20 7d 0a 74 65 6d 70 6c 61 74 65 20 5f 57 y; }.template _W
83c0: 53 41 49 4f 57 28 69 6e 74 20 78 2c 20 69 6e 74 SAIOW(int x, int
83d0: 20 79 29 20 7b 20 63 6f 6e 73 74 20 69 6e 74 20 y) { const int
83e0: 5f 57 53 41 49 4f 57 20 3d 20 49 4f 43 5f 49 4e _WSAIOW = IOC_IN
83f0: 20 7c 20 78 20 7c 20 79 3b 20 7d 0a 74 65 6d 70 | x | y; }.temp
8400: 6c 61 74 65 20 5f 57 53 41 49 4f 52 57 28 69 6e late _WSAIORW(in
8410: 74 20 78 2c 20 69 6e 74 20 79 29 20 7b 20 63 6f t x, int y) { co
8420: 6e 73 74 20 69 6e 74 20 5f 57 53 41 49 4f 52 57 nst int _WSAIORW
8430: 20 3d 20 49 4f 43 5f 49 4e 4f 55 54 20 7c 20 78 = IOC_INOUT | x
8440: 20 7c 20 79 3b 20 7d 0a 0a 63 6f 6e 73 74 20 69 | y; }..const i
8450: 6e 74 20 53 49 4f 5f 41 53 53 4f 43 49 41 54 45 nt SIO_ASSOCIATE
8460: 5f 48 41 4e 44 4c 45 20 20 20 20 20 20 20 20 20 _HANDLE
8470: 20 20 20 20 20 20 3d 20 5f 57 53 41 49 4f 57 21 = _WSAIOW!
8480: 28 49 4f 43 5f 57 53 32 2c 31 29 3b 0a 63 6f 6e (IOC_WS2,1);.con
8490: 73 74 20 69 6e 74 20 53 49 4f 5f 45 4e 41 42 4c st int SIO_ENABL
84a0: 45 5f 43 49 52 43 55 4c 41 52 5f 51 55 45 55 45 E_CIRCULAR_QUEUE
84b0: 49 4e 47 20 20 20 20 20 20 20 3d 20 5f 57 53 41 ING = _WSA
84c0: 49 4f 21 28 49 4f 43 5f 57 53 32 2c 32 29 3b 0a IO!(IOC_WS2,2);.
84d0: 63 6f 6e 73 74 20 69 6e 74 20 53 49 4f 5f 46 49 const int SIO_FI
84e0: 4e 44 5f 52 4f 55 54 45 20 20 20 20 20 20 20 20 ND_ROUTE
84f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 5f = _
8500: 57 53 41 49 4f 52 21 28 49 4f 43 5f 57 53 32 2c WSAIOR!(IOC_WS2,
8510: 33 29 3b 0a 63 6f 6e 73 74 20 69 6e 74 20 53 49 3);.const int SI
8520: 4f 5f 46 4c 55 53 48 20 20 20 20 20 20 20 20 20 O_FLUSH
8530: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8540: 20 3d 20 5f 57 53 41 49 4f 21 28 49 4f 43 5f 57 = _WSAIO!(IOC_W
8550: 53 32 2c 34 29 3b 0a 63 6f 6e 73 74 20 69 6e 74 S2,4);.const int
8560: 20 53 49 4f 5f 47 45 54 5f 42 52 4f 41 44 43 41 SIO_GET_BROADCA
8570: 53 54 5f 41 44 44 52 45 53 53 20 20 20 20 20 20 ST_ADDRESS
8580: 20 20 20 20 3d 20 5f 57 53 41 49 4f 52 21 28 49 = _WSAIOR!(I
8590: 4f 43 5f 57 53 32 2c 35 29 3b 0a 63 6f 6e 73 74 OC_WS2,5);.const
85a0: 20 69 6e 74 20 53 49 4f 5f 47 45 54 5f 45 58 54 int SIO_GET_EXT
85b0: 45 4e 53 49 4f 4e 5f 46 55 4e 43 54 49 4f 4e 5f ENSION_FUNCTION_
85c0: 50 4f 49 4e 54 45 52 20 3d 20 5f 57 53 41 49 4f POINTER = _WSAIO
85d0: 52 57 21 28 49 4f 43 5f 57 53 32 2c 36 29 3b 0a RW!(IOC_WS2,6);.
85e0: 63 6f 6e 73 74 20 69 6e 74 20 53 49 4f 5f 47 45 const int SIO_GE
85f0: 54 5f 51 4f 53 20 20 20 20 20 20 20 20 20 20 20 T_QOS
8600: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 5f = _
8610: 57 53 41 49 4f 52 57 21 28 49 4f 43 5f 57 53 32 WSAIORW!(IOC_WS2
8620: 2c 37 29 3b 0a 63 6f 6e 73 74 20 69 6e 74 20 53 ,7);.const int S
8630: 49 4f 5f 47 45 54 5f 47 52 4f 55 50 5f 51 4f 53 IO_GET_GROUP_QOS
8640: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8650: 20 20 3d 20 5f 57 53 41 49 4f 52 57 21 28 49 4f = _WSAIORW!(IO
8660: 43 5f 57 53 32 2c 38 29 3b 0a 63 6f 6e 73 74 20 C_WS2,8);.const
8670: 69 6e 74 20 53 49 4f 5f 4d 55 4c 54 49 50 4f 49 int SIO_MULTIPOI
8680: 4e 54 5f 4c 4f 4f 50 42 41 43 4b 20 20 20 20 20 NT_LOOPBACK
8690: 20 20 20 20 20 20 20 3d 20 5f 57 53 41 49 4f 57 = _WSAIOW
86a0: 21 28 49 4f 43 5f 57 53 32 2c 39 29 3b 0a 63 6f !(IOC_WS2,9);.co
86b0: 6e 73 74 20 69 6e 74 20 53 49 4f 5f 4d 55 4c 54 nst int SIO_MULT
86c0: 49 43 41 53 54 5f 53 43 4f 50 45 20 20 20 20 20 ICAST_SCOPE
86d0: 20 20 20 20 20 20 20 20 20 20 20 3d 20 5f 57 53 = _WS
86e0: 41 49 4f 57 21 28 49 4f 43 5f 57 53 32 2c 31 30 AIOW!(IOC_WS2,10
86f0: 29 3b 0a 63 6f 6e 73 74 20 69 6e 74 20 53 49 4f );.const int SIO
8700: 5f 53 45 54 5f 51 4f 53 20 20 20 20 20 20 20 20 _SET_QOS
8710: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8720: 3d 20 5f 57 53 41 49 4f 57 21 28 49 4f 43 5f 57 = _WSAIOW!(IOC_W
8730: 53 32 2c 31 31 29 3b 0a 63 6f 6e 73 74 20 69 6e S2,11);.const in
8740: 74 20 53 49 4f 5f 53 45 54 5f 47 52 4f 55 50 5f t SIO_SET_GROUP_
8750: 51 4f 53 20 20 20 20 20 20 20 20 20 20 20 20 20 QOS
8760: 20 20 20 20 20 3d 20 5f 57 53 41 49 4f 57 21 28 = _WSAIOW!(
8770: 49 4f 43 5f 57 53 32 2c 31 32 29 3b 0a 63 6f 6e IOC_WS2,12);.con
8780: 73 74 20 69 6e 74 20 53 49 4f 5f 54 52 41 4e 53 st int SIO_TRANS
8790: 4c 41 54 45 5f 48 41 4e 44 4c 45 20 20 20 20 20 LATE_HANDLE
87a0: 20 20 20 20 20 20 20 20 20 20 3d 20 5f 57 53 41 = _WSA
87b0: 49 4f 52 57 21 28 49 4f 43 5f 57 53 32 2c 31 33 IORW!(IOC_WS2,13
87c0: 29 3b 0a 63 6f 6e 73 74 20 69 6e 74 20 53 49 4f );.const int SIO
87d0: 5f 52 4f 55 54 49 4e 47 5f 49 4e 54 45 52 46 41 _ROUTING_INTERFA
87e0: 43 45 5f 51 55 45 52 59 20 20 20 20 20 20 20 20 CE_QUERY
87f0: 3d 20 5f 57 53 41 49 4f 52 57 21 28 49 4f 43 5f = _WSAIORW!(IOC_
8800: 57 53 32 2c 32 30 29 3b 0a 63 6f 6e 73 74 20 69 WS2,20);.const i
8810: 6e 74 20 53 49 4f 5f 52 4f 55 54 49 4e 47 5f 49 nt SIO_ROUTING_I
8820: 4e 54 45 52 46 41 43 45 5f 43 48 41 4e 47 45 20 NTERFACE_CHANGE
8830: 20 20 20 20 20 20 3d 20 5f 57 53 41 49 4f 57 21 = _WSAIOW!
8840: 28 49 4f 43 5f 57 53 32 2c 32 31 29 3b 0a 63 6f (IOC_WS2,21);.co
8850: 6e 73 74 20 69 6e 74 20 53 49 4f 5f 41 44 44 52 nst int SIO_ADDR
8860: 45 53 53 5f 4c 49 53 54 5f 51 55 45 52 59 20 20 ESS_LIST_QUERY
8870: 20 20 20 20 20 20 20 20 20 20 20 3d 20 5f 57 53 = _WS
8880: 41 49 4f 52 21 28 49 4f 43 5f 57 53 32 2c 32 32 AIOR!(IOC_WS2,22
8890: 29 3b 0a 63 6f 6e 73 74 20 69 6e 74 20 53 49 4f );.const int SIO
88a0: 5f 41 44 44 52 45 53 53 5f 4c 49 53 54 5f 43 48 _ADDRESS_LIST_CH
88b0: 41 4e 47 45 20 20 20 20 20 20 20 20 20 20 20 20 ANGE
88c0: 3d 20 5f 57 53 41 49 4f 21 28 49 4f 43 5f 57 53 = _WSAIO!(IOC_WS
88d0: 32 2c 32 33 29 3b 0a 63 6f 6e 73 74 20 69 6e 74 2,23);.const int
88e0: 20 53 49 4f 5f 51 55 45 52 59 5f 54 41 52 47 45 SIO_QUERY_TARGE
88f0: 54 5f 50 4e 50 5f 48 41 4e 44 4c 45 20 20 20 20 T_PNP_HANDLE
8900: 20 20 20 20 3d 20 5f 57 53 41 49 4f 52 21 28 49 = _WSAIOR!(I
8910: 4f 43 5f 57 53 32 2c 32 34 29 3b 0a 63 6f 6e 73 OC_WS2,24);.cons
8920: 74 20 69 6e 74 20 53 49 4f 5f 4e 53 50 5f 4e 4f t int SIO_NSP_NO
8930: 54 49 46 59 5f 43 48 41 4e 47 45 20 20 20 20 20 TIFY_CHANGE
8940: 20 20 20 20 20 20 20 20 20 3d 20 5f 57 53 41 49 = _WSAI
8950: 4f 57 21 28 49 4f 43 5f 57 53 32 2c 32 35 29 3b OW!(IOC_WS2,25);
8960: 0a 0a 63 6f 6e 73 74 20 69 6e 74 20 54 48 5f 4e ..const int TH_N
8970: 45 54 44 45 56 20 3d 20 31 3b 0a 63 6f 6e 73 74 ETDEV = 1;.const
8980: 20 69 6e 74 20 54 48 5f 54 41 50 49 20 20 20 3d int TH_TAPI =
8990: 20 32 3b 0a 0a 0a 65 78 74 65 72 6e 28 57 69 6e 2;...extern(Win
89a0: 64 6f 77 73 29 20 7b 0a 09 53 4f 43 4b 45 54 20 dows) {..SOCKET
89b0: 57 53 41 41 63 63 65 70 74 28 53 4f 43 4b 45 54 WSAAccept(SOCKET
89c0: 2c 20 53 4f 43 4b 41 44 44 52 2a 2c 20 4c 50 49 , SOCKADDR*, LPI
89d0: 4e 54 2c 20 4c 50 43 4f 4e 44 49 54 49 4f 4e 50 NT, LPCONDITIONP
89e0: 52 4f 43 2c 20 44 57 4f 52 44 29 3b 0a 09 49 4e ROC, DWORD);..IN
89f0: 54 20 57 53 41 41 64 64 72 65 73 73 54 6f 53 74 T WSAAddressToSt
8a00: 72 69 6e 67 41 28 4c 50 53 4f 43 4b 41 44 44 52 ringA(LPSOCKADDR
8a10: 2c 20 44 57 4f 52 44 2c 20 4c 50 57 53 41 50 52 , DWORD, LPWSAPR
8a20: 4f 54 4f 43 4f 4c 5f 49 4e 46 4f 41 2c 20 4c 50 OTOCOL_INFOA, LP
8a30: 53 54 52 2c 20 4c 50 44 57 4f 52 44 29 3b 0a 09 STR, LPDWORD);..
8a40: 49 4e 54 20 57 53 41 41 64 64 72 65 73 73 54 6f INT WSAAddressTo
8a50: 53 74 72 69 6e 67 57 28 4c 50 53 4f 43 4b 41 44 StringW(LPSOCKAD
8a60: 44 52 2c 20 44 57 4f 52 44 2c 20 4c 50 57 53 41 DR, DWORD, LPWSA
8a70: 50 52 4f 54 4f 43 4f 4c 5f 49 4e 46 4f 57 2c 20 PROTOCOL_INFOW,
8a80: 4c 50 57 53 54 52 2c 20 4c 50 44 57 4f 52 44 29 LPWSTR, LPDWORD)
8a90: 3b 0a 09 42 4f 4f 4c 20 57 53 41 43 6c 6f 73 65 ;..BOOL WSAClose
8aa0: 45 76 65 6e 74 28 57 53 41 45 56 45 4e 54 29 3b Event(WSAEVENT);
8ab0: 0a 09 69 6e 74 20 57 53 41 43 6f 6e 6e 65 63 74 ..int WSAConnect
8ac0: 28 53 4f 43 4b 45 54 2c 20 43 50 74 72 21 28 53 (SOCKET, CPtr!(S
8ad0: 4f 43 4b 41 44 44 52 29 2c 20 69 6e 74 2c 20 4c OCKADDR), int, L
8ae0: 50 57 53 41 42 55 46 2c 20 4c 50 57 53 41 42 55 PWSABUF, LPWSABU
8af0: 46 2c 20 4c 50 51 4f 53 2c 20 4c 50 51 4f 53 29 F, LPQOS, LPQOS)
8b00: 3b 0a 09 57 53 41 45 56 45 4e 54 20 57 53 41 43 ;..WSAEVENT WSAC
8b10: 72 65 61 74 65 45 76 65 6e 74 28 29 3b 0a 09 69 reateEvent();..i
8b20: 6e 74 20 57 53 41 44 75 70 6c 69 63 61 74 65 53 nt WSADuplicateS
8b30: 6f 63 6b 65 74 41 28 53 4f 43 4b 45 54 2c 20 44 ocketA(SOCKET, D
8b40: 57 4f 52 44 2c 20 4c 50 57 53 41 50 52 4f 54 4f WORD, LPWSAPROTO
8b50: 43 4f 4c 5f 49 4e 46 4f 41 29 3b 0a 09 69 6e 74 COL_INFOA);..int
8b60: 20 57 53 41 44 75 70 6c 69 63 61 74 65 53 6f 63 WSADuplicateSoc
8b70: 6b 65 74 57 28 53 4f 43 4b 45 54 2c 20 44 57 4f ketW(SOCKET, DWO
8b80: 52 44 2c 20 4c 50 57 53 41 50 52 4f 54 4f 43 4f RD, LPWSAPROTOCO
8b90: 4c 5f 49 4e 46 4f 57 29 3b 0a 09 49 4e 54 20 57 L_INFOW);..INT W
8ba0: 53 41 45 6e 75 6d 4e 61 6d 65 53 70 61 63 65 50 SAEnumNameSpaceP
8bb0: 72 6f 76 69 64 65 72 73 41 28 4c 50 44 57 4f 52 rovidersA(LPDWOR
8bc0: 44 2c 20 4c 50 57 53 41 4e 41 4d 45 53 50 41 43 D, LPWSANAMESPAC
8bd0: 45 5f 49 4e 46 4f 41 29 3b 0a 09 49 4e 54 20 57 E_INFOA);..INT W
8be0: 53 41 45 6e 75 6d 4e 61 6d 65 53 70 61 63 65 50 SAEnumNameSpaceP
8bf0: 72 6f 76 69 64 65 72 73 57 28 4c 50 44 57 4f 52 rovidersW(LPDWOR
8c00: 44 2c 20 4c 50 57 53 41 4e 41 4d 45 53 50 41 43 D, LPWSANAMESPAC
8c10: 45 5f 49 4e 46 4f 57 29 3b 0a 09 69 6e 74 20 57 E_INFOW);..int W
8c20: 53 41 45 6e 75 6d 4e 65 74 77 6f 72 6b 45 76 65 SAEnumNetworkEve
8c30: 6e 74 73 28 53 4f 43 4b 45 54 2c 20 57 53 41 45 nts(SOCKET, WSAE
8c40: 56 45 4e 54 2c 20 4c 50 57 53 41 4e 45 54 57 4f VENT, LPWSANETWO
8c50: 52 4b 45 56 45 4e 54 53 29 3b 0a 09 69 6e 74 20 RKEVENTS);..int
8c60: 57 53 41 45 6e 75 6d 50 72 6f 74 6f 63 6f 6c 73 WSAEnumProtocols
8c70: 41 28 4c 50 49 4e 54 2c 20 4c 50 57 53 41 50 52 A(LPINT, LPWSAPR
8c80: 4f 54 4f 43 4f 4c 5f 49 4e 46 4f 41 2c 20 4c 50 OTOCOL_INFOA, LP
8c90: 44 57 4f 52 44 29 3b 0a 09 69 6e 74 20 57 53 41 DWORD);..int WSA
8ca0: 45 6e 75 6d 50 72 6f 74 6f 63 6f 6c 73 57 28 4c EnumProtocolsW(L
8cb0: 50 49 4e 54 2c 20 4c 50 57 53 41 50 52 4f 54 4f PINT, LPWSAPROTO
8cc0: 43 4f 4c 5f 49 4e 46 4f 57 2c 20 4c 50 44 57 4f COL_INFOW, LPDWO
8cd0: 52 44 29 3b 0a 09 69 6e 74 20 57 53 41 45 76 65 RD);..int WSAEve
8ce0: 6e 74 53 65 6c 65 63 74 28 53 4f 43 4b 45 54 2c ntSelect(SOCKET,
8cf0: 20 57 53 41 45 56 45 4e 54 2c 20 69 6e 74 29 3b WSAEVENT, int);
8d00: 0a 09 42 4f 4f 4c 20 57 53 41 47 65 74 4f 76 65 ..BOOL WSAGetOve
8d10: 72 6c 61 70 70 65 64 52 65 73 75 6c 74 28 53 4f rlappedResult(SO
8d20: 43 4b 45 54 2c 20 4c 50 57 53 41 4f 56 45 52 4c CKET, LPWSAOVERL
8d30: 41 50 50 45 44 2c 20 4c 50 44 57 4f 52 44 2c 20 APPED, LPDWORD,
8d40: 42 4f 4f 4c 2c 20 4c 50 44 57 4f 52 44 29 3b 0a BOOL, LPDWORD);.
8d50: 09 42 4f 4f 4c 20 57 53 41 47 65 74 51 4f 53 42 .BOOL WSAGetQOSB
8d60: 79 4e 61 6d 65 28 53 4f 43 4b 45 54 2c 20 4c 50 yName(SOCKET, LP
8d70: 57 53 41 42 55 46 2c 20 4c 50 51 4f 53 29 3b 0a WSABUF, LPQOS);.
8d80: 09 49 4e 54 20 57 53 41 47 65 74 53 65 72 76 69 .INT WSAGetServi
8d90: 63 65 43 6c 61 73 73 49 6e 66 6f 41 28 4c 50 47 ceClassInfoA(LPG
8da0: 55 49 44 2c 20 4c 50 47 55 49 44 2c 20 4c 50 44 UID, LPGUID, LPD
8db0: 57 4f 52 44 2c 20 4c 50 57 53 41 53 45 52 56 49 WORD, LPWSASERVI
8dc0: 43 45 43 4c 41 53 53 49 4e 46 4f 41 29 3b 0a 09 CECLASSINFOA);..
8dd0: 49 4e 54 20 57 53 41 47 65 74 53 65 72 76 69 63 INT WSAGetServic
8de0: 65 43 6c 61 73 73 49 6e 66 6f 57 28 4c 50 47 55 eClassInfoW(LPGU
8df0: 49 44 2c 20 4c 50 47 55 49 44 2c 20 4c 50 44 57 ID, LPGUID, LPDW
8e00: 4f 52 44 2c 20 4c 50 57 53 41 53 45 52 56 49 43 ORD, LPWSASERVIC
8e10: 45 43 4c 41 53 53 49 4e 46 4f 57 29 3b 0a 09 49 ECLASSINFOW);..I
8e20: 4e 54 20 57 53 41 47 65 74 53 65 72 76 69 63 65 NT WSAGetService
8e30: 43 6c 61 73 73 4e 61 6d 65 42 79 43 6c 61 73 73 ClassNameByClass
8e40: 49 64 41 28 4c 50 47 55 49 44 2c 20 4c 50 53 54 IdA(LPGUID, LPST
8e50: 52 2c 20 4c 50 44 57 4f 52 44 29 3b 0a 09 49 4e R, LPDWORD);..IN
8e60: 54 20 57 53 41 47 65 74 53 65 72 76 69 63 65 43 T WSAGetServiceC
8e70: 6c 61 73 73 4e 61 6d 65 42 79 43 6c 61 73 73 49 lassNameByClassI
8e80: 64 57 28 4c 50 47 55 49 44 2c 20 4c 50 57 53 54 dW(LPGUID, LPWST
8e90: 52 2c 20 4c 50 44 57 4f 52 44 29 3b 0a 09 69 6e R, LPDWORD);..in
8ea0: 74 20 57 53 41 48 74 6f 6e 6c 28 53 4f 43 4b 45 t WSAHtonl(SOCKE
8eb0: 54 2c 20 75 69 6e 74 2c 20 75 69 6e 74 2a 29 3b T, uint, uint*);
8ec0: 0a 09 69 6e 74 20 57 53 41 48 74 6f 6e 73 28 53 ..int WSAHtons(S
8ed0: 4f 43 4b 45 54 2c 20 75 73 68 6f 72 74 2c 20 75 OCKET, ushort, u
8ee0: 73 68 6f 72 74 2a 29 3b 0a 09 49 4e 54 20 57 53 short*);..INT WS
8ef0: 41 49 6e 73 74 61 6c 6c 53 65 72 76 69 63 65 43 AInstallServiceC
8f00: 6c 61 73 73 41 28 4c 50 57 53 41 53 45 52 56 49 lassA(LPWSASERVI
8f10: 43 45 43 4c 41 53 53 49 4e 46 4f 41 29 3b 0a 09 CECLASSINFOA);..
8f20: 49 4e 54 20 57 53 41 49 6e 73 74 61 6c 6c 53 65 INT WSAInstallSe
8f30: 72 76 69 63 65 43 6c 61 73 73 57 28 4c 50 57 53 rviceClassW(LPWS
8f40: 41 53 45 52 56 49 43 45 43 4c 41 53 53 49 4e 46 ASERVICECLASSINF
8f50: 4f 57 29 3b 0a 09 69 6e 74 20 57 53 41 49 6f 63 OW);..int WSAIoc
8f60: 74 6c 28 53 4f 43 4b 45 54 2c 20 44 57 4f 52 44 tl(SOCKET, DWORD
8f70: 2c 20 4c 50 56 4f 49 44 2c 20 44 57 4f 52 44 2c , LPVOID, DWORD,
8f80: 20 4c 50 56 4f 49 44 2c 20 44 57 4f 52 44 2c 20 LPVOID, DWORD,
8f90: 4c 50 44 57 4f 52 44 2c 20 4c 50 57 53 41 4f 56 LPDWORD, LPWSAOV
8fa0: 45 52 4c 41 50 50 45 44 2c 20 4c 50 57 53 41 4f ERLAPPED, LPWSAO
8fb0: 56 45 52 4c 41 50 50 45 44 5f 43 4f 4d 50 4c 45 VERLAPPED_COMPLE
8fc0: 54 49 4f 4e 5f 52 4f 55 54 49 4e 45 29 3b 0a 09 TION_ROUTINE);..
8fd0: 53 4f 43 4b 45 54 20 57 53 41 4a 6f 69 6e 4c 65 SOCKET WSAJoinLe
8fe0: 61 66 28 53 4f 43 4b 45 54 2c 20 43 50 74 72 21 af(SOCKET, CPtr!
8ff0: 28 53 4f 43 4b 41 44 44 52 29 2c 20 69 6e 74 2c (SOCKADDR), int,
9000: 20 4c 50 57 53 41 42 55 46 2c 20 4c 50 57 53 41 LPWSABUF, LPWSA
9010: 42 55 46 2c 20 4c 50 51 4f 53 2c 20 4c 50 51 4f BUF, LPQOS, LPQO
9020: 53 2c 20 44 57 4f 52 44 29 3b 0a 09 49 4e 54 20 S, DWORD);..INT
9030: 57 53 41 4c 6f 6f 6b 75 70 53 65 72 76 69 63 65 WSALookupService
9040: 42 65 67 69 6e 41 28 4c 50 57 53 41 51 55 45 52 BeginA(LPWSAQUER
9050: 59 53 45 54 41 2c 20 44 57 4f 52 44 2c 20 4c 50 YSETA, DWORD, LP
9060: 48 41 4e 44 4c 45 29 3b 0a 09 49 4e 54 20 57 53 HANDLE);..INT WS
9070: 41 4c 6f 6f 6b 75 70 53 65 72 76 69 63 65 42 65 ALookupServiceBe
9080: 67 69 6e 57 28 4c 50 57 53 41 51 55 45 52 59 53 ginW(LPWSAQUERYS
9090: 45 54 57 20 6c 70 71 73 52 65 73 74 72 69 63 74 ETW lpqsRestrict
90a0: 69 6f 6e 73 2c 20 44 57 4f 52 44 2c 20 4c 50 48 ions, DWORD, LPH
90b0: 41 4e 44 4c 45 29 3b 0a 09 49 4e 54 20 57 53 41 ANDLE);..INT WSA
90c0: 4c 6f 6f 6b 75 70 53 65 72 76 69 63 65 4e 65 78 LookupServiceNex
90d0: 74 41 28 48 41 4e 44 4c 45 2c 20 44 57 4f 52 44 tA(HANDLE, DWORD
90e0: 2c 20 4c 50 44 57 4f 52 44 2c 20 4c 50 57 53 41 , LPDWORD, LPWSA
90f0: 51 55 45 52 59 53 45 54 41 29 3b 0a 09 49 4e 54 QUERYSETA);..INT
9100: 20 57 53 41 4c 6f 6f 6b 75 70 53 65 72 76 69 63 WSALookupServic
9110: 65 4e 65 78 74 57 28 48 41 4e 44 4c 45 2c 20 44 eNextW(HANDLE, D
9120: 57 4f 52 44 2c 20 4c 50 44 57 4f 52 44 2c 20 4c WORD, LPDWORD, L
9130: 50 57 53 41 51 55 45 52 59 53 45 54 57 29 3b 0a PWSAQUERYSETW);.
9140: 09 49 4e 54 20 57 53 41 4c 6f 6f 6b 75 70 53 65 .INT WSALookupSe
9150: 72 76 69 63 65 45 6e 64 28 48 41 4e 44 4c 45 29 rviceEnd(HANDLE)
9160: 3b 0a 09 69 6e 74 20 57 53 41 4e 53 50 49 6f 63 ;..int WSANSPIoc
9170: 74 6c 28 48 41 4e 44 4c 45 2c 44 57 4f 52 44 2c tl(HANDLE,DWORD,
9180: 4c 50 56 4f 49 44 2c 44 57 4f 52 44 2c 4c 50 56 LPVOID,DWORD,LPV
9190: 4f 49 44 2c 44 57 4f 52 44 2c 4c 50 44 57 4f 52 OID,DWORD,LPDWOR
91a0: 44 2c 4c 50 57 53 41 43 4f 4d 50 4c 45 54 49 4f D,LPWSACOMPLETIO
91b0: 4e 29 3b 20 2f 2a 20 58 50 20 6f 72 20 2e 4e 45 N); /* XP or .NE
91c0: 54 20 53 65 72 76 65 72 20 2a 2f 0a 09 69 6e 74 T Server */..int
91d0: 20 57 53 41 4e 74 6f 68 6c 28 53 4f 43 4b 45 54 WSANtohl(SOCKET
91e0: 2c 20 75 69 6e 74 2c 20 75 69 6e 74 2a 29 3b 0a , uint, uint*);.
91f0: 09 69 6e 74 20 57 53 41 4e 74 6f 68 73 28 53 4f .int WSANtohs(SO
9200: 43 4b 45 54 2c 20 75 73 68 6f 72 74 2c 20 75 73 CKET, ushort, us
9210: 68 6f 72 74 2a 29 3b 0a 09 69 6e 74 20 57 53 41 hort*);..int WSA
9220: 52 65 63 76 28 53 4f 43 4b 45 54 2c 20 4c 50 57 Recv(SOCKET, LPW
9230: 53 41 42 55 46 2c 20 44 57 4f 52 44 2c 20 4c 50 SABUF, DWORD, LP
9240: 44 57 4f 52 44 2c 20 4c 50 44 57 4f 52 44 2c 20 DWORD, LPDWORD,
9250: 4c 50 57 53 41 4f 56 45 52 4c 41 50 50 45 44 2c LPWSAOVERLAPPED,
9260: 20 4c 50 57 53 41 4f 56 45 52 4c 41 50 50 45 44 LPWSAOVERLAPPED
9270: 5f 43 4f 4d 50 4c 45 54 49 4f 4e 5f 52 4f 55 54 _COMPLETION_ROUT
9280: 49 4e 45 29 3b 0a 09 69 6e 74 20 57 53 41 52 65 INE);..int WSARe
9290: 63 76 44 69 73 63 6f 6e 6e 65 63 74 28 53 4f 43 cvDisconnect(SOC
92a0: 4b 45 54 2c 20 4c 50 57 53 41 42 55 46 29 3b 0a KET, LPWSABUF);.
92b0: 09 69 6e 74 20 57 53 41 52 65 63 76 46 72 6f 6d .int WSARecvFrom
92c0: 28 53 4f 43 4b 45 54 2c 20 4c 50 57 53 41 42 55 (SOCKET, LPWSABU
92d0: 46 2c 20 44 57 4f 52 44 2c 20 4c 50 44 57 4f 52 F, DWORD, LPDWOR
92e0: 44 2c 20 4c 50 44 57 4f 52 44 2c 20 53 4f 43 4b D, LPDWORD, SOCK
92f0: 41 44 44 52 2a 2c 20 4c 50 49 4e 54 2c 20 4c 50 ADDR*, LPINT, LP
9300: 57 53 41 4f 56 45 52 4c 41 50 50 45 44 2c 20 4c WSAOVERLAPPED, L
9310: 50 57 53 41 4f 56 45 52 4c 41 50 50 45 44 5f 43 PWSAOVERLAPPED_C
9320: 4f 4d 50 4c 45 54 49 4f 4e 5f 52 4f 55 54 49 4e OMPLETION_ROUTIN
9330: 45 29 3b 0a 09 49 4e 54 20 57 53 41 52 65 6d 6f E);..INT WSARemo
9340: 76 65 53 65 72 76 69 63 65 43 6c 61 73 73 28 4c veServiceClass(L
9350: 50 47 55 49 44 29 3b 0a 09 42 4f 4f 4c 20 57 53 PGUID);..BOOL WS
9360: 41 52 65 73 65 74 45 76 65 6e 74 28 57 53 41 45 AResetEvent(WSAE
9370: 56 45 4e 54 29 3b 0a 09 69 6e 74 20 57 53 41 53 VENT);..int WSAS
9380: 65 6e 64 28 53 4f 43 4b 45 54 2c 20 4c 50 57 53 end(SOCKET, LPWS
9390: 41 42 55 46 2c 20 44 57 4f 52 44 2c 20 4c 50 44 ABUF, DWORD, LPD
93a0: 57 4f 52 44 2c 20 44 57 4f 52 44 2c 20 4c 50 57 WORD, DWORD, LPW
93b0: 53 41 4f 56 45 52 4c 41 50 50 45 44 2c 20 4c 50 SAOVERLAPPED, LP
93c0: 57 53 41 4f 56 45 52 4c 41 50 50 45 44 5f 43 4f WSAOVERLAPPED_CO
93d0: 4d 50 4c 45 54 49 4f 4e 5f 52 4f 55 54 49 4e 45 MPLETION_ROUTINE
93e0: 29 3b 0a 09 69 6e 74 20 57 53 41 53 65 6e 64 44 );..int WSASendD
93f0: 69 73 63 6f 6e 6e 65 63 74 28 53 4f 43 4b 45 54 isconnect(SOCKET
9400: 2c 20 4c 50 57 53 41 42 55 46 29 3b 0a 09 69 6e , LPWSABUF);..in
9410: 74 20 57 53 41 53 65 6e 64 54 6f 28 53 4f 43 4b t WSASendTo(SOCK
9420: 45 54 2c 20 4c 50 57 53 41 42 55 46 2c 20 44 57 ET, LPWSABUF, DW
9430: 4f 52 44 2c 20 4c 50 44 57 4f 52 44 2c 20 44 57 ORD, LPDWORD, DW
9440: 4f 52 44 2c 20 43 50 74 72 21 28 53 4f 43 4b 41 ORD, CPtr!(SOCKA
9450: 44 44 52 29 2c 20 69 6e 74 2c 20 4c 50 57 53 41 DDR), int, LPWSA
9460: 4f 56 45 52 4c 41 50 50 45 44 2c 20 4c 50 57 53 OVERLAPPED, LPWS
9470: 41 4f 56 45 52 4c 41 50 50 45 44 5f 43 4f 4d 50 AOVERLAPPED_COMP
9480: 4c 45 54 49 4f 4e 5f 52 4f 55 54 49 4e 45 29 3b LETION_ROUTINE);
9490: 0a 09 42 4f 4f 4c 20 57 53 41 53 65 74 45 76 65 ..BOOL WSASetEve
94a0: 6e 74 28 57 53 41 45 56 45 4e 54 29 3b 0a 09 49 nt(WSAEVENT);..I
94b0: 4e 54 20 57 53 41 53 65 74 53 65 72 76 69 63 65 NT WSASetService
94c0: 41 28 4c 50 57 53 41 51 55 45 52 59 53 45 54 41 A(LPWSAQUERYSETA
94d0: 2c 20 57 53 41 45 53 45 54 53 45 52 56 49 43 45 , WSAESETSERVICE
94e0: 4f 50 2c 20 44 57 4f 52 44 29 3b 20 2f 2f 20 4e OP, DWORD); // N
94f0: 42 3a 20 77 61 73 20 64 65 63 6c 61 72 65 64 20 B: was declared
9500: 77 69 74 68 20 22 57 53 41 41 50 49 22 20 6c 69 with "WSAAPI" li
9510: 6e 6b 61 67 65 0a 09 49 4e 54 20 57 53 41 53 65 nkage..INT WSASe
9520: 74 53 65 72 76 69 63 65 57 28 4c 50 57 53 41 51 tServiceW(LPWSAQ
9530: 55 45 52 59 53 45 54 57 2c 20 57 53 41 45 53 45 UERYSETW, WSAESE
9540: 54 53 45 52 56 49 43 45 4f 50 2c 20 44 57 4f 52 TSERVICEOP, DWOR
9550: 44 29 3b 0a 09 53 4f 43 4b 45 54 20 57 53 41 53 D);..SOCKET WSAS
9560: 6f 63 6b 65 74 41 28 69 6e 74 2c 20 69 6e 74 2c ocketA(int, int,
9570: 20 69 6e 74 2c 20 4c 50 57 53 41 50 52 4f 54 4f int, LPWSAPROTO
9580: 43 4f 4c 5f 49 4e 46 4f 41 2c 20 47 52 4f 55 50 COL_INFOA, GROUP
9590: 2c 20 44 57 4f 52 44 29 3b 0a 09 53 4f 43 4b 45 , DWORD);..SOCKE
95a0: 54 20 57 53 41 53 6f 63 6b 65 74 57 28 69 6e 74 T WSASocketW(int
95b0: 2c 20 69 6e 74 2c 20 69 6e 74 2c 20 4c 50 57 53 , int, int, LPWS
95c0: 41 50 52 4f 54 4f 43 4f 4c 5f 49 4e 46 4f 57 2c APROTOCOL_INFOW,
95d0: 20 47 52 4f 55 50 2c 20 44 57 4f 52 44 29 3b 0a GROUP, DWORD);.
95e0: 09 49 4e 54 20 57 53 41 53 74 72 69 6e 67 54 6f .INT WSAStringTo
95f0: 41 64 64 72 65 73 73 41 28 4c 50 53 54 52 2c 20 AddressA(LPSTR,
9600: 49 4e 54 2c 20 4c 50 57 53 41 50 52 4f 54 4f 43 INT, LPWSAPROTOC
9610: 4f 4c 5f 49 4e 46 4f 41 2c 20 4c 50 53 4f 43 4b OL_INFOA, LPSOCK
9620: 41 44 44 52 2c 20 4c 50 49 4e 54 29 3b 0a 09 49 ADDR, LPINT);..I
9630: 4e 54 20 57 53 41 53 74 72 69 6e 67 54 6f 41 64 NT WSAStringToAd
9640: 64 72 65 73 73 57 28 4c 50 57 53 54 52 2c 20 49 dressW(LPWSTR, I
9650: 4e 54 2c 20 4c 50 57 53 41 50 52 4f 54 4f 43 4f NT, LPWSAPROTOCO
9660: 4c 5f 49 4e 46 4f 57 2c 20 4c 50 53 4f 43 4b 41 L_INFOW, LPSOCKA
9670: 44 44 52 2c 20 4c 50 49 4e 54 29 3b 0a 09 44 57 DDR, LPINT);..DW
9680: 4f 52 44 20 57 53 41 57 61 69 74 46 6f 72 4d 75 ORD WSAWaitForMu
9690: 6c 74 69 70 6c 65 45 76 65 6e 74 73 28 44 57 4f ltipleEvents(DWO
96a0: 52 44 2c 20 43 50 74 72 21 28 57 53 41 45 56 45 RD, CPtr!(WSAEVE
96b0: 4e 54 29 2c 20 42 4f 4f 4c 2c 20 44 57 4f 52 44 NT), BOOL, DWORD
96c0: 2c 20 42 4f 4f 4c 29 3b 0a 0a 09 61 6c 69 61 73 , BOOL);...alias
96d0: 20 74 79 70 65 6f 66 28 26 57 53 41 41 63 63 65 typeof(&WSAAcce
96e0: 70 74 29 20 4c 50 46 4e 5f 57 53 41 41 43 43 45 pt) LPFN_WSAACCE
96f0: 50 54 3b 0a 09 61 6c 69 61 73 20 74 79 70 65 6f PT;..alias typeo
9700: 66 28 26 57 53 41 41 64 64 72 65 73 73 54 6f 53 f(&WSAAddressToS
9710: 74 72 69 6e 67 41 29 20 4c 50 46 4e 5f 57 53 41 tringA) LPFN_WSA
9720: 41 44 44 52 45 53 53 54 4f 53 54 52 49 4e 47 41 ADDRESSTOSTRINGA
9730: 3b 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 ;..alias typeof(
9740: 26 57 53 41 41 64 64 72 65 73 73 54 6f 53 74 72 &WSAAddressToStr
9750: 69 6e 67 57 29 20 4c 50 46 4e 5f 57 53 41 41 44 ingW) LPFN_WSAAD
9760: 44 52 45 53 53 54 4f 53 54 52 49 4e 47 57 3b 0a DRESSTOSTRINGW;.
9770: 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 .alias typeof(&W
9780: 53 41 43 6c 6f 73 65 45 76 65 6e 74 29 20 4c 50 SACloseEvent) LP
9790: 46 4e 5f 57 53 41 43 4c 4f 53 45 45 56 45 4e 54 FN_WSACLOSEEVENT
97a0: 3b 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 ;..alias typeof(
97b0: 26 57 53 41 43 6f 6e 6e 65 63 74 29 20 4c 50 46 &WSAConnect) LPF
97c0: 4e 5f 57 53 41 43 4f 4e 4e 45 43 54 3b 0a 09 61 N_WSACONNECT;..a
97d0: 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 lias typeof(&WSA
97e0: 43 72 65 61 74 65 45 76 65 6e 74 29 20 4c 50 46 CreateEvent) LPF
97f0: 4e 5f 57 53 41 43 52 45 41 54 45 45 56 45 4e 54 N_WSACREATEEVENT
9800: 3b 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 ;..alias typeof(
9810: 26 57 53 41 44 75 70 6c 69 63 61 74 65 53 6f 63 &WSADuplicateSoc
9820: 6b 65 74 41 29 20 4c 50 46 4e 5f 57 53 41 44 55 ketA) LPFN_WSADU
9830: 50 4c 49 43 41 54 45 53 4f 43 4b 45 54 41 3b 0a PLICATESOCKETA;.
9840: 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 .alias typeof(&W
9850: 53 41 44 75 70 6c 69 63 61 74 65 53 6f 63 6b 65 SADuplicateSocke
9860: 74 57 29 20 4c 50 46 4e 5f 57 53 41 44 55 50 4c tW) LPFN_WSADUPL
9870: 49 43 41 54 45 53 4f 43 4b 45 54 57 3b 0a 09 61 ICATESOCKETW;..a
9880: 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 lias typeof(&WSA
9890: 45 6e 75 6d 4e 61 6d 65 53 70 61 63 65 50 72 6f EnumNameSpacePro
98a0: 76 69 64 65 72 73 41 29 20 4c 50 46 4e 5f 57 53 vidersA) LPFN_WS
98b0: 41 45 4e 55 4d 4e 41 4d 45 53 50 41 43 45 50 52 AENUMNAMESPACEPR
98c0: 4f 56 49 44 45 52 53 41 3b 0a 09 61 6c 69 61 73 OVIDERSA;..alias
98d0: 20 74 79 70 65 6f 66 28 26 57 53 41 45 6e 75 6d typeof(&WSAEnum
98e0: 4e 61 6d 65 53 70 61 63 65 50 72 6f 76 69 64 65 NameSpaceProvide
98f0: 72 73 57 29 20 4c 50 46 4e 5f 57 53 41 45 4e 55 rsW) LPFN_WSAENU
9900: 4d 4e 41 4d 45 53 50 41 43 45 50 52 4f 56 49 44 MNAMESPACEPROVID
9910: 45 52 53 57 3b 0a 09 61 6c 69 61 73 20 74 79 70 ERSW;..alias typ
9920: 65 6f 66 28 26 57 53 41 45 6e 75 6d 4e 65 74 77 eof(&WSAEnumNetw
9930: 6f 72 6b 45 76 65 6e 74 73 29 20 4c 50 46 4e 5f orkEvents) LPFN_
9940: 57 53 41 45 4e 55 4d 4e 45 54 57 4f 52 4b 45 56 WSAENUMNETWORKEV
9950: 45 4e 54 53 3b 0a 09 61 6c 69 61 73 20 74 79 70 ENTS;..alias typ
9960: 65 6f 66 28 26 57 53 41 45 6e 75 6d 50 72 6f 74 eof(&WSAEnumProt
9970: 6f 63 6f 6c 73 41 29 20 4c 50 46 4e 5f 57 53 41 ocolsA) LPFN_WSA
9980: 45 4e 55 4d 50 52 4f 54 4f 43 4f 4c 53 41 3b 0a ENUMPROTOCOLSA;.
9990: 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 .alias typeof(&W
99a0: 53 41 45 6e 75 6d 50 72 6f 74 6f 63 6f 6c 73 57 SAEnumProtocolsW
99b0: 29 20 4c 50 46 4e 5f 57 53 41 45 4e 55 4d 50 52 ) LPFN_WSAENUMPR
99c0: 4f 54 4f 43 4f 4c 53 57 3b 0a 09 61 6c 69 61 73 OTOCOLSW;..alias
99d0: 20 74 79 70 65 6f 66 28 26 57 53 41 45 76 65 6e typeof(&WSAEven
99e0: 74 53 65 6c 65 63 74 29 20 4c 50 46 4e 5f 57 53 tSelect) LPFN_WS
99f0: 41 45 56 45 4e 54 53 45 4c 45 43 54 3b 0a 09 61 AEVENTSELECT;..a
9a00: 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 lias typeof(&WSA
9a10: 47 65 74 4f 76 65 72 6c 61 70 70 65 64 52 65 73 GetOverlappedRes
9a20: 75 6c 74 29 20 4c 50 46 4e 5f 57 53 41 47 45 54 ult) LPFN_WSAGET
9a30: 4f 56 45 52 4c 41 50 50 45 44 52 45 53 55 4c 54 OVERLAPPEDRESULT
9a40: 3b 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 ;..alias typeof(
9a50: 26 57 53 41 47 65 74 51 4f 53 42 79 4e 61 6d 65 &WSAGetQOSByName
9a60: 29 20 4c 50 46 4e 5f 57 53 41 47 45 54 51 4f 53 ) LPFN_WSAGETQOS
9a70: 42 59 4e 41 4d 45 3b 0a 09 61 6c 69 61 73 20 74 BYNAME;..alias t
9a80: 79 70 65 6f 66 28 26 57 53 41 47 65 74 53 65 72 ypeof(&WSAGetSer
9a90: 76 69 63 65 43 6c 61 73 73 49 6e 66 6f 41 29 20 viceClassInfoA)
9aa0: 4c 50 46 4e 5f 57 53 41 47 45 54 53 45 52 56 49 LPFN_WSAGETSERVI
9ab0: 43 45 43 4c 41 53 53 49 4e 46 4f 41 3b 0a 09 61 CECLASSINFOA;..a
9ac0: 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 lias typeof(&WSA
9ad0: 47 65 74 53 65 72 76 69 63 65 43 6c 61 73 73 49 GetServiceClassI
9ae0: 6e 66 6f 57 29 20 4c 50 46 4e 5f 57 53 41 47 45 nfoW) LPFN_WSAGE
9af0: 54 53 45 52 56 49 43 45 43 4c 41 53 53 49 4e 46 TSERVICECLASSINF
9b00: 4f 57 3b 0a 09 61 6c 69 61 73 20 74 79 70 65 6f OW;..alias typeo
9b10: 66 28 26 57 53 41 47 65 74 53 65 72 76 69 63 65 f(&WSAGetService
9b20: 43 6c 61 73 73 4e 61 6d 65 42 79 43 6c 61 73 73 ClassNameByClass
9b30: 49 64 41 29 20 4c 50 46 4e 5f 57 53 41 47 45 54 IdA) LPFN_WSAGET
9b40: 53 45 52 56 49 43 45 43 4c 41 53 53 4e 41 4d 45 SERVICECLASSNAME
9b50: 42 59 43 4c 41 53 53 49 44 41 3b 0a 09 61 6c 69 BYCLASSIDA;..ali
9b60: 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 47 65 as typeof(&WSAGe
9b70: 74 53 65 72 76 69 63 65 43 6c 61 73 73 4e 61 6d tServiceClassNam
9b80: 65 42 79 43 6c 61 73 73 49 64 57 29 20 4c 50 46 eByClassIdW) LPF
9b90: 4e 5f 57 53 41 47 45 54 53 45 52 56 49 43 45 43 N_WSAGETSERVICEC
9ba0: 4c 41 53 53 4e 41 4d 45 42 59 43 4c 41 53 53 49 LASSNAMEBYCLASSI
9bb0: 44 57 3b 0a 09 61 6c 69 61 73 20 74 79 70 65 6f DW;..alias typeo
9bc0: 66 28 26 57 53 41 48 74 6f 6e 6c 29 20 4c 50 46 f(&WSAHtonl) LPF
9bd0: 4e 5f 57 53 41 48 54 4f 4e 4c 3b 0a 09 61 6c 69 N_WSAHTONL;..ali
9be0: 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 48 74 as typeof(&WSAHt
9bf0: 6f 6e 73 29 20 4c 50 46 4e 5f 57 53 41 48 54 4f ons) LPFN_WSAHTO
9c00: 4e 53 3b 0a 09 61 6c 69 61 73 20 74 79 70 65 6f NS;..alias typeo
9c10: 66 28 26 57 53 41 49 6e 73 74 61 6c 6c 53 65 72 f(&WSAInstallSer
9c20: 76 69 63 65 43 6c 61 73 73 41 29 20 4c 50 46 4e viceClassA) LPFN
9c30: 5f 57 53 41 49 4e 53 54 41 4c 4c 53 45 52 56 49 _WSAINSTALLSERVI
9c40: 43 45 43 4c 41 53 53 41 3b 0a 09 61 6c 69 61 73 CECLASSA;..alias
9c50: 20 74 79 70 65 6f 66 28 26 57 53 41 49 6e 73 74 typeof(&WSAInst
9c60: 61 6c 6c 53 65 72 76 69 63 65 43 6c 61 73 73 57 allServiceClassW
9c70: 29 20 4c 50 46 4e 5f 57 53 41 49 4e 53 54 41 4c ) LPFN_WSAINSTAL
9c80: 4c 53 45 52 56 49 43 45 43 4c 41 53 53 57 3b 0a LSERVICECLASSW;.
9c90: 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 .alias typeof(&W
9ca0: 53 41 49 6f 63 74 6c 29 20 4c 50 46 4e 5f 57 53 SAIoctl) LPFN_WS
9cb0: 41 49 4f 43 54 4c 3b 0a 09 61 6c 69 61 73 20 74 AIOCTL;..alias t
9cc0: 79 70 65 6f 66 28 26 57 53 41 4a 6f 69 6e 4c 65 ypeof(&WSAJoinLe
9cd0: 61 66 29 20 4c 50 46 4e 5f 57 53 41 4a 4f 49 4e af) LPFN_WSAJOIN
9ce0: 4c 45 41 46 3b 0a 09 61 6c 69 61 73 20 74 79 70 LEAF;..alias typ
9cf0: 65 6f 66 28 26 57 53 41 4c 6f 6f 6b 75 70 53 65 eof(&WSALookupSe
9d00: 72 76 69 63 65 42 65 67 69 6e 41 29 20 4c 50 46 rviceBeginA) LPF
9d10: 4e 5f 57 53 41 4c 4f 4f 4b 55 50 53 45 52 56 49 N_WSALOOKUPSERVI
9d20: 43 45 42 45 47 49 4e 41 3b 0a 09 61 6c 69 61 73 CEBEGINA;..alias
9d30: 20 74 79 70 65 6f 66 28 26 57 53 41 4c 6f 6f 6b typeof(&WSALook
9d40: 75 70 53 65 72 76 69 63 65 42 65 67 69 6e 57 29 upServiceBeginW)
9d50: 20 4c 50 46 4e 5f 57 53 41 4c 4f 4f 4b 55 50 53 LPFN_WSALOOKUPS
9d60: 45 52 56 49 43 45 42 45 47 49 4e 57 3b 0a 09 61 ERVICEBEGINW;..a
9d70: 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 lias typeof(&WSA
9d80: 4c 6f 6f 6b 75 70 53 65 72 76 69 63 65 4e 65 78 LookupServiceNex
9d90: 74 41 29 20 4c 50 46 4e 5f 57 53 41 4c 4f 4f 4b tA) LPFN_WSALOOK
9da0: 55 50 53 45 52 56 49 43 45 4e 45 58 54 41 3b 0a UPSERVICENEXTA;.
9db0: 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 .alias typeof(&W
9dc0: 53 41 4c 6f 6f 6b 75 70 53 65 72 76 69 63 65 4e SALookupServiceN
9dd0: 65 78 74 57 29 20 4c 50 46 4e 5f 57 53 41 4c 4f extW) LPFN_WSALO
9de0: 4f 4b 55 50 53 45 52 56 49 43 45 4e 45 58 54 57 OKUPSERVICENEXTW
9df0: 3b 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 ;..alias typeof(
9e00: 26 57 53 41 4c 6f 6f 6b 75 70 53 65 72 76 69 63 &WSALookupServic
9e10: 65 45 6e 64 29 20 4c 50 46 4e 5f 57 53 41 4c 4f eEnd) LPFN_WSALO
9e20: 4f 4b 55 50 53 45 52 56 49 43 45 45 4e 44 3b 0a OKUPSERVICEEND;.
9e30: 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 .alias typeof(&W
9e40: 53 41 4e 53 50 49 6f 63 74 6c 29 20 4c 50 46 4e SANSPIoctl) LPFN
9e50: 5f 57 53 41 4e 53 50 49 6f 63 74 6c 3b 0a 09 61 _WSANSPIoctl;..a
9e60: 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 lias typeof(&WSA
9e70: 4e 74 6f 68 6c 29 20 4c 50 46 4e 5f 57 53 41 4e Ntohl) LPFN_WSAN
9e80: 54 4f 48 4c 3b 0a 09 61 6c 69 61 73 20 74 79 70 TOHL;..alias typ
9e90: 65 6f 66 28 26 57 53 41 4e 74 6f 68 73 29 20 4c eof(&WSANtohs) L
9ea0: 50 46 4e 5f 57 53 41 4e 54 4f 48 53 3b 0a 09 61 PFN_WSANTOHS;..a
9eb0: 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 lias typeof(&WSA
9ec0: 52 65 63 76 29 20 4c 50 46 4e 5f 57 53 41 52 45 Recv) LPFN_WSARE
9ed0: 43 56 3b 0a 09 61 6c 69 61 73 20 74 79 70 65 6f CV;..alias typeo
9ee0: 66 28 26 57 53 41 52 65 63 76 44 69 73 63 6f 6e f(&WSARecvDiscon
9ef0: 6e 65 63 74 29 20 4c 50 46 4e 5f 57 53 41 52 45 nect) LPFN_WSARE
9f00: 43 56 44 49 53 43 4f 4e 4e 45 43 54 3b 0a 09 61 CVDISCONNECT;..a
9f10: 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 lias typeof(&WSA
9f20: 52 65 63 76 46 72 6f 6d 29 20 4c 50 46 4e 5f 57 RecvFrom) LPFN_W
9f30: 53 41 52 45 43 56 46 52 4f 4d 3b 0a 09 61 6c 69 SARECVFROM;..ali
9f40: 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 52 65 as typeof(&WSARe
9f50: 6d 6f 76 65 53 65 72 76 69 63 65 43 6c 61 73 73 moveServiceClass
9f60: 29 20 4c 50 46 4e 5f 57 53 41 52 45 4d 4f 56 45 ) LPFN_WSAREMOVE
9f70: 53 45 52 56 49 43 45 43 4c 41 53 53 3b 0a 09 61 SERVICECLASS;..a
9f80: 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 lias typeof(&WSA
9f90: 52 65 73 65 74 45 76 65 6e 74 29 20 4c 50 46 4e ResetEvent) LPFN
9fa0: 5f 57 53 41 52 45 53 45 54 45 56 45 4e 54 3b 0a _WSARESETEVENT;.
9fb0: 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 .alias typeof(&W
9fc0: 53 41 53 65 6e 64 29 20 4c 50 46 4e 5f 57 53 41 SASend) LPFN_WSA
9fd0: 53 45 4e 44 3b 0a 09 61 6c 69 61 73 20 74 79 70 SEND;..alias typ
9fe0: 65 6f 66 28 26 57 53 41 53 65 6e 64 44 69 73 63 eof(&WSASendDisc
9ff0: 6f 6e 6e 65 63 74 29 20 4c 50 46 4e 5f 57 53 41 onnect) LPFN_WSA
a000: 53 45 4e 44 44 49 53 43 4f 4e 4e 45 43 54 3b 0a SENDDISCONNECT;.
a010: 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 .alias typeof(&W
a020: 53 41 53 65 6e 64 54 6f 29 20 4c 50 46 4e 5f 57 SASendTo) LPFN_W
a030: 53 41 53 45 4e 44 54 4f 3b 0a 09 61 6c 69 61 73 SASENDTO;..alias
a040: 20 74 79 70 65 6f 66 28 26 57 53 41 53 65 74 45 typeof(&WSASetE
a050: 76 65 6e 74 29 20 4c 50 46 4e 5f 57 53 41 53 45 vent) LPFN_WSASE
a060: 54 45 56 45 4e 54 3b 0a 09 61 6c 69 61 73 20 74 TEVENT;..alias t
a070: 79 70 65 6f 66 28 26 57 53 41 53 65 74 53 65 72 ypeof(&WSASetSer
a080: 76 69 63 65 41 29 20 4c 50 46 4e 5f 57 53 41 53 viceA) LPFN_WSAS
a090: 45 54 53 45 52 56 49 43 45 41 3b 0a 09 61 6c 69 ETSERVICEA;..ali
a0a0: 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 53 65 as typeof(&WSASe
a0b0: 74 53 65 72 76 69 63 65 57 29 20 4c 50 46 4e 5f tServiceW) LPFN_
a0c0: 57 53 41 53 45 54 53 45 52 56 49 43 45 57 3b 0a WSASETSERVICEW;.
a0d0: 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 .alias typeof(&W
a0e0: 53 41 53 6f 63 6b 65 74 41 29 20 4c 50 46 4e 5f SASocketA) LPFN_
a0f0: 57 53 41 53 4f 43 4b 45 54 41 3b 0a 09 61 6c 69 WSASOCKETA;..ali
a100: 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 53 6f as typeof(&WSASo
a110: 63 6b 65 74 57 29 20 4c 50 46 4e 5f 57 53 41 53 cketW) LPFN_WSAS
a120: 4f 43 4b 45 54 57 3b 0a 09 61 6c 69 61 73 20 74 OCKETW;..alias t
a130: 79 70 65 6f 66 28 26 57 53 41 53 74 72 69 6e 67 ypeof(&WSAString
a140: 54 6f 41 64 64 72 65 73 73 41 29 20 4c 50 46 4e ToAddressA) LPFN
a150: 5f 57 53 41 53 54 52 49 4e 47 54 4f 41 44 44 52 _WSASTRINGTOADDR
a160: 45 53 53 41 3b 0a 09 61 6c 69 61 73 20 74 79 70 ESSA;..alias typ
a170: 65 6f 66 28 26 57 53 41 53 74 72 69 6e 67 54 6f eof(&WSAStringTo
a180: 41 64 64 72 65 73 73 57 29 20 4c 50 46 4e 5f 57 AddressW) LPFN_W
a190: 53 41 53 54 52 49 4e 47 54 4f 41 44 44 52 45 53 SASTRINGTOADDRES
a1a0: 53 57 3b 0a 09 61 6c 69 61 73 20 74 79 70 65 6f SW;..alias typeo
a1b0: 66 28 26 57 53 41 57 61 69 74 46 6f 72 4d 75 6c f(&WSAWaitForMul
a1c0: 74 69 70 6c 65 45 76 65 6e 74 73 29 20 4c 50 46 tipleEvents) LPF
a1d0: 4e 5f 57 53 41 57 41 49 54 46 4f 52 4d 55 4c 54 N_WSAWAITFORMULT
a1e0: 49 50 4c 45 45 56 45 4e 54 53 3b 0a 7d 0a 0a 76 IPLEEVENTS;.}..v
a1f0: 65 72 73 69 6f 6e 28 55 6e 69 63 6f 64 65 29 20 ersion(Unicode)
a200: 7b 0a 09 61 6c 69 61 73 20 4c 50 46 4e 5f 57 53 {..alias LPFN_WS
a210: 41 41 44 44 52 45 53 53 54 4f 53 54 52 49 4e 47 AADDRESSTOSTRING
a220: 57 20 4c 50 46 4e 5f 57 53 41 41 44 44 52 45 53 W LPFN_WSAADDRES
a230: 53 54 4f 53 54 52 49 4e 47 3b 0a 09 61 6c 69 61 STOSTRING;..alia
a240: 73 20 4c 50 46 4e 5f 57 53 41 44 55 50 4c 49 43 s LPFN_WSADUPLIC
a250: 41 54 45 53 4f 43 4b 45 54 57 20 4c 50 46 4e 5f ATESOCKETW LPFN_
a260: 57 53 41 44 55 50 4c 49 43 41 54 45 53 4f 43 4b WSADUPLICATESOCK
a270: 45 54 3b 0a 09 61 6c 69 61 73 20 4c 50 46 4e 5f ET;..alias LPFN_
a280: 57 53 41 45 4e 55 4d 4e 41 4d 45 53 50 41 43 45 WSAENUMNAMESPACE
a290: 50 52 4f 56 49 44 45 52 53 57 20 4c 50 46 4e 5f PROVIDERSW LPFN_
a2a0: 57 53 41 45 4e 55 4d 4e 41 4d 45 53 50 41 43 45 WSAENUMNAMESPACE
a2b0: 50 52 4f 56 49 44 45 52 53 3b 0a 09 61 6c 69 61 PROVIDERS;..alia
a2c0: 73 20 4c 50 46 4e 5f 57 53 41 45 4e 55 4d 50 52 s LPFN_WSAENUMPR
a2d0: 4f 54 4f 43 4f 4c 53 57 20 4c 50 46 4e 5f 57 53 OTOCOLSW LPFN_WS
a2e0: 41 45 4e 55 4d 50 52 4f 54 4f 43 4f 4c 53 3b 0a AENUMPROTOCOLS;.
a2f0: 09 61 6c 69 61 73 20 4c 50 46 4e 5f 57 53 41 47 .alias LPFN_WSAG
a300: 45 54 53 45 52 56 49 43 45 43 4c 41 53 53 49 4e ETSERVICECLASSIN
a310: 46 4f 57 20 4c 50 46 4e 5f 57 53 41 47 45 54 53 FOW LPFN_WSAGETS
a320: 45 52 56 49 43 45 43 4c 41 53 53 49 4e 46 4f 3b ERVICECLASSINFO;
a330: 0a 09 61 6c 69 61 73 20 4c 50 46 4e 5f 57 53 41 ..alias LPFN_WSA
a340: 47 45 54 53 45 52 56 49 43 45 43 4c 41 53 53 4e GETSERVICECLASSN
a350: 41 4d 45 42 59 43 4c 41 53 53 49 44 57 20 4c 50 AMEBYCLASSIDW LP
a360: 46 4e 5f 57 53 41 47 45 54 53 45 52 56 49 43 45 FN_WSAGETSERVICE
a370: 43 4c 41 53 53 4e 41 4d 45 42 59 43 4c 41 53 53 CLASSNAMEBYCLASS
a380: 49 44 3b 0a 09 61 6c 69 61 73 20 4c 50 46 4e 5f ID;..alias LPFN_
a390: 57 53 41 49 4e 53 54 41 4c 4c 53 45 52 56 49 43 WSAINSTALLSERVIC
a3a0: 45 43 4c 41 53 53 57 20 4c 50 46 4e 5f 57 53 41 ECLASSW LPFN_WSA
a3b0: 49 4e 53 54 41 4c 4c 53 45 52 56 49 43 45 43 4c INSTALLSERVICECL
a3c0: 41 53 53 3b 0a 09 61 6c 69 61 73 20 4c 50 46 4e ASS;..alias LPFN
a3d0: 5f 57 53 41 4c 4f 4f 4b 55 50 53 45 52 56 49 43 _WSALOOKUPSERVIC
a3e0: 45 42 45 47 49 4e 57 20 4c 50 46 4e 5f 57 53 41 EBEGINW LPFN_WSA
a3f0: 4c 4f 4f 4b 55 50 53 45 52 56 49 43 45 42 45 47 LOOKUPSERVICEBEG
a400: 49 4e 3b 0a 09 61 6c 69 61 73 20 4c 50 46 4e 5f IN;..alias LPFN_
a410: 57 53 41 4c 4f 4f 4b 55 50 53 45 52 56 49 43 45 WSALOOKUPSERVICE
a420: 4e 45 58 54 57 20 4c 50 46 4e 5f 57 53 41 4c 4f NEXTW LPFN_WSALO
a430: 4f 4b 55 50 53 45 52 56 49 43 45 4e 45 58 54 3b OKUPSERVICENEXT;
a440: 0a 09 61 6c 69 61 73 20 4c 50 46 4e 5f 57 53 41 ..alias LPFN_WSA
a450: 53 45 54 53 45 52 56 49 43 45 57 20 4c 50 46 4e SETSERVICEW LPFN
a460: 5f 57 53 41 53 45 54 53 45 52 56 49 43 45 3b 0a _WSASETSERVICE;.
a470: 09 61 6c 69 61 73 20 4c 50 46 4e 5f 57 53 41 53 .alias LPFN_WSAS
a480: 4f 43 4b 45 54 57 20 4c 50 46 4e 5f 57 53 41 53 OCKETW LPFN_WSAS
a490: 4f 43 4b 45 54 3b 0a 09 61 6c 69 61 73 20 4c 50 OCKET;..alias LP
a4a0: 46 4e 5f 57 53 41 53 54 52 49 4e 47 54 4f 41 44 FN_WSASTRINGTOAD
a4b0: 44 52 45 53 53 57 20 4c 50 46 4e 5f 57 53 41 53 DRESSW LPFN_WSAS
a4c0: 54 52 49 4e 47 54 4f 41 44 44 52 45 53 53 3b 0a TRINGTOADDRESS;.
a4d0: 09 61 6c 69 61 73 20 57 53 41 41 64 64 72 65 73 .alias WSAAddres
a4e0: 73 54 6f 53 74 72 69 6e 67 57 20 57 53 41 41 64 sToStringW WSAAd
a4f0: 64 72 65 73 73 54 6f 53 74 72 69 6e 67 3b 0a 09 dressToString;..
a500: 61 6c 69 61 73 20 57 53 41 44 75 70 6c 69 63 61 alias WSADuplica
a510: 74 65 53 6f 63 6b 65 74 57 20 57 53 41 44 75 70 teSocketW WSADup
a520: 6c 69 63 61 74 65 53 6f 63 6b 65 74 3b 0a 09 61 licateSocket;..a
a530: 6c 69 61 73 20 57 53 41 45 6e 75 6d 4e 61 6d 65 lias WSAEnumName
a540: 53 70 61 63 65 50 72 6f 76 69 64 65 72 73 57 20 SpaceProvidersW
a550: 57 53 41 45 6e 75 6d 4e 61 6d 65 53 70 61 63 65 WSAEnumNameSpace
a560: 50 72 6f 76 69 64 65 72 73 3b 0a 09 61 6c 69 61 Providers;..alia
a570: 73 20 57 53 41 45 6e 75 6d 50 72 6f 74 6f 63 6f s WSAEnumProtoco
a580: 6c 73 57 20 57 53 41 45 6e 75 6d 50 72 6f 74 6f lsW WSAEnumProto
a590: 63 6f 6c 73 3b 0a 09 61 6c 69 61 73 20 57 53 41 cols;..alias WSA
a5a0: 47 65 74 53 65 72 76 69 63 65 43 6c 61 73 73 49 GetServiceClassI
a5b0: 6e 66 6f 57 20 57 53 41 47 65 74 53 65 72 76 69 nfoW WSAGetServi
a5c0: 63 65 43 6c 61 73 73 49 6e 66 6f 3b 0a 09 61 6c ceClassInfo;..al
a5d0: 69 61 73 20 57 53 41 47 65 74 53 65 72 76 69 63 ias WSAGetServic
a5e0: 65 43 6c 61 73 73 4e 61 6d 65 42 79 43 6c 61 73 eClassNameByClas
a5f0: 73 49 64 57 20 57 53 41 47 65 74 53 65 72 76 69 sIdW WSAGetServi
a600: 63 65 43 6c 61 73 73 4e 61 6d 65 42 79 43 6c 61 ceClassNameByCla
a610: 73 73 49 64 3b 0a 09 61 6c 69 61 73 20 57 53 41 ssId;..alias WSA
a620: 53 65 74 53 65 72 76 69 63 65 57 20 57 53 41 53 SetServiceW WSAS
a630: 65 74 53 65 72 76 69 63 65 3b 0a 09 61 6c 69 61 etService;..alia
a640: 73 20 57 53 41 53 6f 63 6b 65 74 57 20 57 53 41 s WSASocketW WSA
a650: 53 6f 63 6b 65 74 3b 0a 09 61 6c 69 61 73 20 57 Socket;..alias W
a660: 53 41 53 74 72 69 6e 67 54 6f 41 64 64 72 65 73 SAStringToAddres
a670: 73 57 20 57 53 41 53 74 72 69 6e 67 54 6f 41 64 sW WSAStringToAd
a680: 64 72 65 73 73 3b 0a 09 61 6c 69 61 73 20 57 53 dress;..alias WS
a690: 41 4c 6f 6f 6b 75 70 53 65 72 76 69 63 65 42 65 ALookupServiceBe
a6a0: 67 69 6e 57 20 57 53 41 4c 6f 6f 6b 75 70 53 65 ginW WSALookupSe
a6b0: 72 76 69 63 65 42 65 67 69 6e 3b 0a 09 61 6c 69 rviceBegin;..ali
a6c0: 61 73 20 57 53 41 4c 6f 6f 6b 75 70 53 65 72 76 as WSALookupServ
a6d0: 69 63 65 4e 65 78 74 57 20 57 53 41 4c 6f 6f 6b iceNextW WSALook
a6e0: 75 70 53 65 72 76 69 63 65 4e 65 78 74 3b 0a 09 upServiceNext;..
a6f0: 61 6c 69 61 73 20 57 53 41 49 6e 73 74 61 6c 6c alias WSAInstall
a700: 53 65 72 76 69 63 65 43 6c 61 73 73 57 20 57 53 ServiceClassW WS
a710: 41 49 6e 73 74 61 6c 6c 53 65 72 76 69 63 65 43 AInstallServiceC
a720: 6c 61 73 73 3b 0a 7d 20 65 6c 73 65 20 7b 0a 09 lass;.} else {..
a730: 61 6c 69 61 73 20 4c 50 46 4e 5f 57 53 41 41 44 alias LPFN_WSAAD
a740: 44 52 45 53 53 54 4f 53 54 52 49 4e 47 41 20 4c DRESSTOSTRINGA L
a750: 50 46 4e 5f 57 53 41 41 44 44 52 45 53 53 54 4f PFN_WSAADDRESSTO
a760: 53 54 52 49 4e 47 3b 0a 09 61 6c 69 61 73 20 4c STRING;..alias L
a770: 50 46 4e 5f 57 53 41 44 55 50 4c 49 43 41 54 45 PFN_WSADUPLICATE
a780: 53 4f 43 4b 45 54 57 20 4c 50 46 4e 5f 57 53 41 SOCKETW LPFN_WSA
a790: 44 55 50 4c 49 43 41 54 45 53 4f 43 4b 45 54 3b DUPLICATESOCKET;
a7a0: 0a 09 61 6c 69 61 73 20 4c 50 46 4e 5f 57 53 41 ..alias LPFN_WSA
a7b0: 45 4e 55 4d 4e 41 4d 45 53 50 41 43 45 50 52 4f ENUMNAMESPACEPRO
a7c0: 56 49 44 45 52 53 41 20 4c 50 46 4e 5f 57 53 41 VIDERSA LPFN_WSA
a7d0: 45 4e 55 4d 4e 41 4d 45 53 50 41 43 45 50 52 4f ENUMNAMESPACEPRO
a7e0: 56 49 44 45 52 53 3b 0a 09 61 6c 69 61 73 20 4c VIDERS;..alias L
a7f0: 50 46 4e 5f 57 53 41 45 4e 55 4d 50 52 4f 54 4f PFN_WSAENUMPROTO
a800: 43 4f 4c 53 41 20 4c 50 46 4e 5f 57 53 41 45 4e COLSA LPFN_WSAEN
a810: 55 4d 50 52 4f 54 4f 43 4f 4c 53 3b 0a 09 61 6c UMPROTOCOLS;..al
a820: 69 61 73 20 4c 50 46 4e 5f 57 53 41 47 45 54 53 ias LPFN_WSAGETS
a830: 45 52 56 49 43 45 43 4c 41 53 53 49 4e 46 4f 41 ERVICECLASSINFOA
a840: 20 4c 50 46 4e 5f 57 53 41 47 45 54 53 45 52 56 LPFN_WSAGETSERV
a850: 49 43 45 43 4c 41 53 53 49 4e 46 4f 3b 0a 09 61 ICECLASSINFO;..a
a860: 6c 69 61 73 20 4c 50 46 4e 5f 57 53 41 47 45 54 lias LPFN_WSAGET
a870: 53 45 52 56 49 43 45 43 4c 41 53 53 4e 41 4d 45 SERVICECLASSNAME
a880: 42 59 43 4c 41 53 53 49 44 41 20 4c 50 46 4e 5f BYCLASSIDA LPFN_
a890: 57 53 41 47 45 54 53 45 52 56 49 43 45 43 4c 41 WSAGETSERVICECLA
a8a0: 53 53 4e 41 4d 45 42 59 43 4c 41 53 53 49 44 3b SSNAMEBYCLASSID;
a8b0: 0a 09 61 6c 69 61 73 20 4c 50 46 4e 5f 57 53 41 ..alias LPFN_WSA
a8c0: 49 4e 53 54 41 4c 4c 53 45 52 56 49 43 45 43 4c INSTALLSERVICECL
a8d0: 41 53 53 41 20 4c 50 46 4e 5f 57 53 41 49 4e 53 ASSA LPFN_WSAINS
a8e0: 54 41 4c 4c 53 45 52 56 49 43 45 43 4c 41 53 53 TALLSERVICECLASS
a8f0: 3b 0a 09 61 6c 69 61 73 20 4c 50 46 4e 5f 57 53 ;..alias LPFN_WS
a900: 41 4c 4f 4f 4b 55 50 53 45 52 56 49 43 45 42 45 ALOOKUPSERVICEBE
a910: 47 49 4e 41 20 4c 50 46 4e 5f 57 53 41 4c 4f 4f GINA LPFN_WSALOO
a920: 4b 55 50 53 45 52 56 49 43 45 42 45 47 49 4e 3b KUPSERVICEBEGIN;
a930: 0a 09 61 6c 69 61 73 20 4c 50 46 4e 5f 57 53 41 ..alias LPFN_WSA
a940: 4c 4f 4f 4b 55 50 53 45 52 56 49 43 45 4e 45 58 LOOKUPSERVICENEX
a950: 54 41 20 4c 50 46 4e 5f 57 53 41 4c 4f 4f 4b 55 TA LPFN_WSALOOKU
a960: 50 53 45 52 56 49 43 45 4e 45 58 54 3b 0a 09 61 PSERVICENEXT;..a
a970: 6c 69 61 73 20 4c 50 46 4e 5f 57 53 41 53 45 54 lias LPFN_WSASET
a980: 53 45 52 56 49 43 45 41 20 4c 50 46 4e 5f 57 53 SERVICEA LPFN_WS
a990: 41 53 45 54 53 45 52 56 49 43 45 3b 0a 09 61 6c ASETSERVICE;..al
a9a0: 69 61 73 20 4c 50 46 4e 5f 57 53 41 53 4f 43 4b ias LPFN_WSASOCK
a9b0: 45 54 41 20 4c 50 46 4e 5f 57 53 41 53 4f 43 4b ETA LPFN_WSASOCK
a9c0: 45 54 3b 0a 09 61 6c 69 61 73 20 4c 50 46 4e 5f ET;..alias LPFN_
a9d0: 57 53 41 53 54 52 49 4e 47 54 4f 41 44 44 52 45 WSASTRINGTOADDRE
a9e0: 53 53 41 20 4c 50 46 4e 5f 57 53 41 53 54 52 49 SSA LPFN_WSASTRI
a9f0: 4e 47 54 4f 41 44 44 52 45 53 53 3b 0a 09 61 6c NGTOADDRESS;..al
aa00: 69 61 73 20 57 53 41 41 64 64 72 65 73 73 54 6f ias WSAAddressTo
aa10: 53 74 72 69 6e 67 41 20 57 53 41 41 64 64 72 65 StringA WSAAddre
aa20: 73 73 54 6f 53 74 72 69 6e 67 3b 0a 09 61 6c 69 ssToString;..ali
aa30: 61 73 20 57 53 41 44 75 70 6c 69 63 61 74 65 53 as WSADuplicateS
aa40: 6f 63 6b 65 74 41 20 57 53 41 44 75 70 6c 69 63 ocketA WSADuplic
aa50: 61 74 65 53 6f 63 6b 65 74 3b 0a 09 61 6c 69 61 ateSocket;..alia
aa60: 73 20 57 53 41 45 6e 75 6d 4e 61 6d 65 53 70 61 s WSAEnumNameSpa
aa70: 63 65 50 72 6f 76 69 64 65 72 73 41 20 57 53 41 ceProvidersA WSA
aa80: 45 6e 75 6d 4e 61 6d 65 53 70 61 63 65 50 72 6f EnumNameSpacePro
aa90: 76 69 64 65 72 73 3b 0a 09 61 6c 69 61 73 20 57 viders;..alias W
aaa0: 53 41 45 6e 75 6d 50 72 6f 74 6f 63 6f 6c 73 41 SAEnumProtocolsA
aab0: 20 57 53 41 45 6e 75 6d 50 72 6f 74 6f 63 6f 6c WSAEnumProtocol
aac0: 73 3b 0a 09 61 6c 69 61 73 20 57 53 41 47 65 74 s;..alias WSAGet
aad0: 53 65 72 76 69 63 65 43 6c 61 73 73 49 6e 66 6f ServiceClassInfo
aae0: 41 20 57 53 41 47 65 74 53 65 72 76 69 63 65 43 A WSAGetServiceC
aaf0: 6c 61 73 73 49 6e 66 6f 3b 0a 09 61 6c 69 61 73 lassInfo;..alias
ab00: 20 57 53 41 47 65 74 53 65 72 76 69 63 65 43 6c WSAGetServiceCl
ab10: 61 73 73 4e 61 6d 65 42 79 43 6c 61 73 73 49 64 assNameByClassId
ab20: 41 20 57 53 41 47 65 74 53 65 72 76 69 63 65 43 A WSAGetServiceC
ab30: 6c 61 73 73 4e 61 6d 65 42 79 43 6c 61 73 73 49 lassNameByClassI
ab40: 64 3b 0a 09 61 6c 69 61 73 20 57 53 41 49 6e 73 d;..alias WSAIns
ab50: 74 61 6c 6c 53 65 72 76 69 63 65 43 6c 61 73 73 tallServiceClass
ab60: 41 20 57 53 41 49 6e 73 74 61 6c 6c 53 65 72 76 A WSAInstallServ
ab70: 69 63 65 43 6c 61 73 73 3b 0a 09 61 6c 69 61 73 iceClass;..alias
ab80: 20 57 53 41 4c 6f 6f 6b 75 70 53 65 72 76 69 63 WSALookupServic
ab90: 65 42 65 67 69 6e 41 20 57 53 41 4c 6f 6f 6b 75 eBeginA WSALooku
aba0: 70 53 65 72 76 69 63 65 42 65 67 69 6e 3b 0a 09 pServiceBegin;..
abb0: 61 6c 69 61 73 20 57 53 41 4c 6f 6f 6b 75 70 53 alias WSALookupS
abc0: 65 72 76 69 63 65 4e 65 78 74 41 20 57 53 41 4c erviceNextA WSAL
abd0: 6f 6f 6b 75 70 53 65 72 76 69 63 65 4e 65 78 74 ookupServiceNext
abe0: 3b 0a 09 61 6c 69 61 73 20 57 53 41 53 6f 63 6b ;..alias WSASock
abf0: 65 74 41 20 57 53 41 53 6f 63 6b 65 74 3b 0a 09 etA WSASocket;..
ac00: 61 6c 69 61 73 20 57 53 41 53 74 72 69 6e 67 54 alias WSAStringT
ac10: 6f 41 64 64 72 65 73 73 41 20 57 53 41 53 74 72 oAddressA WSAStr
ac20: 69 6e 67 54 6f 41 64 64 72 65 73 73 3b 0a 09 61 ingToAddress;..a
ac30: 6c 69 61 73 20 57 53 41 53 65 74 53 65 72 76 69 lias WSASetServi
ac40: 63 65 41 20 57 53 41 53 65 74 53 65 72 76 69 63 ceA WSASetServic
ac50: 65 3b 0a 7d 0a e;.}.