Artifact 96d84048875125a509f734f9a0ebafa1a43ba9f2:
- File
src/win32/winsock2.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
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 0d 0a 2a 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 20 77 69 6e 73 6f 63 winsoc
0070: 6b 32 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 k2.d
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0090: 20 20 20 2a 0d 0a 2a 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 20 20 2a 0d *.
00e0: 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .*
00f0: 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77 73 Windows
0100: 20 41 50 49 20 68 65 61 64 65 72 20 6d 6f 64 75 API header modu
0110: 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le
0120: 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 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: 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 *..*
0180: 20 20 20 20 20 20 20 20 20 54 72 61 6e 73 6c 61 Transla
0190: 74 65 64 20 66 72 6f 6d 20 4d 69 6e 47 57 20 57 ted from MinGW W
01a0: 69 6e 64 6f 77 73 20 68 65 61 64 65 72 73 20 20 indows headers
01b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a *
01c0: 0d 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..*
01d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01e0: 62 79 20 44 61 6e 69 65 6c 20 4b 65 65 70 20 20 by Daniel Keep
01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0200: 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 5c 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 2a 2a ****************
0250: 2a 2a 2a 2a 2a 2f 0d 0a 6d 6f 64 75 6c 65 20 77 *****/..module w
0260: 69 6e 33 32 2e 77 69 6e 73 6f 63 6b 32 3b 0d 0a in32.winsock2;..
0270: 70 72 61 67 6d 61 28 6c 69 62 2c 20 22 57 73 32 pragma(lib, "Ws2
0280: 5f 33 32 22 29 3b 0d 0a 0d 0a 2f 2a 0d 0a 20 20 _32");..../*..
0290: 44 65 66 69 6e 69 74 69 6f 6e 73 20 66 6f 72 20 Definitions for
02a0: 77 69 6e 73 6f 63 6b 20 32 0d 0a 0d 0a 20 20 43 winsock 2.... C
02b0: 6f 6e 74 72 69 62 75 74 65 64 20 62 79 20 74 68 ontributed by th
02c0: 65 20 57 49 4e 45 20 70 72 6f 6a 65 63 74 2e 0d e WINE project..
02d0: 0a 0d 0a 20 20 50 6f 72 74 69 6f 6e 73 20 43 6f ... Portions Co
02e0: 70 79 72 69 67 68 74 20 28 63 29 20 31 39 38 30 pyright (c) 1980
02f0: 2c 20 31 39 38 33 2c 20 31 39 38 38 2c 20 31 39 , 1983, 1988, 19
0300: 39 33 0d 0a 20 20 54 68 65 20 52 65 67 65 6e 74 93.. The Regent
0310: 73 20 6f 66 20 74 68 65 20 55 6e 69 76 65 72 73 s of the Univers
0320: 69 74 79 20 6f 66 20 43 61 6c 69 66 6f 72 6e 69 ity of Californi
0330: 61 2e 20 20 41 6c 6c 20 72 69 67 68 74 73 20 72 a. All rights r
0340: 65 73 65 72 76 65 64 2e 0d 0a 0d 0a 20 20 50 6f eserved..... Po
0350: 72 74 69 6f 6e 73 20 43 6f 70 79 72 69 67 68 74 rtions Copyright
0360: 20 28 63 29 20 31 39 39 33 20 62 79 20 44 69 67 (c) 1993 by Dig
0370: 69 74 61 6c 20 45 71 75 69 70 6d 65 6e 74 20 43 ital Equipment C
0380: 6f 72 70 6f 72 61 74 69 6f 6e 2e 0d 0a 20 2a 2f orporation... */
0390: 0d 0a 0d 0a 2f 2a 09 44 52 4b 3a 20 54 68 69 73 ..../*.DRK: This
03a0: 20 6d 6f 64 75 6c 65 20 73 68 6f 75 6c 64 20 6e module should n
03b0: 6f 74 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 ot be included i
03c0: 66 20 2d 76 65 72 73 69 6f 6e 3d 57 69 6e 33 32 f -version=Win32
03d0: 5f 57 69 6e 73 6f 63 6b 32 20 68 61 73 0d 0a 20 _Winsock2 has..
03e0: 2a 09 6e 6f 74 20 62 65 65 6e 20 73 65 74 2e 20 *.not been set.
03f0: 20 49 66 20 69 74 20 68 61 73 2c 20 61 73 73 65 If it has, asse
0400: 72 74 2e 20 20 49 20 74 68 69 6e 6b 20 69 74 27 rt. I think it'
0410: 73 20 62 65 74 74 65 72 20 74 68 69 73 20 77 61 s better this wa
0420: 79 20 74 68 61 6e 0d 0a 20 2a 09 6c 65 74 74 69 y than.. *.letti
0430: 6e 67 20 74 68 65 20 75 73 65 72 20 62 65 6c 69 ng the user beli
0440: 65 76 65 20 74 68 61 74 20 69 74 27 73 20 77 6f eve that it's wo
0450: 72 6b 65 64 2e 0d 0a 20 2a 0d 0a 20 2a 09 53 47 rked... *.. *.SG
0460: 3a 20 49 74 20 68 61 73 20 6e 6f 77 20 62 65 65 : It has now bee
0470: 6e 20 63 68 61 6e 67 65 64 20 73 6f 20 74 68 61 n changed so tha
0480: 74 20 77 69 6e 73 6f 63 6b 32 20 69 73 20 74 68 t winsock2 is th
0490: 65 20 64 65 66 61 75 6c 74 2c 20 61 6e 64 0d 0a e default, and..
04a0: 20 2a 09 2d 76 65 72 73 69 6f 6e 3d 57 69 6e 33 *.-version=Win3
04b0: 32 5f 57 69 6e 73 6f 63 6b 31 20 6d 75 73 74 20 2_Winsock1 must
04c0: 62 65 20 73 65 74 20 74 6f 20 75 73 65 20 77 69 be set to use wi
04d0: 6e 73 6f 63 6b 2e 0d 0a 20 2a 2f 0d 0a 76 65 72 nsock... */..ver
04e0: 73 69 6f 6e 28 57 69 6e 33 32 5f 57 69 6e 73 6f sion(Win32_Winso
04f0: 63 6b 31 29 20 7b 0d 0a 09 70 72 61 67 6d 61 28 ck1) {...pragma(
0500: 6d 73 67 2c 20 22 43 61 6e 6e 6f 74 20 75 73 65 msg, "Cannot use
0510: 20 77 69 6e 33 32 2e 77 69 6e 73 6f 63 6b 32 20 win32.winsock2
0520: 77 69 74 68 20 57 69 6e 33 32 5f 57 69 6e 73 6f with Win32_Winso
0530: 63 6b 31 20 64 65 66 69 6e 65 64 2e 22 29 3b 0d ck1 defined.");.
0540: 0a 09 73 74 61 74 69 63 20 61 73 73 65 72 74 28 ..static assert(
0550: 66 61 6c 73 65 29 3b 0d 0a 7d 0d 0a 0d 0a 69 6d false);..}....im
0560: 70 6f 72 74 20 77 69 6e 33 32 2e 77 69 6e 62 61 port win32.winba
0570: 73 65 3b 0d 0a 69 6d 70 6f 72 74 20 77 69 6e 33 se;..import win3
0580: 32 2e 77 69 6e 64 65 66 3b 0d 0a 69 6d 70 6f 72 2.windef;..impor
0590: 74 20 77 69 6e 33 32 2e 62 61 73 65 74 79 70 73 t win32.basetyps
05a0: 3b 0d 0a 0d 0a 61 6c 69 61 73 20 63 68 61 72 20 ;....alias char
05b0: 75 5f 63 68 61 72 3b 0d 0a 61 6c 69 61 73 20 75 u_char;..alias u
05c0: 73 68 6f 72 74 20 75 5f 73 68 6f 72 74 3b 0d 0a short u_short;..
05d0: 61 6c 69 61 73 20 75 69 6e 74 20 75 5f 69 6e 74 alias uint u_int
05e0: 2c 20 75 5f 6c 6f 6e 67 2c 20 53 4f 43 4b 45 54 , u_long, SOCKET
05f0: 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 73 69 7a 65 5f ;....const size_
0600: 74 20 46 44 5f 53 45 54 53 49 5a 45 20 3d 20 36 t FD_SETSIZE = 6
0610: 34 3b 0d 0a 0d 0a 2f 2a 20 73 68 75 74 64 6f 77 4;..../* shutdow
0620: 6e 28 29 20 68 6f 77 20 74 79 70 65 73 20 2a 2f n() how types */
0630: 0d 0a 65 6e 75 6d 20 3a 20 69 6e 74 20 7b 0d 0a ..enum : int {..
0640: 09 53 44 5f 52 45 43 45 49 56 45 2c 0d 0a 09 53 .SD_RECEIVE,...S
0650: 44 5f 53 45 4e 44 2c 0d 0a 09 53 44 5f 42 4f 54 D_SEND,...SD_BOT
0660: 48 0d 0a 7d 0d 0a 0d 0a 2f 2a 20 47 6f 6f 64 20 H..}..../* Good
0670: 67 72 69 65 66 20 74 68 69 73 20 69 73 20 73 74 grief this is st
0680: 75 70 69 64 2e 2e 2e 20 69 73 20 69 74 20 61 20 upid... is it a
0690: 73 74 72 75 63 74 3f 20 20 41 20 70 72 65 70 72 struct? A prepr
06a0: 6f 63 65 73 73 6f 72 20 6d 61 63 72 6f 3f 20 20 ocessor macro?
06b0: 41 0d 0a 20 20 20 73 74 72 75 63 74 20 74 61 67 A.. struct tag
06c0: 3f 20 20 57 68 6f 20 74 68 65 20 68 65 6c 6c 20 ? Who the hell
06d0: 6b 6e 6f 77 73 21 3f 20 2a 2f 0d 0a 73 74 72 75 knows!? */..stru
06e0: 63 74 20 46 44 5f 53 45 54 20 7b 0d 0a 09 75 5f ct FD_SET {...u_
06f0: 69 6e 74 20 20 20 20 20 20 20 20 20 20 20 20 20 int
0700: 20 20 66 64 5f 63 6f 75 6e 74 3b 0d 0a 09 53 4f fd_count;...SO
0710: 43 4b 45 54 5b 46 44 5f 53 45 54 53 49 5a 45 5d CKET[FD_SETSIZE]
0720: 20 20 66 64 5f 61 72 72 61 79 3b 0d 0a 0d 0a 09 fd_array;.....
0730: 2f 2a 20 74 68 69 73 20 64 69 66 66 65 72 73 20 /* this differs
0740: 66 72 6f 6d 20 74 68 65 20 64 65 66 69 6e 65 20 from the define
0750: 69 6e 20 77 69 6e 73 6f 63 6b 2e 68 20 61 6e 64 in winsock.h and
0760: 20 69 6e 20 63 79 67 77 69 6e 20 73 79 73 2f 74 in cygwin sys/t
0770: 79 70 65 73 2e 68 20 2a 2f 0d 0a 09 73 74 61 74 ypes.h */...stat
0780: 69 63 20 76 6f 69 64 20 6f 70 43 61 6c 6c 28 53 ic void opCall(S
0790: 4f 43 4b 45 54 20 66 64 2c 20 46 44 5f 53 45 54 OCKET fd, FD_SET
07a0: 20 73 65 74 29 20 7b 0d 0a 09 09 75 5f 69 6e 74 set) {....u_int
07b0: 20 69 3b 0d 0a 09 09 66 6f 72 20 28 69 20 3d 20 i;....for (i =
07c0: 30 3b 20 69 20 3c 20 73 65 74 2e 66 64 5f 63 6f 0; i < set.fd_co
07d0: 75 6e 74 3b 20 69 2b 2b 29 0d 0a 09 09 09 69 66 unt; i++).....if
07e0: 20 28 73 65 74 2e 66 64 5f 61 72 72 61 79 5b 69 (set.fd_array[i
07f0: 5d 20 3d 3d 20 66 64 29 0d 0a 09 09 09 09 62 72 ] == fd)......br
0800: 65 61 6b 3b 0d 0a 09 09 69 66 20 28 69 20 3d 3d eak;....if (i ==
0810: 20 73 65 74 2e 66 64 5f 63 6f 75 6e 74 29 0d 0a set.fd_count)..
0820: 09 09 09 69 66 20 28 73 65 74 2e 66 64 5f 63 6f ...if (set.fd_co
0830: 75 6e 74 20 3c 20 46 44 5f 53 45 54 53 49 5a 45 unt < FD_SETSIZE
0840: 29 20 7b 0d 0a 09 09 09 09 73 65 74 2e 66 64 5f ) {......set.fd_
0850: 61 72 72 61 79 5b 69 5d 20 3d 20 66 64 3b 0d 0a array[i] = fd;..
0860: 09 09 09 09 73 65 74 2e 66 64 5f 63 6f 75 6e 74 ....set.fd_count
0870: 2b 2b 3b 0d 0a 09 09 09 7d 0d 0a 09 7d 0d 0a 7d ++;.....}...}..}
0880: 0d 0a 61 6c 69 61 73 20 46 44 5f 53 45 54 2a 20 ..alias FD_SET*
0890: 50 46 44 5f 53 45 54 2c 20 4c 50 46 44 5f 53 45 PFD_SET, LPFD_SE
08a0: 54 3b 0d 0a 0d 0a 2f 2f 20 4b 65 65 70 20 74 68 T;....// Keep th
08b0: 69 73 20 61 6c 69 61 73 2c 20 73 69 6e 63 65 20 is alias, since
08c0: 66 64 5f 73 65 74 20 69 73 6e 27 74 20 61 20 74 fd_set isn't a t
08d0: 61 67 20 6e 61 6d 65 20 69 6e 20 74 68 65 20 6f ag name in the o
08e0: 72 69 67 69 6e 61 6c 20 68 65 61 64 65 72 2e 0d riginal header..
08f0: 0a 61 6c 69 61 73 20 46 44 5f 53 45 54 20 66 64 .alias FD_SET fd
0900: 5f 73 65 74 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 _set;....extern(
0910: 57 69 6e 64 6f 77 73 29 20 69 6e 74 20 5f 5f 57 Windows) int __W
0920: 53 41 46 44 49 73 53 65 74 28 53 4f 43 4b 45 54 SAFDIsSet(SOCKET
0930: 2c 20 46 44 5f 53 45 54 2a 29 3b 0d 0a 61 6c 69 , FD_SET*);..ali
0940: 61 73 20 5f 5f 57 53 41 46 44 49 73 53 65 74 20 as __WSAFDIsSet
0950: 46 44 5f 49 53 53 45 54 3b 0d 0a 0d 0a 76 6f 69 FD_ISSET;....voi
0960: 64 20 46 44 5f 43 4c 52 28 53 4f 43 4b 45 54 20 d FD_CLR(SOCKET
0970: 66 64 2c 20 46 44 5f 53 45 54 2a 20 73 65 74 29 fd, FD_SET* set)
0980: 20 7b 0d 0a 09 66 6f 72 20 28 75 5f 69 6e 74 20 {...for (u_int
0990: 69 20 3d 20 30 3b 20 69 20 3c 20 73 65 74 2e 66 i = 0; i < set.f
09a0: 64 5f 63 6f 75 6e 74 3b 20 69 2b 2b 29 20 7b 0d d_count; i++) {.
09b0: 0a 09 09 69 66 20 28 73 65 74 2e 66 64 5f 61 72 ...if (set.fd_ar
09c0: 72 61 79 5b 69 5d 20 3d 3d 20 66 64 29 20 7b 0d ray[i] == fd) {.
09d0: 0a 09 09 09 77 68 69 6c 65 20 28 69 20 3c 20 73 ....while (i < s
09e0: 65 74 2e 66 64 5f 63 6f 75 6e 74 20 2d 20 31 29 et.fd_count - 1)
09f0: 20 7b 0d 0a 09 09 09 09 73 65 74 2e 66 64 5f 61 {......set.fd_a
0a00: 72 72 61 79 5b 69 5d 20 3d 20 73 65 74 2e 66 64 rray[i] = set.fd
0a10: 5f 61 72 72 61 79 5b 69 2b 31 5d 3b 0d 0a 09 09 _array[i+1];....
0a20: 09 09 69 2b 2b 3b 0d 0a 09 09 09 7d 0d 0a 09 09 ..i++;.....}....
0a30: 09 73 65 74 2e 66 64 5f 63 6f 75 6e 74 2d 2d 3b .set.fd_count--;
0a40: 0d 0a 09 09 09 62 72 65 61 6b 3b 0d 0a 09 09 7d .....break;....}
0a50: 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 ...}..}....void
0a60: 46 44 5f 5a 45 52 4f 28 46 44 5f 53 45 54 2a 20 FD_ZERO(FD_SET*
0a70: 73 65 74 29 20 7b 0d 0a 09 73 65 74 2e 66 64 5f set) {...set.fd_
0a80: 63 6f 75 6e 74 20 3d 20 30 3b 0d 0a 7d 0d 0a 0d count = 0;..}...
0a90: 0a 0d 0a 73 74 72 75 63 74 20 54 49 4d 45 56 41 ...struct TIMEVA
0aa0: 4c 20 7b 0d 0a 09 69 6e 74 20 74 76 5f 73 65 63 L {...int tv_sec
0ab0: 3b 0d 0a 09 69 6e 74 20 74 76 5f 75 73 65 63 3b ;...int tv_usec;
0ac0: 0d 0a 0d 0a 09 69 6e 74 20 6f 70 43 6d 70 28 54 .....int opCmp(T
0ad0: 49 4d 45 56 41 4c 20 74 76 29 20 7b 0d 0a 09 09 IMEVAL tv) {....
0ae0: 69 66 20 28 74 76 5f 73 65 63 20 3c 20 74 76 2e if (tv_sec < tv.
0af0: 74 76 5f 73 65 63 29 20 20 20 72 65 74 75 72 6e tv_sec) return
0b00: 20 2d 31 3b 0d 0a 09 09 69 66 20 28 74 76 5f 73 -1;....if (tv_s
0b10: 65 63 20 3e 20 74 76 2e 74 76 5f 73 65 63 29 20 ec > tv.tv_sec)
0b20: 20 20 72 65 74 75 72 6e 20 20 31 3b 0d 0a 09 09 return 1;....
0b30: 69 66 20 28 74 76 5f 75 73 65 63 20 3c 20 74 76 if (tv_usec < tv
0b40: 2e 74 76 5f 75 73 65 63 29 20 72 65 74 75 72 6e .tv_usec) return
0b50: 20 2d 31 3b 0d 0a 09 09 69 66 20 28 74 76 5f 75 -1;....if (tv_u
0b60: 73 65 63 20 3e 20 74 76 2e 74 76 5f 75 73 65 63 sec > tv.tv_usec
0b70: 29 20 72 65 74 75 72 6e 20 20 31 3b 0d 0a 09 09 ) return 1;....
0b80: 72 65 74 75 72 6e 20 30 3b 0d 0a 09 7d 0d 0a 7d return 0;...}..}
0b90: 0d 0a 61 6c 69 61 73 20 54 49 4d 45 56 41 4c 2a ..alias TIMEVAL*
0ba0: 20 50 54 49 4d 45 56 41 4c 2c 20 4c 50 54 49 4d PTIMEVAL, LPTIM
0bb0: 45 56 41 4c 3b 0d 0a 0d 0a 62 6f 6f 6c 20 74 69 EVAL;....bool ti
0bc0: 6d 65 72 69 73 73 65 74 28 54 49 4d 45 56 41 4c merisset(TIMEVAL
0bd0: 2a 20 74 76 70 29 20 7b 0d 0a 09 72 65 74 75 72 * tvp) {...retur
0be0: 6e 20 74 76 70 2e 74 76 5f 73 65 63 20 7c 7c 20 n tvp.tv_sec ||
0bf0: 74 76 70 2e 74 76 5f 75 73 65 63 3b 0d 0a 7d 0d tvp.tv_usec;..}.
0c00: 0a 0d 0a 2f 2b 0d 0a 2f 2a 20 44 52 4b 3a 20 54 .../+../* DRK: T
0c10: 68 65 73 65 20 68 61 76 65 20 62 65 65 6e 20 63 hese have been c
0c20: 6f 6d 6d 65 6e 74 65 64 20 6f 75 74 20 62 65 63 ommented out bec
0c30: 61 75 73 65 20 69 74 20 77 61 73 20 66 65 6c 74 ause it was felt
0c40: 20 74 68 61 74 20 75 73 69 6e 67 0d 0a 20 2a 20 that using.. *
0c50: 6f 6d 43 6d 70 20 6f 6e 20 74 68 65 20 54 49 4d omCmp on the TIM
0c60: 45 56 41 4c 20 73 74 72 75 63 74 20 77 61 73 20 EVAL struct was
0c70: 63 6c 65 61 6e 65 72 2e 20 20 53 74 69 6c 6c 2c cleaner. Still,
0c80: 20 70 65 72 68 61 70 73 20 74 68 65 73 65 20 73 perhaps these s
0c90: 68 6f 75 6c 64 0d 0a 20 2a 20 62 65 20 65 6e 61 hould.. * be ena
0ca0: 62 6c 65 64 20 75 6e 64 65 72 20 61 20 76 65 72 bled under a ver
0cb0: 73 69 6f 6e 20 74 61 67 20 66 6f 72 20 63 6f 6d sion tag for com
0cc0: 70 61 74 69 62 69 6c 69 74 79 27 73 20 73 61 6b patibility's sak
0cd0: 65 3f 0d 0a 20 2a 20 49 66 20 69 74 20 69 73 20 e?.. * If it is
0ce0: 64 65 63 69 64 65 64 20 74 68 61 74 20 69 74 27 decided that it'
0cf0: 73 20 6a 75 73 74 20 75 67 6c 79 20 61 6e 64 20 s just ugly and
0d00: 75 6e 77 61 6e 74 65 64 2c 20 74 68 65 6e 20 66 unwanted, then f
0d10: 65 65 6c 20 66 72 65 65 20 74 6f 0d 0a 20 2a 20 eel free to.. *
0d20: 64 65 6c 65 74 65 20 74 68 69 73 20 73 65 63 74 delete this sect
0d30: 69 6f 6e 20 3a 29 0d 0a 20 2a 2f 0d 0a 69 6e 74 ion :).. */..int
0d40: 20 74 69 6d 65 72 63 6d 70 28 54 49 4d 45 56 41 timercmp(TIMEVA
0d50: 4c 2a 20 74 76 70 2c 20 54 49 4d 45 56 41 4c 2a L* tvp, TIMEVAL*
0d60: 20 75 76 70 29 20 7b 0d 0a 09 72 65 74 75 72 6e uvp) {...return
0d70: 20 74 76 70 2e 74 76 5f 73 65 63 20 21 3d 20 75 tvp.tv_sec != u
0d80: 76 70 2e 74 76 5f 73 65 63 20 3f 0d 0a 09 20 20 vp.tv_sec ?...
0d90: 20 20 28 74 76 70 2e 74 76 5f 73 65 63 20 3c 20 (tvp.tv_sec <
0da0: 75 76 70 2e 74 76 5f 73 65 63 20 3f 20 2d 31 20 uvp.tv_sec ? -1
0db0: 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 :.. (
0dc0: 74 76 70 2e 74 76 5f 73 65 63 20 3e 20 75 76 70 tvp.tv_sec > uvp
0dd0: 2e 74 76 5f 73 65 63 20 3f 20 31 20 3a 20 30 29 .tv_sec ? 1 : 0)
0de0: 29 20 3a 0d 0a 09 20 20 20 20 28 74 76 70 2e 74 ) :... (tvp.t
0df0: 76 5f 75 73 65 63 20 3c 20 75 76 70 2e 74 76 5f v_usec < uvp.tv_
0e00: 75 73 65 63 20 3f 20 2d 31 20 3a 0d 0a 09 20 20 usec ? -1 :...
0e10: 20 20 20 20 20 20 28 74 76 70 2e 74 76 5f 75 73 (tvp.tv_us
0e20: 65 63 20 3e 20 75 76 70 2e 74 76 5f 75 73 65 63 ec > uvp.tv_usec
0e30: 20 3f 20 31 20 3a 20 30 29 29 3b 0d 0a 7d 0d 0a ? 1 : 0));..}..
0e40: 0d 0a 69 6e 74 20 74 69 6d 65 72 63 6d 70 28 54 ..int timercmp(T
0e50: 49 4d 45 56 41 4c 2a 20 74 76 70 2c 20 54 49 4d IMEVAL* tvp, TIM
0e60: 45 56 41 4c 2a 20 75 76 70 2c 20 69 6e 74 20 66 EVAL* uvp, int f
0e70: 75 6e 63 74 69 6f 6e 28 6c 6f 6e 67 2c 6c 6f 6e unction(long,lon
0e80: 67 29 20 63 6d 70 29 20 7b 0d 0a 09 72 65 74 75 g) cmp) {...retu
0e90: 72 6e 20 74 76 70 2e 74 76 5f 73 65 63 20 21 3d rn tvp.tv_sec !=
0ea0: 20 75 76 70 2e 74 76 5f 73 65 63 20 3f 0d 0a 09 uvp.tv_sec ?...
0eb0: 20 20 20 20 63 6d 70 28 74 76 70 2e 74 76 5f 73 cmp(tvp.tv_s
0ec0: 65 63 2c 20 75 76 70 2e 74 76 5f 73 65 63 29 20 ec, uvp.tv_sec)
0ed0: 3a 0d 0a 09 20 20 20 20 63 6d 70 28 74 76 70 2e :... cmp(tvp.
0ee0: 74 76 5f 75 73 65 63 2c 20 75 76 70 2e 74 76 5f tv_usec, uvp.tv_
0ef0: 75 73 65 63 29 3b 0d 0a 7d 2b 2f 0d 0a 0d 0a 76 usec);..}+/....v
0f00: 6f 69 64 20 74 69 6d 65 72 63 6c 65 61 72 28 72 oid timerclear(r
0f10: 65 66 20 54 49 4d 45 56 41 4c 20 74 76 70 29 20 ef TIMEVAL tvp)
0f20: 7b 0d 0a 09 74 76 70 2e 74 76 5f 73 65 63 20 3d {...tvp.tv_sec =
0f30: 20 74 76 70 2e 74 76 5f 75 73 65 63 20 3d 20 30 tvp.tv_usec = 0
0f40: 3b 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 48 ;..}....struct H
0f50: 4f 53 54 45 4e 54 20 7b 0d 0a 09 63 68 61 72 2a OSTENT {...char*
0f60: 20 20 68 5f 6e 61 6d 65 3b 0d 0a 09 63 68 61 72 h_name;...char
0f70: 2a 2a 20 68 5f 61 6c 69 61 73 65 73 3b 0d 0a 09 ** h_aliases;...
0f80: 73 68 6f 72 74 20 20 68 5f 61 64 64 72 74 79 70 short h_addrtyp
0f90: 65 3b 0d 0a 09 73 68 6f 72 74 20 20 68 5f 6c 65 e;...short h_le
0fa0: 6e 67 74 68 3b 0d 0a 09 63 68 61 72 2a 2a 20 68 ngth;...char** h
0fb0: 5f 61 64 64 72 5f 6c 69 73 74 3b 0d 0a 0d 0a 09 _addr_list;.....
0fc0: 63 68 61 72 2a 20 68 5f 61 64 64 72 28 29 20 7b char* h_addr() {
0fd0: 20 72 65 74 75 72 6e 20 68 5f 61 64 64 72 5f 6c return h_addr_l
0fe0: 69 73 74 5b 30 5d 3b 20 7d 0d 0a 09 63 68 61 72 ist[0]; }...char
0ff0: 2a 20 68 5f 61 64 64 72 28 63 68 61 72 2a 20 68 * h_addr(char* h
1000: 29 20 7b 20 72 65 74 75 72 6e 20 68 5f 61 64 64 ) { return h_add
1010: 72 5f 6c 69 73 74 5b 30 5d 20 3d 20 68 3b 20 7d r_list[0] = h; }
1020: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 48 4f 53 54 45 ..}..alias HOSTE
1030: 4e 54 2a 20 50 48 4f 53 54 45 4e 54 2c 20 4c 50 NT* PHOSTENT, LP
1040: 48 4f 53 54 45 4e 54 3b 0d 0a 0d 0a 73 74 72 75 HOSTENT;....stru
1050: 63 74 20 4c 49 4e 47 45 52 20 7b 0d 0a 09 75 5f ct LINGER {...u_
1060: 73 68 6f 72 74 20 6c 5f 6f 6e 6f 66 66 3b 0d 0a short l_onoff;..
1070: 09 75 5f 73 68 6f 72 74 20 6c 5f 6c 69 6e 67 65 .u_short l_linge
1080: 72 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 4c 49 4e r;..}..alias LIN
1090: 47 45 52 2a 20 50 4c 49 4e 47 45 52 2c 20 4c 50 GER* PLINGER, LP
10a0: 4c 49 4e 47 45 52 3b 0d 0a 0d 0a 65 6e 75 6d 20 LINGER;....enum
10b0: 3a 20 44 57 4f 52 44 20 7b 0d 0a 09 49 4f 43 50 : DWORD {...IOCP
10c0: 41 52 41 4d 5f 4d 41 53 4b 20 3d 20 30 78 37 66 ARAM_MASK = 0x7f
10d0: 2c 0d 0a 09 49 4f 43 5f 56 4f 49 44 20 20 20 20 ,...IOC_VOID
10e0: 20 20 3d 20 30 78 32 30 30 30 30 30 30 30 2c 0d = 0x20000000,.
10f0: 0a 09 49 4f 43 5f 4f 55 54 20 20 20 20 20 20 20 ..IOC_OUT
1100: 3d 20 30 78 34 30 30 30 30 30 30 30 2c 0d 0a 09 = 0x40000000,...
1110: 49 4f 43 5f 49 4e 20 20 20 20 20 20 20 20 3d 20 IOC_IN =
1120: 30 78 38 30 30 30 30 30 30 30 2c 0d 0a 09 49 4f 0x80000000,...IO
1130: 43 5f 49 4e 4f 55 54 20 20 20 20 20 3d 20 49 4f C_INOUT = IO
1140: 43 5f 49 4e 7c 49 4f 43 5f 4f 55 54 0d 0a 7d 0d C_IN|IOC_OUT..}.
1150: 0a 0d 0a 2f 2f 20 4e 4f 54 45 3a 20 54 68 69 73 ...// NOTE: This
1160: 20 69 73 6e 27 74 20 65 76 65 6e 20 75 73 65 64 isn't even used
1170: 20 61 6e 79 77 68 65 72 65 2e 2e 2e 0d 0a 74 65 anywhere.....te
1180: 6d 70 6c 61 74 65 20 5f 49 4f 28 63 68 61 72 20 mplate _IO(char
1190: 78 2c 20 75 62 79 74 65 20 79 29 20 7b 0d 0a 09 x, ubyte y) {...
11a0: 63 6f 6e 73 74 20 44 57 4f 52 44 20 5f 49 4f 20 const DWORD _IO
11b0: 3d 20 49 4f 43 5f 56 4f 49 44 20 7c 20 28 63 61 = IOC_VOID | (ca
11c0: 73 74 28 75 62 79 74 65 29 78 3c 3c 38 29 20 7c st(ubyte)x<<8) |
11d0: 20 79 3b 0d 0a 7d 0d 0a 0d 0a 74 65 6d 70 6c 61 y;..}....templa
11e0: 74 65 20 5f 49 4f 52 28 63 68 61 72 20 78 2c 20 te _IOR(char x,
11f0: 75 62 79 74 65 20 79 2c 20 74 29 20 7b 0d 0a 09 ubyte y, t) {...
1200: 63 6f 6e 73 74 20 44 57 4f 52 44 20 5f 49 4f 52 const DWORD _IOR
1210: 20 3d 20 49 4f 43 5f 4f 55 54 20 7c 20 28 28 74 = IOC_OUT | ((t
1220: 2e 73 69 7a 65 6f 66 20 26 20 49 4f 43 50 41 52 .sizeof & IOCPAR
1230: 41 4d 5f 4d 41 53 4b 29 3c 3c 31 36 29 0d 0a 09 AM_MASK)<<16)...
1240: 09 7c 20 28 63 61 73 74 28 75 62 79 74 65 29 78 .| (cast(ubyte)x
1250: 3c 3c 38 29 20 7c 20 79 3b 0d 0a 7d 0d 0a 0d 0a <<8) | y;..}....
1260: 74 65 6d 70 6c 61 74 65 20 5f 49 4f 57 28 63 68 template _IOW(ch
1270: 61 72 20 78 2c 20 75 62 79 74 65 20 79 2c 20 74 ar x, ubyte y, t
1280: 29 20 7b 0d 0a 09 63 6f 6e 73 74 20 44 57 4f 52 ) {...const DWOR
1290: 44 20 5f 49 4f 57 20 3d 20 49 4f 43 5f 49 4e 20 D _IOW = IOC_IN
12a0: 7c 20 28 28 74 2e 73 69 7a 65 6f 66 20 26 20 49 | ((t.sizeof & I
12b0: 4f 43 50 41 52 41 4d 5f 4d 41 53 4b 29 3c 3c 31 OCPARAM_MASK)<<1
12c0: 36 29 0d 0a 09 09 7c 20 28 63 61 73 74 28 75 62 6)....| (cast(ub
12d0: 79 74 65 29 78 3c 3c 38 29 20 7c 20 79 3b 0d 0a yte)x<<8) | y;..
12e0: 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44 57 4f 52 }....enum : DWOR
12f0: 44 20 7b 0d 0a 09 46 49 4f 4e 42 49 4f 20 20 20 D {...FIONBIO
1300: 20 3d 20 5f 49 4f 57 21 28 27 66 27 2c 20 31 32 = _IOW!('f', 12
1310: 36 2c 20 75 5f 6c 6f 6e 67 29 2c 0d 0a 09 46 49 6, u_long),...FI
1320: 4f 4e 52 45 41 44 20 20 20 3d 20 5f 49 4f 52 21 ONREAD = _IOR!
1330: 28 27 66 27 2c 20 31 32 37 2c 20 75 5f 6c 6f 6e ('f', 127, u_lon
1340: 67 29 2c 0d 0a 09 46 49 4f 41 53 59 4e 43 20 20 g),...FIOASYNC
1350: 20 3d 20 5f 49 4f 57 21 28 27 66 27 2c 20 31 32 = _IOW!('f', 12
1360: 35 2c 20 75 5f 6c 6f 6e 67 29 2c 0d 0a 09 53 49 5, u_long),...SI
1370: 4f 43 53 48 49 57 41 54 20 3d 20 5f 49 4f 57 21 OCSHIWAT = _IOW!
1380: 28 27 73 27 2c 20 20 20 30 2c 20 75 5f 6c 6f 6e ('s', 0, u_lon
1390: 67 29 2c 0d 0a 09 53 49 4f 43 47 48 49 57 41 54 g),...SIOCGHIWAT
13a0: 20 3d 20 5f 49 4f 52 21 28 27 73 27 2c 20 20 20 = _IOR!('s',
13b0: 31 2c 20 75 5f 6c 6f 6e 67 29 2c 0d 0a 09 53 49 1, u_long),...SI
13c0: 4f 43 53 4c 4f 57 41 54 20 3d 20 5f 49 4f 57 21 OCSLOWAT = _IOW!
13d0: 28 27 73 27 2c 20 20 20 32 2c 20 75 5f 6c 6f 6e ('s', 2, u_lon
13e0: 67 29 2c 0d 0a 09 53 49 4f 43 47 4c 4f 57 41 54 g),...SIOCGLOWAT
13f0: 20 3d 20 5f 49 4f 52 21 28 27 73 27 2c 20 20 20 = _IOR!('s',
1400: 33 2c 20 75 5f 6c 6f 6e 67 29 2c 0d 0a 09 53 49 3, u_long),...SI
1410: 4f 43 41 54 4d 41 52 4b 20 3d 20 5f 49 4f 52 21 OCATMARK = _IOR!
1420: 28 27 73 27 2c 20 20 20 37 2c 20 75 5f 6c 6f 6e ('s', 7, u_lon
1430: 67 29 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 g)..}....struct
1440: 6e 65 74 65 6e 74 20 7b 0d 0a 09 63 68 61 72 2a netent {...char*
1450: 20 20 6e 5f 6e 61 6d 65 3b 0d 0a 09 63 68 61 72 n_name;...char
1460: 2a 2a 20 6e 5f 61 6c 69 61 73 65 73 3b 0d 0a 09 ** n_aliases;...
1470: 73 68 6f 72 74 20 20 6e 5f 61 64 64 72 74 79 70 short n_addrtyp
1480: 65 3b 0d 0a 09 75 5f 6c 6f 6e 67 20 6e 5f 6e 65 e;...u_long n_ne
1490: 74 3b 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 t;..}....struct
14a0: 53 45 52 56 45 4e 54 20 7b 0d 0a 09 63 68 61 72 SERVENT {...char
14b0: 2a 20 20 73 5f 6e 61 6d 65 3b 0d 0a 09 63 68 61 * s_name;...cha
14c0: 72 2a 2a 20 73 5f 61 6c 69 61 73 65 73 3b 0d 0a r** s_aliases;..
14d0: 09 73 68 6f 72 74 20 20 73 5f 70 6f 72 74 3b 0d .short s_port;.
14e0: 0a 09 63 68 61 72 2a 20 20 73 5f 70 72 6f 74 6f ..char* s_proto
14f0: 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53 45 52 56 ;..}..alias SERV
1500: 45 4e 54 2a 20 50 53 45 52 56 45 4e 54 2c 20 4c ENT* PSERVENT, L
1510: 50 53 45 52 56 45 4e 54 3b 0d 0a 0d 0a 73 74 72 PSERVENT;....str
1520: 75 63 74 20 50 52 4f 54 4f 45 4e 54 20 7b 0d 0a uct PROTOENT {..
1530: 09 63 68 61 72 2a 20 20 70 5f 6e 61 6d 65 3b 0d .char* p_name;.
1540: 0a 09 63 68 61 72 2a 2a 20 70 5f 61 6c 69 61 73 ..char** p_alias
1550: 65 73 3b 0d 0a 09 73 68 6f 72 74 20 20 70 5f 70 es;...short p_p
1560: 72 6f 74 6f 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 roto;..}..alias
1570: 50 52 4f 54 4f 45 4e 54 2a 20 50 50 52 4f 54 4f PROTOENT* PPROTO
1580: 45 4e 54 2c 20 4c 50 50 52 4f 54 4f 45 4e 54 3b ENT, LPPROTOENT;
1590: 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 69 6e 74 20 7b ....enum : int {
15a0: 0d 0a 09 49 50 50 52 4f 54 4f 5f 49 50 20 20 20 ...IPPROTO_IP
15b0: 3d 20 20 20 30 2c 0d 0a 09 49 50 50 52 4f 54 4f = 0,...IPPROTO
15c0: 5f 49 43 4d 50 20 3d 20 20 20 31 2c 0d 0a 09 49 _ICMP = 1,...I
15d0: 50 50 52 4f 54 4f 5f 49 47 4d 50 20 3d 20 20 20 PPROTO_IGMP =
15e0: 32 2c 0d 0a 09 49 50 50 52 4f 54 4f 5f 47 47 50 2,...IPPROTO_GGP
15f0: 20 20 3d 20 20 20 33 2c 0d 0a 09 49 50 50 52 4f = 3,...IPPRO
1600: 54 4f 5f 54 43 50 20 20 3d 20 20 20 36 2c 0d 0a TO_TCP = 6,..
1610: 09 49 50 50 52 4f 54 4f 5f 50 55 50 20 20 3d 20 .IPPROTO_PUP =
1620: 20 31 32 2c 0d 0a 09 49 50 50 52 4f 54 4f 5f 55 12,...IPPROTO_U
1630: 44 50 20 20 3d 20 20 31 37 2c 0d 0a 09 49 50 50 DP = 17,...IPP
1640: 52 4f 54 4f 5f 49 44 50 20 20 3d 20 20 32 32 2c ROTO_IDP = 22,
1650: 0d 0a 09 49 50 50 52 4f 54 4f 5f 4e 44 20 20 20 ...IPPROTO_ND
1660: 3d 20 20 37 37 2c 0d 0a 09 49 50 50 52 4f 54 4f = 77,...IPPROTO
1670: 5f 52 41 57 20 20 3d 20 32 35 35 2c 0d 0a 09 49 _RAW = 255,...I
1680: 50 50 52 4f 54 4f 5f 4d 41 58 20 20 3d 20 32 35 PPROTO_MAX = 25
1690: 36 2c 0d 0a 0d 0a 09 2f 2f 20 49 50 76 36 20 6f 6,.....// IPv6 o
16a0: 70 74 69 6f 6e 73 0d 0a 09 49 50 50 52 4f 54 4f ptions...IPPROTO
16b0: 5f 48 4f 50 4f 50 54 53 20 20 3d 20 20 30 2c 20 _HOPOPTS = 0,
16c0: 2f 2f 20 49 50 76 36 20 48 6f 70 2d 62 79 2d 48 // IPv6 Hop-by-H
16d0: 6f 70 20 6f 70 74 69 6f 6e 73 0d 0a 09 49 50 50 op options...IPP
16e0: 52 4f 54 4f 5f 49 50 56 36 20 20 20 20 20 3d 20 ROTO_IPV6 =
16f0: 34 31 2c 20 2f 2f 20 49 50 76 36 20 68 65 61 64 41, // IPv6 head
1700: 65 72 0d 0a 09 49 50 50 52 4f 54 4f 5f 52 4f 55 er...IPPROTO_ROU
1710: 54 49 4e 47 20 20 3d 20 34 33 2c 20 2f 2f 20 49 TING = 43, // I
1720: 50 76 36 20 52 6f 75 74 69 6e 67 20 68 65 61 64 Pv6 Routing head
1730: 65 72 0d 0a 09 49 50 50 52 4f 54 4f 5f 46 52 41 er...IPPROTO_FRA
1740: 47 4d 45 4e 54 20 3d 20 34 34 2c 20 2f 2f 20 49 GMENT = 44, // I
1750: 50 76 36 20 66 72 61 67 6d 65 6e 74 61 74 69 6f Pv6 fragmentatio
1760: 6e 20 68 65 61 64 65 72 0d 0a 09 49 50 50 52 4f n header...IPPRO
1770: 54 4f 5f 45 53 50 20 20 20 20 20 20 3d 20 35 30 TO_ESP = 50
1780: 2c 20 2f 2f 20 65 6e 63 61 70 73 75 6c 61 74 69 , // encapsulati
1790: 6e 67 20 73 65 63 75 72 69 74 79 20 70 61 79 6c ng security payl
17a0: 6f 61 64 0d 0a 09 49 50 50 52 4f 54 4f 5f 41 48 oad...IPPROTO_AH
17b0: 20 20 20 20 20 20 20 3d 20 35 31 2c 20 2f 2f 20 = 51, //
17c0: 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 68 authentication h
17d0: 65 61 64 65 72 0d 0a 09 49 50 50 52 4f 54 4f 5f eader...IPPROTO_
17e0: 49 43 4d 50 56 36 20 20 20 3d 20 35 38 2c 20 2f ICMPV6 = 58, /
17f0: 2f 20 49 43 4d 50 76 36 0d 0a 09 49 50 50 52 4f / ICMPv6...IPPRO
1800: 54 4f 5f 4e 4f 4e 45 20 20 20 20 20 3d 20 35 39 TO_NONE = 59
1810: 2c 20 2f 2f 20 49 50 76 36 20 6e 6f 20 6e 65 78 , // IPv6 no nex
1820: 74 20 68 65 61 64 65 72 0d 0a 09 49 50 50 52 4f t header...IPPRO
1830: 54 4f 5f 44 53 54 4f 50 54 53 20 20 3d 20 36 30 TO_DSTOPTS = 60
1840: 20 20 2f 2f 20 49 50 76 36 20 44 65 73 74 69 6e // IPv6 Destin
1850: 61 74 69 6f 6e 20 6f 70 74 69 6f 6e 73 0d 0a 7d ation options..}
1860: 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 49 50 50 ....enum {...IPP
1870: 4f 52 54 5f 45 43 48 4f 20 20 20 20 20 20 20 20 ORT_ECHO
1880: 3d 20 20 20 20 37 2c 0d 0a 09 49 50 50 4f 52 54 = 7,...IPPORT
1890: 5f 44 49 53 43 41 52 44 20 20 20 20 20 3d 20 20 _DISCARD =
18a0: 20 20 39 2c 0d 0a 09 49 50 50 4f 52 54 5f 53 59 9,...IPPORT_SY
18b0: 53 54 41 54 20 20 20 20 20 20 3d 20 20 20 31 31 STAT = 11
18c0: 2c 0d 0a 09 49 50 50 4f 52 54 5f 44 41 59 54 49 ,...IPPORT_DAYTI
18d0: 4d 45 20 20 20 20 20 3d 20 20 20 31 33 2c 0d 0a ME = 13,..
18e0: 09 49 50 50 4f 52 54 5f 4e 45 54 53 54 41 54 20 .IPPORT_NETSTAT
18f0: 20 20 20 20 3d 20 20 20 31 35 2c 0d 0a 09 49 50 = 15,...IP
1900: 50 4f 52 54 5f 46 54 50 20 20 20 20 20 20 20 20 PORT_FTP
1910: 20 3d 20 20 20 32 31 2c 0d 0a 09 49 50 50 4f 52 = 21,...IPPOR
1920: 54 5f 54 45 4c 4e 45 54 20 20 20 20 20 20 3d 20 T_TELNET =
1930: 20 20 32 33 2c 0d 0a 09 49 50 50 4f 52 54 5f 53 23,...IPPORT_S
1940: 4d 54 50 20 20 20 20 20 20 20 20 3d 20 20 20 32 MTP = 2
1950: 35 2c 0d 0a 09 49 50 50 4f 52 54 5f 54 49 4d 45 5,...IPPORT_TIME
1960: 53 45 52 56 45 52 20 20 3d 20 20 20 33 37 2c 0d SERVER = 37,.
1970: 0a 09 49 50 50 4f 52 54 5f 4e 41 4d 45 53 45 52 ..IPPORT_NAMESER
1980: 56 45 52 20 20 3d 20 20 20 34 32 2c 0d 0a 09 49 VER = 42,...I
1990: 50 50 4f 52 54 5f 57 48 4f 49 53 20 20 20 20 20 PPORT_WHOIS
19a0: 20 20 3d 20 20 20 34 33 2c 0d 0a 09 49 50 50 4f = 43,...IPPO
19b0: 52 54 5f 4d 54 50 20 20 20 20 20 20 20 20 20 3d RT_MTP =
19c0: 20 20 20 35 37 2c 0d 0a 09 49 50 50 4f 52 54 5f 57,...IPPORT_
19d0: 54 46 54 50 20 20 20 20 20 20 20 20 3d 20 20 20 TFTP =
19e0: 36 39 2c 0d 0a 09 49 50 50 4f 52 54 5f 52 4a 45 69,...IPPORT_RJE
19f0: 20 20 20 20 20 20 20 20 20 3d 20 20 20 37 37 2c = 77,
1a00: 0d 0a 09 49 50 50 4f 52 54 5f 46 49 4e 47 45 52 ...IPPORT_FINGER
1a10: 20 20 20 20 20 20 3d 20 20 20 37 39 2c 0d 0a 09 = 79,...
1a20: 49 50 50 4f 52 54 5f 54 54 59 4c 49 4e 4b 20 20 IPPORT_TTYLINK
1a30: 20 20 20 3d 20 20 20 38 37 2c 0d 0a 09 49 50 50 = 87,...IPP
1a40: 4f 52 54 5f 53 55 50 44 55 50 20 20 20 20 20 20 ORT_SUPDUP
1a50: 3d 20 20 20 39 35 2c 0d 0a 09 49 50 50 4f 52 54 = 95,...IPPORT
1a60: 5f 45 58 45 43 53 45 52 56 45 52 20 20 3d 20 20 _EXECSERVER =
1a70: 35 31 32 2c 0d 0a 09 49 50 50 4f 52 54 5f 4c 4f 512,...IPPORT_LO
1a80: 47 49 4e 53 45 52 56 45 52 20 3d 20 20 35 31 33 GINSERVER = 513
1a90: 2c 0d 0a 09 49 50 50 4f 52 54 5f 43 4d 44 53 45 ,...IPPORT_CMDSE
1aa0: 52 56 45 52 20 20 20 3d 20 20 35 31 34 2c 0d 0a RVER = 514,..
1ab0: 09 49 50 50 4f 52 54 5f 45 46 53 53 45 52 56 45 .IPPORT_EFSSERVE
1ac0: 52 20 20 20 3d 20 20 35 32 30 2c 0d 0a 09 49 50 R = 520,...IP
1ad0: 50 4f 52 54 5f 42 49 46 46 55 44 50 20 20 20 20 PORT_BIFFUDP
1ae0: 20 3d 20 20 35 31 32 2c 0d 0a 09 49 50 50 4f 52 = 512,...IPPOR
1af0: 54 5f 57 48 4f 53 45 52 56 45 52 20 20 20 3d 20 T_WHOSERVER =
1b00: 20 35 31 33 2c 0d 0a 09 49 50 50 4f 52 54 5f 52 513,...IPPORT_R
1b10: 4f 55 54 45 53 45 52 56 45 52 20 3d 20 20 35 32 OUTESERVER = 52
1b20: 30 2c 0d 0a 09 49 50 50 4f 52 54 5f 52 45 53 45 0,...IPPORT_RESE
1b30: 52 56 45 44 20 20 20 20 3d 20 31 30 32 34 0d 0a RVED = 1024..
1b40: 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 49 4d }....enum {...IM
1b50: 50 4c 49 4e 4b 5f 49 50 20 20 20 20 20 20 20 20 PLINK_IP
1b60: 20 3d 20 20 31 35 35 2c 0d 0a 09 49 4d 50 4c 49 = 155,...IMPLI
1b70: 4e 4b 5f 4c 4f 57 45 58 50 45 52 20 20 20 3d 20 NK_LOWEXPER =
1b80: 20 31 35 36 2c 0d 0a 09 49 4d 50 4c 49 4e 4b 5f 156,...IMPLINK_
1b90: 48 49 47 48 45 58 50 45 52 20 20 3d 20 20 31 35 HIGHEXPER = 15
1ba0: 38 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 49 8..}....struct I
1bb0: 4e 5f 41 44 44 52 20 7b 0d 0a 09 75 6e 69 6f 6e N_ADDR {...union
1bc0: 20 7b 0d 0a 09 09 73 74 72 75 63 74 20 7b 20 75 {....struct { u
1bd0: 5f 63 68 61 72 20 20 73 5f 62 31 2c 20 73 5f 62 _char s_b1, s_b
1be0: 32 2c 20 73 5f 62 33 2c 20 73 5f 62 34 3b 20 7d 2, s_b3, s_b4; }
1bf0: 0d 0a 09 09 73 74 72 75 63 74 20 7b 20 75 5f 63 ....struct { u_c
1c00: 68 61 72 20 20 73 5f 6e 65 74 2c 20 73 5f 68 6f har s_net, s_ho
1c10: 73 74 2c 20 73 5f 6c 68 2c 20 73 5f 69 6d 70 6e st, s_lh, s_impn
1c20: 6f 3b 20 7d 0d 0a 09 09 73 74 72 75 63 74 20 7b o; }....struct {
1c30: 20 75 5f 73 68 6f 72 74 20 73 5f 77 31 2c 20 73 u_short s_w1, s
1c40: 5f 77 32 3b 20 7d 0d 0a 09 09 73 74 72 75 63 74 _w2; }....struct
1c50: 20 7b 20 75 5f 73 68 6f 72 74 20 73 5f 77 5f 2c { u_short s_w_,
1c60: 20 73 5f 69 6d 70 3b 20 7d 20 2f 2f 20 43 61 6e s_imp; } // Can
1c70: 20 49 20 67 65 74 20 72 69 64 20 6f 66 20 73 5f I get rid of s_
1c80: 77 5f 20 75 73 69 6e 67 20 61 6c 69 67 6e 6d 65 w_ using alignme
1c90: 6e 74 20 74 72 69 63 6b 73 3f 0d 0a 09 09 75 5f nt tricks?....u_
1ca0: 6c 6f 6e 67 20 53 5f 61 64 64 72 3b 0d 0a 09 09 long S_addr;....
1cb0: 75 5f 6c 6f 6e 67 20 73 5f 61 64 64 72 3b 0d 0a u_long s_addr;..
1cc0: 09 7d 0d 0a 7d 0d 0a 61 6c 69 61 73 20 49 4e 5f .}..}..alias IN_
1cd0: 41 44 44 52 2a 20 50 49 4e 5f 41 44 44 52 2c 20 ADDR* PIN_ADDR,
1ce0: 4c 50 49 4e 5f 41 44 44 52 3b 0d 0a 0d 0a 2f 2f LPIN_ADDR;....//
1cf0: 20 49 4e 5f 43 4c 41 53 53 78 20 61 72 65 20 6e IN_CLASSx are n
1d00: 6f 74 20 75 73 65 64 20 61 6e 79 77 68 65 72 65 ot used anywhere
1d10: 20 6f 72 20 64 6f 63 75 6d 65 6e 74 65 64 20 6f or documented o
1d20: 6e 20 4d 53 44 4e 2e 0d 0a 62 6f 6f 6c 20 49 4e n MSDN...bool IN
1d30: 5f 43 4c 41 53 53 41 28 69 6e 74 20 69 29 20 7b _CLASSA(int i) {
1d40: 20 72 65 74 75 72 6e 20 28 69 20 26 20 30 78 38 return (i & 0x8
1d50: 30 30 30 30 30 30 30 29 20 3d 3d 20 30 3b 20 7d 0000000) == 0; }
1d60: 0d 0a 0d 0a 63 6f 6e 73 74 20 49 4e 5f 43 4c 41 ....const IN_CLA
1d70: 53 53 41 5f 4e 45 54 20 20 20 20 3d 20 30 78 66 SSA_NET = 0xf
1d80: 66 30 30 30 30 30 30 3b 0d 0a 63 6f 6e 73 74 20 f000000;..const
1d90: 49 4e 5f 43 4c 41 53 53 41 5f 4e 53 48 49 46 54 IN_CLASSA_NSHIFT
1da0: 20 3d 20 20 20 20 20 20 20 20 20 32 34 3b 0d 0a = 24;..
1db0: 63 6f 6e 73 74 20 49 4e 5f 43 4c 41 53 53 41 5f const IN_CLASSA_
1dc0: 48 4f 53 54 20 20 20 3d 20 30 78 30 30 66 66 66 HOST = 0x00fff
1dd0: 66 66 66 3b 0d 0a 63 6f 6e 73 74 20 49 4e 5f 43 fff;..const IN_C
1de0: 4c 41 53 53 41 5f 4d 41 58 20 20 20 20 3d 20 20 LASSA_MAX =
1df0: 20 20 20 20 20 20 31 32 38 3b 0d 0a 0d 0a 62 6f 128;....bo
1e00: 6f 6c 20 49 4e 5f 43 4c 41 53 53 42 28 69 6e 74 ol IN_CLASSB(int
1e10: 20 69 29 20 7b 20 72 65 74 75 72 6e 20 28 69 20 i) { return (i
1e20: 26 20 30 78 63 30 30 30 30 30 30 30 29 20 3d 3d & 0xc0000000) ==
1e30: 20 30 78 38 30 30 30 30 30 30 30 3b 20 7d 0d 0a 0x80000000; }..
1e40: 0d 0a 63 6f 6e 73 74 20 49 4e 5f 43 4c 41 53 53 ..const IN_CLASS
1e50: 42 5f 4e 45 54 20 20 20 20 3d 20 30 78 66 66 66 B_NET = 0xfff
1e60: 66 30 30 30 30 3b 0d 0a 63 6f 6e 73 74 20 49 4e f0000;..const IN
1e70: 5f 43 4c 41 53 53 42 5f 4e 53 48 49 46 54 20 3d _CLASSB_NSHIFT =
1e80: 20 20 20 20 20 20 20 20 20 31 36 3b 0d 0a 63 6f 16;..co
1e90: 6e 73 74 20 49 4e 5f 43 4c 41 53 53 42 5f 48 4f nst IN_CLASSB_HO
1ea0: 53 54 20 20 20 3d 20 30 78 30 30 30 30 66 66 66 ST = 0x0000fff
1eb0: 66 3b 0d 0a 63 6f 6e 73 74 20 49 4e 5f 43 4c 41 f;..const IN_CLA
1ec0: 53 53 42 5f 4d 41 58 20 20 20 20 3d 20 20 20 20 SSB_MAX =
1ed0: 20 20 36 35 35 33 36 3b 0d 0a 0d 0a 62 6f 6f 6c 65536;....bool
1ee0: 20 49 4e 5f 43 4c 41 53 53 43 28 69 6e 74 20 69 IN_CLASSC(int i
1ef0: 29 20 7b 20 72 65 74 75 72 6e 20 28 69 20 26 20 ) { return (i &
1f00: 30 78 65 30 30 30 30 30 30 30 29 20 3d 3d 20 30 0xe0000000) == 0
1f10: 78 63 30 30 30 30 30 30 30 3b 20 7d 0d 0a 0d 0a xc0000000; }....
1f20: 63 6f 6e 73 74 20 49 4e 5f 43 4c 41 53 53 43 5f const IN_CLASSC_
1f30: 4e 45 54 20 20 20 20 3d 20 30 78 66 66 66 66 66 NET = 0xfffff
1f40: 66 30 30 3b 0d 0a 63 6f 6e 73 74 20 49 4e 5f 43 f00;..const IN_C
1f50: 4c 41 53 53 43 5f 4e 53 48 49 46 54 20 3d 20 20 LASSC_NSHIFT =
1f60: 20 20 20 20 20 20 20 20 38 3b 0d 0a 63 6f 6e 73 8;..cons
1f70: 74 20 49 4e 5f 43 4c 41 53 53 43 5f 48 4f 53 54 t IN_CLASSC_HOST
1f80: 20 20 20 3d 20 30 78 30 30 30 30 30 30 66 66 3b = 0x000000ff;
1f90: 0d 0a 0d 0a 63 6f 6e 73 74 20 75 5f 6c 6f 6e 67 ....const u_long
1fa0: 0d 0a 09 49 4e 41 44 44 52 5f 41 4e 59 20 20 20 ...INADDR_ANY
1fb0: 20 20 20 20 3d 20 30 2c 0d 0a 09 49 4e 41 44 44 = 0,...INADD
1fc0: 52 5f 4c 4f 4f 50 42 41 43 4b 20 20 3d 20 30 78 R_LOOPBACK = 0x
1fd0: 37 46 30 30 30 30 30 31 2c 0d 0a 09 49 4e 41 44 7F000001,...INAD
1fe0: 44 52 5f 42 52 4f 41 44 43 41 53 54 20 3d 20 30 DR_BROADCAST = 0
1ff0: 78 46 46 46 46 46 46 46 46 2c 0d 0a 09 49 4e 41 xFFFFFFFF,...INA
2000: 44 44 52 5f 4e 4f 4e 45 20 20 20 20 20 20 3d 20 DDR_NONE =
2010: 30 78 46 46 46 46 46 46 46 46 3b 0d 0a 0d 0a 73 0xFFFFFFFF;....s
2020: 74 72 75 63 74 20 53 4f 43 4b 41 44 44 52 5f 49 truct SOCKADDR_I
2030: 4e 20 7b 0d 0a 09 73 68 6f 72 74 20 20 20 73 69 N {...short si
2040: 6e 5f 66 61 6d 69 6c 79 3b 0d 0a 09 75 5f 73 68 n_family;...u_sh
2050: 6f 72 74 20 73 69 6e 5f 70 6f 72 74 3b 0d 0a 09 ort sin_port;...
2060: 49 4e 5f 41 44 44 52 20 73 69 6e 5f 61 64 64 72 IN_ADDR sin_addr
2070: 3b 0d 0a 09 63 68 61 72 5b 38 5d 20 73 69 6e 5f ;...char[8] sin_
2080: 7a 65 72 6f 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 zero;..}..alias
2090: 53 4f 43 4b 41 44 44 52 5f 49 4e 2a 20 50 53 4f SOCKADDR_IN* PSO
20a0: 43 4b 41 44 44 52 5f 49 4e 2c 20 4c 50 53 4f 43 CKADDR_IN, LPSOC
20b0: 4b 41 44 44 52 5f 49 4e 3b 0d 0a 0d 0a 63 6f 6e KADDR_IN;....con
20c0: 73 74 20 73 69 7a 65 5f 74 0d 0a 09 57 53 41 44 st size_t...WSAD
20d0: 45 53 43 52 49 50 54 49 4f 4e 5f 4c 45 4e 20 3d ESCRIPTION_LEN =
20e0: 20 32 35 36 2c 0d 0a 09 57 53 41 53 59 53 5f 53 256,...WSASYS_S
20f0: 54 41 54 55 53 5f 4c 45 4e 20 20 3d 20 31 32 38 TATUS_LEN = 128
2100: 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 57 53 41 44 ;....struct WSAD
2110: 41 54 41 20 7b 0d 0a 09 57 4f 52 44 20 20 20 77 ATA {...WORD w
2120: 56 65 72 73 69 6f 6e 3b 0d 0a 09 57 4f 52 44 20 Version;...WORD
2130: 20 20 77 48 69 67 68 56 65 72 73 69 6f 6e 3b 0d wHighVersion;.
2140: 0a 09 63 68 61 72 5b 57 53 41 44 45 53 43 52 49 ..char[WSADESCRI
2150: 50 54 49 4f 4e 5f 4c 45 4e 2b 31 5d 20 73 7a 44 PTION_LEN+1] szD
2160: 65 73 63 72 69 70 74 69 6f 6e 3b 0d 0a 09 63 68 escription;...ch
2170: 61 72 5b 57 53 41 53 59 53 5f 53 54 41 54 55 53 ar[WSASYS_STATUS
2180: 5f 4c 45 4e 2b 31 5d 20 20 73 7a 53 79 73 74 65 _LEN+1] szSyste
2190: 6d 53 74 61 74 75 73 3b 0d 0a 09 75 73 68 6f 72 mStatus;...ushor
21a0: 74 20 69 4d 61 78 53 6f 63 6b 65 74 73 3b 0d 0a t iMaxSockets;..
21b0: 09 75 73 68 6f 72 74 20 69 4d 61 78 55 64 70 44 .ushort iMaxUdpD
21c0: 67 3b 0d 0a 09 63 68 61 72 2a 20 20 6c 70 56 65 g;...char* lpVe
21d0: 6e 64 6f 72 49 6e 66 6f 3b 0d 0a 7d 0d 0a 61 6c ndorInfo;..}..al
21e0: 69 61 73 20 57 53 41 44 41 54 41 2a 20 4c 50 57 ias WSADATA* LPW
21f0: 53 41 44 41 54 41 3b 0d 0a 0d 0a 2f 2f 20 54 68 SADATA;....// Th
2200: 69 73 20 69 73 20 6e 6f 74 20 64 6f 63 75 6d 65 is is not docume
2210: 6e 74 65 64 20 6f 6e 20 74 68 65 20 4d 53 44 4e nted on the MSDN
2220: 20 73 69 74 65 0d 0a 63 6f 6e 73 74 20 49 50 5f site..const IP_
2230: 4f 50 54 49 4f 4e 53 20 3d 20 31 3b 0d 0a 0d 0a OPTIONS = 1;....
2240: 63 6f 6e 73 74 20 69 6e 74 0d 0a 09 53 4f 5f 4f const int...SO_O
2250: 50 54 49 4f 4e 53 20 20 20 20 20 3d 20 20 20 31 PTIONS = 1
2260: 2c 0d 0a 09 53 4f 5f 44 45 42 55 47 20 20 20 20 ,...SO_DEBUG
2270: 20 20 20 3d 20 20 20 31 2c 0d 0a 09 53 4f 5f 41 = 1,...SO_A
2280: 43 43 45 50 54 43 4f 4e 4e 20 20 3d 20 20 20 32 CCEPTCONN = 2
2290: 2c 0d 0a 09 53 4f 5f 52 45 55 53 45 41 44 44 52 ,...SO_REUSEADDR
22a0: 20 20 20 3d 20 20 20 34 2c 0d 0a 09 53 4f 5f 4b = 4,...SO_K
22b0: 45 45 50 41 4c 49 56 45 20 20 20 3d 20 20 20 38 EEPALIVE = 8
22c0: 2c 0d 0a 09 53 4f 5f 44 4f 4e 54 52 4f 55 54 45 ,...SO_DONTROUTE
22d0: 20 20 20 3d 20 20 31 36 2c 0d 0a 09 53 4f 5f 42 = 16,...SO_B
22e0: 52 4f 41 44 43 41 53 54 20 20 20 3d 20 20 33 32 ROADCAST = 32
22f0: 2c 0d 0a 09 53 4f 5f 55 53 45 4c 4f 4f 50 42 41 ,...SO_USELOOPBA
2300: 43 4b 20 3d 20 20 36 34 2c 0d 0a 09 53 4f 5f 4c CK = 64,...SO_L
2310: 49 4e 47 45 52 20 20 20 20 20 20 3d 20 31 32 38 INGER = 128
2320: 2c 0d 0a 09 53 4f 5f 4f 4f 42 49 4e 4c 49 4e 45 ,...SO_OOBINLINE
2330: 20 20 20 3d 20 32 35 36 2c 0d 0a 09 53 4f 5f 44 = 256,...SO_D
2340: 4f 4e 54 4c 49 4e 47 45 52 20 20 3d 20 7e 53 4f ONTLINGER = ~SO
2350: 5f 4c 49 4e 47 45 52 2c 0d 0a 09 53 4f 5f 45 58 _LINGER,...SO_EX
2360: 43 4c 55 53 49 56 45 41 44 44 52 55 53 45 3d 20 CLUSIVEADDRUSE=
2370: 7e 53 4f 5f 52 45 55 53 45 41 44 44 52 3b 0d 0a ~SO_REUSEADDR;..
2380: 0d 0a 65 6e 75 6d 20 3a 20 69 6e 74 20 7b 0d 0a ..enum : int {..
2390: 09 53 4f 5f 53 4e 44 42 55 46 20 3d 20 30 78 31 .SO_SNDBUF = 0x1
23a0: 30 30 31 2c 0d 0a 09 53 4f 5f 52 43 56 42 55 46 001,...SO_RCVBUF
23b0: 2c 0d 0a 09 53 4f 5f 53 4e 44 4c 4f 57 41 54 2c ,...SO_SNDLOWAT,
23c0: 0d 0a 09 53 4f 5f 52 43 56 4c 4f 57 41 54 2c 0d ...SO_RCVLOWAT,.
23d0: 0a 09 53 4f 5f 53 4e 44 54 49 4d 45 4f 2c 0d 0a ..SO_SNDTIMEO,..
23e0: 09 53 4f 5f 52 43 56 54 49 4d 45 4f 2c 0d 0a 09 .SO_RCVTIMEO,...
23f0: 53 4f 5f 45 52 52 4f 52 2c 0d 0a 09 53 4f 5f 54 SO_ERROR,...SO_T
2400: 59 50 45 20 2f 2f 20 3d 20 30 78 31 30 30 38 0d YPE // = 0x1008.
2410: 0a 7d 0d 0a 0d 0a 63 6f 6e 73 74 20 53 4f 43 4b .}....const SOCK
2420: 45 54 20 49 4e 56 41 4c 49 44 5f 53 4f 43 4b 45 ET INVALID_SOCKE
2430: 54 20 3d 20 63 61 73 74 28 53 4f 43 4b 45 54 29 T = cast(SOCKET)
2440: 28 7e 30 29 3b 0d 0a 63 6f 6e 73 74 20 69 6e 74 (~0);..const int
2450: 20 53 4f 43 4b 45 54 5f 45 52 52 4f 52 20 3d 20 SOCKET_ERROR =
2460: 2d 31 3b 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 69 6e -1;....enum : in
2470: 74 20 7b 0d 0a 09 53 4f 43 4b 5f 53 54 52 45 41 t {...SOCK_STREA
2480: 4d 20 3d 20 31 2c 0d 0a 09 53 4f 43 4b 5f 44 47 M = 1,...SOCK_DG
2490: 52 41 4d 2c 0d 0a 09 53 4f 43 4b 5f 52 41 57 2c RAM,...SOCK_RAW,
24a0: 0d 0a 09 53 4f 43 4b 5f 52 44 4d 2c 0d 0a 09 53 ...SOCK_RDM,...S
24b0: 4f 43 4b 5f 53 45 51 50 41 43 4b 45 54 0d 0a 7d OCK_SEQPACKET..}
24c0: 0d 0a 0d 0a 63 6f 6e 73 74 20 69 6e 74 20 54 43 ....const int TC
24d0: 50 5f 4e 4f 44 45 4c 41 59 20 3d 20 30 78 30 30 P_NODELAY = 0x00
24e0: 30 31 3b 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 69 6e 01;....enum : in
24f0: 74 20 7b 0d 0a 09 41 46 5f 55 4e 53 50 45 43 2c t {...AF_UNSPEC,
2500: 0d 0a 09 41 46 5f 55 4e 49 58 2c 0d 0a 09 41 46 ...AF_UNIX,...AF
2510: 5f 49 4e 45 54 2c 0d 0a 09 41 46 5f 49 4d 50 4c _INET,...AF_IMPL
2520: 49 4e 4b 2c 0d 0a 09 41 46 5f 50 55 50 2c 0d 0a INK,...AF_PUP,..
2530: 09 41 46 5f 43 48 41 4f 53 2c 0d 0a 09 41 46 5f .AF_CHAOS,...AF_
2540: 49 50 58 2c 20 20 2f 2f 20 3d 20 20 36 0d 0a 09 IPX, // = 6...
2550: 41 46 5f 4e 53 20 20 20 20 20 20 20 3d 20 20 36 AF_NS = 6
2560: 2c 0d 0a 09 41 46 5f 49 53 4f 2c 0d 0a 09 41 46 ,...AF_ISO,...AF
2570: 5f 4f 53 49 20 20 20 20 20 20 3d 20 41 46 5f 49 _OSI = AF_I
2580: 53 4f 2c 0d 0a 09 41 46 5f 45 43 4d 41 2c 0d 0a SO,...AF_ECMA,..
2590: 09 41 46 5f 44 41 54 41 4b 49 54 2c 0d 0a 09 41 .AF_DATAKIT,...A
25a0: 46 5f 43 43 49 54 54 2c 0d 0a 09 41 46 5f 53 4e F_CCITT,...AF_SN
25b0: 41 2c 0d 0a 09 41 46 5f 44 45 43 6e 65 74 2c 0d A,...AF_DECnet,.
25c0: 0a 09 41 46 5f 44 4c 49 2c 0d 0a 09 41 46 5f 4c ..AF_DLI,...AF_L
25d0: 41 54 2c 0d 0a 09 41 46 5f 48 59 4c 49 4e 4b 2c AT,...AF_HYLINK,
25e0: 0d 0a 09 41 46 5f 41 50 50 4c 45 54 41 4c 4b 2c ...AF_APPLETALK,
25f0: 0d 0a 09 41 46 5f 4e 45 54 42 49 4f 53 2c 0d 0a ...AF_NETBIOS,..
2600: 09 41 46 5f 56 4f 49 43 45 56 49 45 57 2c 0d 0a .AF_VOICEVIEW,..
2610: 09 41 46 5f 46 49 52 45 46 4f 58 2c 0d 0a 09 41 .AF_FIREFOX,...A
2620: 46 5f 55 4e 4b 4e 4f 57 4e 31 2c 0d 0a 09 41 46 F_UNKNOWN1,...AF
2630: 5f 42 41 4e 2c 0d 0a 09 41 46 5f 41 54 4d 2c 0d _BAN,...AF_ATM,.
2640: 0a 09 41 46 5f 49 4e 45 54 36 2c 0d 0a 09 2f 2f ..AF_INET6,...//
2650: 20 41 46 5f 43 4c 55 53 54 45 52 2c 20 41 46 5f AF_CLUSTER, AF_
2660: 31 32 38 34 34 20 6e 61 64 20 41 46 5f 4e 45 54 12844 nad AF_NET
2670: 44 45 53 20 61 72 65 20 6e 6f 74 20 64 6f 63 75 DES are not docu
2680: 6d 65 6e 74 65 64 20 6f 6e 20 4d 53 44 4e 0d 0a mented on MSDN..
2690: 09 41 46 5f 43 4c 55 53 54 45 52 2c 0d 0a 09 41 .AF_CLUSTER,...A
26a0: 46 5f 31 32 38 34 34 2c 0d 0a 09 41 46 5f 49 52 F_12844,...AF_IR
26b0: 44 41 2c 20 2f 2f 20 3d 20 32 36 0d 0a 09 41 46 DA, // = 26...AF
26c0: 5f 4e 45 54 44 45 53 20 20 20 3d 20 32 38 2c 0d _NETDES = 28,.
26d0: 0a 09 41 46 5f 4d 41 58 20 20 20 2f 2f 20 3d 20 ..AF_MAX // =
26e0: 32 39 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 29..}....struct
26f0: 53 4f 43 4b 41 44 44 52 20 7b 0d 0a 09 75 5f 73 SOCKADDR {...u_s
2700: 68 6f 72 74 20 20 73 61 5f 66 61 6d 69 6c 79 3b hort sa_family;
2710: 0d 0a 09 63 68 61 72 5b 31 34 5d 20 73 61 5f 64 ...char[14] sa_d
2720: 61 74 61 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53 ata;..}..alias S
2730: 4f 43 4b 41 44 44 52 2a 20 50 53 4f 43 4b 41 44 OCKADDR* PSOCKAD
2740: 44 52 2c 20 4c 50 53 4f 43 4b 41 44 44 52 3b 0d DR, LPSOCKADDR;.
2750: 0a 0d 0a 2f 2a 20 50 6f 72 74 61 62 6c 65 20 49 .../* Portable I
2760: 50 76 36 2f 49 50 76 34 20 76 65 72 73 69 6f 6e Pv6/IPv4 version
2770: 20 6f 66 20 73 6f 63 6b 61 64 64 72 2e 0d 0a 20 of sockaddr...
2780: 20 20 55 73 65 73 20 70 61 64 64 69 6e 67 20 74 Uses padding t
2790: 6f 20 66 6f 72 63 65 20 38 20 62 79 74 65 20 61 o force 8 byte a
27a0: 6c 69 67 6e 6d 65 6e 74 0d 0a 20 20 20 61 6e 64 lignment.. and
27b0: 20 6d 61 78 69 6d 75 6d 20 73 69 7a 65 20 6f 66 maximum size of
27c0: 20 31 32 38 20 62 79 74 65 73 20 2a 2f 0d 0a 73 128 bytes */..s
27d0: 74 72 75 63 74 20 53 4f 43 4b 41 44 44 52 5f 53 truct SOCKADDR_S
27e0: 54 4f 52 41 47 45 20 7b 0d 0a 20 20 20 20 73 68 TORAGE {.. sh
27f0: 6f 72 74 20 20 20 20 20 73 73 5f 66 61 6d 69 6c ort ss_famil
2800: 79 3b 0d 0a 20 20 20 20 63 68 61 72 5b 36 5d 20 y;.. char[6]
2810: 20 20 5f 5f 73 73 5f 70 61 64 31 3b 20 20 20 2f __ss_pad1; /
2820: 2f 20 70 61 64 20 74 6f 20 38 0d 0a 20 20 20 20 / pad to 8..
2830: 6c 6f 6e 67 20 20 20 20 20 20 5f 5f 73 73 5f 61 long __ss_a
2840: 6c 69 67 6e 3b 20 20 2f 2f 20 66 6f 72 63 65 20 lign; // force
2850: 61 6c 69 67 6e 6d 65 6e 74 0d 0a 20 20 20 20 63 alignment.. c
2860: 68 61 72 5b 31 31 32 5d 20 5f 5f 73 73 5f 70 61 har[112] __ss_pa
2870: 64 32 3b 20 20 20 2f 2f 20 70 61 64 20 74 6f 20 d2; // pad to
2880: 31 32 38 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53 4f 128..}..alias SO
2890: 43 4b 41 44 44 52 5f 53 54 4f 52 41 47 45 2a 20 CKADDR_STORAGE*
28a0: 50 53 4f 43 4b 41 44 44 52 5f 53 54 4f 52 41 47 PSOCKADDR_STORAG
28b0: 45 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 73 6f 63 E;....struct soc
28c0: 6b 70 72 6f 74 6f 20 7b 0d 0a 09 75 5f 73 68 6f kproto {...u_sho
28d0: 72 74 20 73 70 5f 66 61 6d 69 6c 79 3b 0d 0a 09 rt sp_family;...
28e0: 75 5f 73 68 6f 72 74 20 73 70 5f 70 72 6f 74 6f u_short sp_proto
28f0: 63 6f 6c 3b 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 col;..}....enum
2900: 3a 20 69 6e 74 20 7b 0d 0a 09 50 46 5f 55 4e 53 : int {...PF_UNS
2910: 50 45 43 20 20 20 20 3d 20 41 46 5f 55 4e 53 50 PEC = AF_UNSP
2920: 45 43 2c 0d 0a 09 50 46 5f 55 4e 49 58 20 20 20 EC,...PF_UNIX
2930: 20 20 20 3d 20 41 46 5f 55 4e 49 58 2c 0d 0a 09 = AF_UNIX,...
2940: 50 46 5f 49 4e 45 54 20 20 20 20 20 20 3d 20 41 PF_INET = A
2950: 46 5f 49 4e 45 54 2c 0d 0a 09 50 46 5f 49 4d 50 F_INET,...PF_IMP
2960: 4c 49 4e 4b 20 20 20 3d 20 41 46 5f 49 4d 50 4c LINK = AF_IMPL
2970: 49 4e 4b 2c 0d 0a 09 50 46 5f 50 55 50 20 20 20 INK,...PF_PUP
2980: 20 20 20 20 3d 20 41 46 5f 50 55 50 2c 0d 0a 09 = AF_PUP,...
2990: 50 46 5f 43 48 41 4f 53 20 20 20 20 20 3d 20 41 PF_CHAOS = A
29a0: 46 5f 43 48 41 4f 53 2c 0d 0a 09 50 46 5f 4e 53 F_CHAOS,...PF_NS
29b0: 20 20 20 20 20 20 20 20 3d 20 41 46 5f 4e 53 2c = AF_NS,
29c0: 0d 0a 09 50 46 5f 49 50 58 20 20 20 20 20 20 20 ...PF_IPX
29d0: 3d 20 41 46 5f 49 50 58 2c 0d 0a 09 50 46 5f 49 = AF_IPX,...PF_I
29e0: 53 4f 20 20 20 20 20 20 20 3d 20 41 46 5f 49 53 SO = AF_IS
29f0: 4f 2c 0d 0a 09 50 46 5f 4f 53 49 20 20 20 20 20 O,...PF_OSI
2a00: 20 20 3d 20 41 46 5f 4f 53 49 2c 0d 0a 09 50 46 = AF_OSI,...PF
2a10: 5f 45 43 4d 41 20 20 20 20 20 20 3d 20 41 46 5f _ECMA = AF_
2a20: 45 43 4d 41 2c 0d 0a 09 50 46 5f 44 41 54 41 4b ECMA,...PF_DATAK
2a30: 49 54 20 20 20 3d 20 41 46 5f 44 41 54 41 4b 49 IT = AF_DATAKI
2a40: 54 2c 0d 0a 09 50 46 5f 43 43 49 54 54 20 20 20 T,...PF_CCITT
2a50: 20 20 3d 20 41 46 5f 43 43 49 54 54 2c 0d 0a 09 = AF_CCITT,...
2a60: 50 46 5f 53 4e 41 20 20 20 20 20 20 20 3d 20 41 PF_SNA = A
2a70: 46 5f 53 4e 41 2c 0d 0a 09 50 46 5f 44 45 43 6e F_SNA,...PF_DECn
2a80: 65 74 20 20 20 20 3d 20 41 46 5f 44 45 43 6e 65 et = AF_DECne
2a90: 74 2c 0d 0a 09 50 46 5f 44 4c 49 20 20 20 20 20 t,...PF_DLI
2aa0: 20 20 3d 20 41 46 5f 44 4c 49 2c 0d 0a 09 50 46 = AF_DLI,...PF
2ab0: 5f 4c 41 54 20 20 20 20 20 20 20 3d 20 41 46 5f _LAT = AF_
2ac0: 4c 41 54 2c 0d 0a 09 50 46 5f 48 59 4c 49 4e 4b LAT,...PF_HYLINK
2ad0: 20 20 20 20 3d 20 41 46 5f 48 59 4c 49 4e 4b 2c = AF_HYLINK,
2ae0: 0d 0a 09 50 46 5f 41 50 50 4c 45 54 41 4c 4b 20 ...PF_APPLETALK
2af0: 3d 20 41 46 5f 41 50 50 4c 45 54 41 4c 4b 2c 0d = AF_APPLETALK,.
2b00: 0a 09 50 46 5f 56 4f 49 43 45 56 49 45 57 20 3d ..PF_VOICEVIEW =
2b10: 20 41 46 5f 56 4f 49 43 45 56 49 45 57 2c 0d 0a AF_VOICEVIEW,..
2b20: 09 50 46 5f 46 49 52 45 46 4f 58 20 20 20 3d 20 .PF_FIREFOX =
2b30: 41 46 5f 46 49 52 45 46 4f 58 2c 0d 0a 09 50 46 AF_FIREFOX,...PF
2b40: 5f 55 4e 4b 4e 4f 57 4e 31 20 20 3d 20 41 46 5f _UNKNOWN1 = AF_
2b50: 55 4e 4b 4e 4f 57 4e 31 2c 0d 0a 09 50 46 5f 42 UNKNOWN1,...PF_B
2b60: 41 4e 20 20 20 20 20 20 20 3d 20 41 46 5f 42 41 AN = AF_BA
2b70: 4e 2c 0d 0a 09 50 46 5f 41 54 4d 20 20 20 20 20 N,...PF_ATM
2b80: 20 20 3d 20 41 46 5f 41 54 4d 2c 0d 0a 09 50 46 = AF_ATM,...PF
2b90: 5f 49 4e 45 54 36 20 20 20 20 20 3d 20 41 46 5f _INET6 = AF_
2ba0: 49 4e 45 54 36 2c 0d 0a 09 50 46 5f 4d 41 58 20 INET6,...PF_MAX
2bb0: 20 20 20 20 20 20 3d 20 41 46 5f 4d 41 58 0d 0a = AF_MAX..
2bc0: 7d 0d 0a 0d 0a 63 6f 6e 73 74 20 69 6e 74 20 53 }....const int S
2bd0: 4f 4c 5f 53 4f 43 4b 45 54 20 3d 20 30 78 46 46 OL_SOCKET = 0xFF
2be0: 46 46 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 69 6e 74 FF;....const int
2bf0: 20 53 4f 4d 41 58 43 4f 4e 4e 20 3d 20 35 3b 0d SOMAXCONN = 5;.
2c00: 0a 0d 0a 63 6f 6e 73 74 20 69 6e 74 0d 0a 09 4d ...const int...M
2c10: 53 47 5f 4f 4f 42 20 20 20 20 20 20 20 3d 20 31 SG_OOB = 1
2c20: 2c 0d 0a 09 4d 53 47 5f 50 45 45 4b 20 20 20 20 ,...MSG_PEEK
2c30: 20 20 3d 20 32 2c 0d 0a 09 4d 53 47 5f 44 4f 4e = 2,...MSG_DON
2c40: 54 52 4f 55 54 45 20 3d 20 34 2c 0d 0a 09 4d 53 TROUTE = 4,...MS
2c50: 47 5f 4d 41 58 49 4f 56 4c 45 4e 20 3d 20 31 36 G_MAXIOVLEN = 16
2c60: 2c 0d 0a 09 4d 53 47 5f 50 41 52 54 49 41 4c 20 ,...MSG_PARTIAL
2c70: 20 20 3d 20 30 78 38 30 30 30 3b 0d 0a 0d 0a 63 = 0x8000;....c
2c80: 6f 6e 73 74 20 73 69 7a 65 5f 74 20 4d 41 58 47 onst size_t MAXG
2c90: 45 54 48 4f 53 54 53 54 52 55 43 54 20 3d 20 31 ETHOSTSTRUCT = 1
2ca0: 30 32 34 3b 0d 0a 0d 0a 2f 2f 20 4e 6f 74 20 64 024;....// Not d
2cb0: 6f 63 75 6d 65 6e 74 65 64 20 6f 6e 20 4d 53 44 ocumented on MSD
2cc0: 4e 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 46 44 5f 52 N..enum {...FD_R
2cd0: 45 41 44 5f 42 49 54 2c 0d 0a 09 46 44 5f 57 52 EAD_BIT,...FD_WR
2ce0: 49 54 45 5f 42 49 54 2c 0d 0a 09 46 44 5f 4f 4f ITE_BIT,...FD_OO
2cf0: 42 5f 42 49 54 2c 0d 0a 09 46 44 5f 41 43 43 45 B_BIT,...FD_ACCE
2d00: 50 54 5f 42 49 54 2c 0d 0a 09 46 44 5f 43 4f 4e PT_BIT,...FD_CON
2d10: 4e 45 43 54 5f 42 49 54 2c 0d 0a 09 46 44 5f 43 NECT_BIT,...FD_C
2d20: 4c 4f 53 45 5f 42 49 54 2c 0d 0a 09 46 44 5f 51 LOSE_BIT,...FD_Q
2d30: 4f 53 5f 42 49 54 2c 0d 0a 09 46 44 5f 47 52 4f OS_BIT,...FD_GRO
2d40: 55 50 5f 51 4f 53 5f 42 49 54 2c 0d 0a 09 46 44 UP_QOS_BIT,...FD
2d50: 5f 52 4f 55 54 49 4e 47 5f 49 4e 54 45 52 46 41 _ROUTING_INTERFA
2d60: 43 45 5f 43 48 41 4e 47 45 5f 42 49 54 2c 0d 0a CE_CHANGE_BIT,..
2d70: 09 46 44 5f 41 44 44 52 45 53 53 5f 4c 49 53 54 .FD_ADDRESS_LIST
2d80: 5f 43 48 41 4e 47 45 5f 42 49 54 2c 0d 0a 09 46 _CHANGE_BIT,...F
2d90: 44 5f 4d 41 58 5f 45 56 45 4e 54 53 20 2f 2f 20 D_MAX_EVENTS //
2da0: 3d 20 31 30 0d 0a 7d 0d 0a 0d 0a 63 6f 6e 73 74 = 10..}....const
2db0: 20 69 6e 74 0d 0a 09 46 44 5f 52 45 41 44 20 20 int...FD_READ
2dc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2dd0: 20 20 20 3d 20 31 20 3c 3c 20 46 44 5f 52 45 41 = 1 << FD_REA
2de0: 44 5f 42 49 54 2c 0d 0a 09 46 44 5f 57 52 49 54 D_BIT,...FD_WRIT
2df0: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
2e00: 20 20 20 20 20 3d 20 31 20 3c 3c 20 46 44 5f 57 = 1 << FD_W
2e10: 52 49 54 45 5f 42 49 54 2c 0d 0a 09 46 44 5f 4f RITE_BIT,...FD_O
2e20: 4f 42 20 20 20 20 20 20 20 20 20 20 20 20 20 20 OB
2e30: 20 20 20 20 20 20 20 20 3d 20 31 20 3c 3c 20 46 = 1 << F
2e40: 44 5f 4f 4f 42 5f 42 49 54 2c 0d 0a 09 46 44 5f D_OOB_BIT,...FD_
2e50: 41 43 43 45 50 54 20 20 20 20 20 20 20 20 20 20 ACCEPT
2e60: 20 20 20 20 20 20 20 20 20 3d 20 31 20 3c 3c 20 = 1 <<
2e70: 46 44 5f 41 43 43 45 50 54 5f 42 49 54 2c 0d 0a FD_ACCEPT_BIT,..
2e80: 09 46 44 5f 43 4f 4e 4e 45 43 54 20 20 20 20 20 .FD_CONNECT
2e90: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 31 = 1
2ea0: 20 3c 3c 20 46 44 5f 43 4f 4e 4e 45 43 54 5f 42 << FD_CONNECT_B
2eb0: 49 54 2c 0d 0a 09 46 44 5f 43 4c 4f 53 45 20 20 IT,...FD_CLOSE
2ec0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2ed0: 20 20 3d 20 31 20 3c 3c 20 46 44 5f 43 4c 4f 53 = 1 << FD_CLOS
2ee0: 45 5f 42 49 54 2c 0d 0a 09 46 44 5f 51 4f 53 20 E_BIT,...FD_QOS
2ef0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2f00: 20 20 20 20 20 3d 20 31 20 3c 3c 20 46 44 5f 51 = 1 << FD_Q
2f10: 4f 53 5f 42 49 54 2c 0d 0a 09 46 44 5f 47 52 4f OS_BIT,...FD_GRO
2f20: 55 50 5f 51 4f 53 20 20 20 20 20 20 20 20 20 20 UP_QOS
2f30: 20 20 20 20 20 20 3d 20 31 20 3c 3c 20 46 44 5f = 1 << FD_
2f40: 47 52 4f 55 50 5f 51 4f 53 5f 42 49 54 2c 0d 0a GROUP_QOS_BIT,..
2f50: 09 46 44 5f 52 4f 55 54 49 4e 47 5f 49 4e 54 45 .FD_ROUTING_INTE
2f60: 52 46 41 43 45 5f 43 48 41 4e 47 45 20 3d 20 31 RFACE_CHANGE = 1
2f70: 20 3c 3c 20 46 44 5f 52 4f 55 54 49 4e 47 5f 49 << FD_ROUTING_I
2f80: 4e 54 45 52 46 41 43 45 5f 43 48 41 4e 47 45 5f NTERFACE_CHANGE_
2f90: 42 49 54 2c 0d 0a 09 46 44 5f 41 44 44 52 45 53 BIT,...FD_ADDRES
2fa0: 53 5f 4c 49 53 54 5f 43 48 41 4e 47 45 20 20 20 S_LIST_CHANGE
2fb0: 20 20 20 3d 20 31 20 3c 3c 20 46 44 5f 41 44 44 = 1 << FD_ADD
2fc0: 52 45 53 53 5f 4c 49 53 54 5f 43 48 41 4e 47 45 RESS_LIST_CHANGE
2fd0: 5f 42 49 54 2c 0d 0a 09 46 44 5f 41 4c 4c 5f 45 _BIT,...FD_ALL_E
2fe0: 56 45 4e 54 53 20 20 20 20 20 20 20 20 20 20 20 VENTS
2ff0: 20 20 20 20 3d 20 28 31 20 3c 3c 20 46 44 5f 4d = (1 << FD_M
3000: 41 58 5f 45 56 45 4e 54 53 29 20 2d 20 31 3b 0d AX_EVENTS) - 1;.
3010: 0a 0d 0a 65 6e 75 6d 20 3a 20 69 6e 74 20 7b 0d ...enum : int {.
3020: 0a 09 57 53 41 42 41 53 45 45 52 52 20 20 20 20 ..WSABASEERR
3030: 20 20 20 20 20 3d 20 31 30 30 30 30 2c 0d 0a 09 = 10000,...
3040: 57 53 41 45 49 4e 54 52 20 20 20 20 20 20 20 20 WSAEINTR
3050: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
3060: 2b 20 34 2c 0d 0a 09 57 53 41 45 42 41 44 46 20 + 4,...WSAEBADF
3070: 20 20 20 20 20 20 20 20 20 20 3d 20 57 53 41 42 = WSAB
3080: 41 53 45 45 52 52 20 2b 20 39 2c 0d 0a 09 57 53 ASEERR + 9,...WS
3090: 41 45 41 43 43 45 53 20 20 20 20 20 20 20 20 20 AEACCES
30a0: 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 = WSABASEERR +
30b0: 31 33 2c 0d 0a 09 57 53 41 45 46 41 55 4c 54 20 13,...WSAEFAULT
30c0: 20 20 20 20 20 20 20 20 20 3d 20 57 53 41 42 41 = WSABA
30d0: 53 45 45 52 52 20 2b 20 31 34 2c 0d 0a 09 57 53 SEERR + 14,...WS
30e0: 41 45 49 4e 56 41 4c 20 20 20 20 20 20 20 20 20 AEINVAL
30f0: 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 = WSABASEERR +
3100: 32 32 2c 0d 0a 09 57 53 41 45 4d 46 49 4c 45 20 22,...WSAEMFILE
3110: 20 20 20 20 20 20 20 20 20 3d 20 57 53 41 42 41 = WSABA
3120: 53 45 45 52 52 20 2b 20 32 34 2c 0d 0a 09 57 53 SEERR + 24,...WS
3130: 41 45 57 4f 55 4c 44 42 4c 4f 43 4b 20 20 20 20 AEWOULDBLOCK
3140: 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 = WSABASEERR +
3150: 33 35 2c 0d 0a 09 57 53 41 45 49 4e 50 52 4f 47 35,...WSAEINPROG
3160: 52 45 53 53 20 20 20 20 20 3d 20 57 53 41 42 41 RESS = WSABA
3170: 53 45 45 52 52 20 2b 20 33 36 2c 20 2f 2f 20 64 SEERR + 36, // d
3180: 65 70 72 65 63 61 74 65 64 20 6f 6e 20 57 69 6e eprecated on Win
3190: 53 6f 63 6b 32 0d 0a 09 57 53 41 45 41 4c 52 45 Sock2...WSAEALRE
31a0: 41 44 59 20 20 20 20 20 20 20 20 3d 20 57 53 41 ADY = WSA
31b0: 42 41 53 45 45 52 52 20 2b 20 33 37 2c 0d 0a 09 BASEERR + 37,...
31c0: 57 53 41 45 4e 4f 54 53 4f 43 4b 20 20 20 20 20 WSAENOTSOCK
31d0: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
31e0: 2b 20 33 38 2c 0d 0a 09 57 53 41 45 44 45 53 54 + 38,...WSAEDEST
31f0: 41 44 44 52 52 45 51 20 20 20 20 3d 20 57 53 41 ADDRREQ = WSA
3200: 42 41 53 45 45 52 52 20 2b 20 33 39 2c 0d 0a 09 BASEERR + 39,...
3210: 57 53 41 45 4d 53 47 53 49 5a 45 20 20 20 20 20 WSAEMSGSIZE
3220: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
3230: 2b 20 34 30 2c 0d 0a 09 57 53 41 45 50 52 4f 54 + 40,...WSAEPROT
3240: 4f 54 59 50 45 20 20 20 20 20 20 3d 20 57 53 41 OTYPE = WSA
3250: 42 41 53 45 45 52 52 20 2b 20 34 31 2c 0d 0a 09 BASEERR + 41,...
3260: 57 53 41 45 4e 4f 50 52 4f 54 4f 4f 50 54 20 20 WSAENOPROTOOPT
3270: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
3280: 2b 20 34 32 2c 0d 0a 09 57 53 41 45 50 52 4f 54 + 42,...WSAEPROT
3290: 4f 4e 4f 53 55 50 50 4f 52 54 20 3d 20 57 53 41 ONOSUPPORT = WSA
32a0: 42 41 53 45 45 52 52 20 2b 20 34 33 2c 0d 0a 09 BASEERR + 43,...
32b0: 57 53 41 45 53 4f 43 4b 54 4e 4f 53 55 50 50 4f WSAESOCKTNOSUPPO
32c0: 52 54 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 RT = WSABASEERR
32d0: 2b 20 34 34 2c 0d 0a 09 57 53 41 45 4f 50 4e 4f + 44,...WSAEOPNO
32e0: 54 53 55 50 50 20 20 20 20 20 20 3d 20 57 53 41 TSUPP = WSA
32f0: 42 41 53 45 45 52 52 20 2b 20 34 35 2c 0d 0a 09 BASEERR + 45,...
3300: 57 53 41 45 50 46 4e 4f 53 55 50 50 4f 52 54 20 WSAEPFNOSUPPORT
3310: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
3320: 2b 20 34 36 2c 0d 0a 09 57 53 41 45 41 46 4e 4f + 46,...WSAEAFNO
3330: 53 55 50 50 4f 52 54 20 20 20 20 3d 20 57 53 41 SUPPORT = WSA
3340: 42 41 53 45 45 52 52 20 2b 20 34 37 2c 0d 0a 09 BASEERR + 47,...
3350: 57 53 41 45 41 44 44 52 49 4e 55 53 45 20 20 20 WSAEADDRINUSE
3360: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
3370: 2b 20 34 38 2c 0d 0a 09 57 53 41 45 41 44 44 52 + 48,...WSAEADDR
3380: 4e 4f 54 41 56 41 49 4c 20 20 20 3d 20 57 53 41 NOTAVAIL = WSA
3390: 42 41 53 45 45 52 52 20 2b 20 34 39 2c 0d 0a 09 BASEERR + 49,...
33a0: 57 53 41 45 4e 45 54 44 4f 57 4e 20 20 20 20 20 WSAENETDOWN
33b0: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
33c0: 2b 20 35 30 2c 0d 0a 09 57 53 41 45 4e 45 54 55 + 50,...WSAENETU
33d0: 4e 52 45 41 43 48 20 20 20 20 20 3d 20 57 53 41 NREACH = WSA
33e0: 42 41 53 45 45 52 52 20 2b 20 35 31 2c 0d 0a 09 BASEERR + 51,...
33f0: 57 53 41 45 4e 45 54 52 45 53 45 54 20 20 20 20 WSAENETRESET
3400: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
3410: 2b 20 35 32 2c 0d 0a 09 57 53 41 45 43 4f 4e 4e + 52,...WSAECONN
3420: 41 42 4f 52 54 45 44 20 20 20 20 3d 20 57 53 41 ABORTED = WSA
3430: 42 41 53 45 45 52 52 20 2b 20 35 33 2c 0d 0a 09 BASEERR + 53,...
3440: 57 53 41 45 43 4f 4e 4e 52 45 53 45 54 20 20 20 WSAECONNRESET
3450: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
3460: 2b 20 35 34 2c 0d 0a 09 57 53 41 45 4e 4f 42 55 + 54,...WSAENOBU
3470: 46 53 20 20 20 20 20 20 20 20 20 3d 20 57 53 41 FS = WSA
3480: 42 41 53 45 45 52 52 20 2b 20 35 35 2c 0d 0a 09 BASEERR + 55,...
3490: 57 53 41 45 49 53 43 4f 4e 4e 20 20 20 20 20 20 WSAEISCONN
34a0: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
34b0: 2b 20 35 36 2c 0d 0a 09 57 53 41 45 4e 4f 54 43 + 56,...WSAENOTC
34c0: 4f 4e 4e 20 20 20 20 20 20 20 20 3d 20 57 53 41 ONN = WSA
34d0: 42 41 53 45 45 52 52 20 2b 20 35 37 2c 0d 0a 09 BASEERR + 57,...
34e0: 57 53 41 45 53 48 55 54 44 4f 57 4e 20 20 20 20 WSAESHUTDOWN
34f0: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
3500: 2b 20 35 38 2c 0d 0a 09 57 53 41 45 54 4f 4f 4d + 58,...WSAETOOM
3510: 41 4e 59 52 45 46 53 20 20 20 20 3d 20 57 53 41 ANYREFS = WSA
3520: 42 41 53 45 45 52 52 20 2b 20 35 39 2c 0d 0a 09 BASEERR + 59,...
3530: 57 53 41 45 54 49 4d 45 44 4f 55 54 20 20 20 20 WSAETIMEDOUT
3540: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
3550: 2b 20 36 30 2c 0d 0a 09 57 53 41 45 43 4f 4e 4e + 60,...WSAECONN
3560: 52 45 46 55 53 45 44 20 20 20 20 3d 20 57 53 41 REFUSED = WSA
3570: 42 41 53 45 45 52 52 20 2b 20 36 31 2c 0d 0a 09 BASEERR + 61,...
3580: 57 53 41 45 4c 4f 4f 50 20 20 20 20 20 20 20 20 WSAELOOP
3590: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
35a0: 2b 20 36 32 2c 0d 0a 09 57 53 41 45 4e 41 4d 45 + 62,...WSAENAME
35b0: 54 4f 4f 4c 4f 4e 47 20 20 20 20 3d 20 57 53 41 TOOLONG = WSA
35c0: 42 41 53 45 45 52 52 20 2b 20 36 33 2c 0d 0a 09 BASEERR + 63,...
35d0: 57 53 41 45 48 4f 53 54 44 4f 57 4e 20 20 20 20 WSAEHOSTDOWN
35e0: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
35f0: 2b 20 36 34 2c 0d 0a 09 57 53 41 45 48 4f 53 54 + 64,...WSAEHOST
3600: 55 4e 52 45 41 43 48 20 20 20 20 3d 20 57 53 41 UNREACH = WSA
3610: 42 41 53 45 45 52 52 20 2b 20 36 35 2c 0d 0a 09 BASEERR + 65,...
3620: 57 53 41 45 4e 4f 54 45 4d 50 54 59 20 20 20 20 WSAENOTEMPTY
3630: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
3640: 2b 20 36 36 2c 0d 0a 09 57 53 41 45 50 52 4f 43 + 66,...WSAEPROC
3650: 4c 49 4d 20 20 20 20 20 20 20 20 3d 20 57 53 41 LIM = WSA
3660: 42 41 53 45 45 52 52 20 2b 20 36 37 2c 0d 0a 09 BASEERR + 67,...
3670: 57 53 41 45 55 53 45 52 53 20 20 20 20 20 20 20 WSAEUSERS
3680: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
3690: 2b 20 36 38 2c 0d 0a 09 57 53 41 45 44 51 55 4f + 68,...WSAEDQUO
36a0: 54 20 20 20 20 20 20 20 20 20 20 3d 20 57 53 41 T = WSA
36b0: 42 41 53 45 45 52 52 20 2b 20 36 39 2c 0d 0a 09 BASEERR + 69,...
36c0: 57 53 41 45 53 54 41 4c 45 20 20 20 20 20 20 20 WSAESTALE
36d0: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
36e0: 2b 20 37 30 2c 0d 0a 09 57 53 41 45 52 45 4d 4f + 70,...WSAEREMO
36f0: 54 45 20 20 20 20 20 20 20 20 20 3d 20 57 53 41 TE = WSA
3700: 42 41 53 45 45 52 52 20 2b 20 37 31 2c 0d 0a 09 BASEERR + 71,...
3710: 57 53 41 45 44 49 53 43 4f 4e 20 20 20 20 20 20 WSAEDISCON
3720: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
3730: 2b 20 31 30 31 2c 0d 0a 09 57 53 41 53 59 53 4e + 101,...WSASYSN
3740: 4f 54 52 45 41 44 59 20 20 20 20 20 3d 20 57 53 OTREADY = WS
3750: 41 42 41 53 45 45 52 52 20 2b 20 39 31 2c 0d 0a ABASEERR + 91,..
3760: 09 57 53 41 56 45 52 4e 4f 54 53 55 50 50 4f 52 .WSAVERNOTSUPPOR
3770: 54 45 44 20 3d 20 57 53 41 42 41 53 45 45 52 52 TED = WSABASEERR
3780: 20 2b 20 39 32 2c 0d 0a 09 57 53 41 4e 4f 54 49 + 92,...WSANOTI
3790: 4e 49 54 49 41 4c 49 53 45 44 20 20 3d 20 57 53 NITIALISED = WS
37a0: 41 42 41 53 45 45 52 52 20 2b 20 39 33 2c 0d 0a ABASEERR + 93,..
37b0: 09 57 53 41 48 4f 53 54 5f 4e 4f 54 5f 46 4f 55 .WSAHOST_NOT_FOU
37c0: 4e 44 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 ND = WSABASEERR
37d0: 20 2b 20 31 30 30 31 2c 0d 0a 09 57 53 41 54 52 + 1001,...WSATR
37e0: 59 5f 41 47 41 49 4e 20 20 20 20 20 20 20 3d 20 Y_AGAIN =
37f0: 57 53 41 42 41 53 45 45 52 52 20 2b 20 31 30 30 WSABASEERR + 100
3800: 32 2c 0d 0a 09 57 53 41 4e 4f 5f 52 45 43 4f 56 2,...WSANO_RECOV
3810: 45 52 59 20 20 20 20 20 3d 20 57 53 41 42 41 53 ERY = WSABAS
3820: 45 45 52 52 20 2b 20 31 30 30 33 2c 0d 0a 09 57 EERR + 1003,...W
3830: 53 41 4e 4f 5f 44 41 54 41 20 20 20 20 20 20 20 SANO_DATA
3840: 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b = WSABASEERR +
3850: 20 31 30 30 34 2c 0d 0a 09 57 53 41 4e 4f 5f 41 1004,...WSANO_A
3860: 44 44 52 45 53 53 20 20 20 20 20 20 3d 20 57 53 DDRESS = WS
3870: 41 4e 4f 5f 44 41 54 41 2c 0d 0a 0d 0a 09 2f 2f ANO_DATA,.....//
3880: 20 57 69 6e 53 6f 63 6b 32 20 73 70 65 63 69 66 WinSock2 specif
3890: 69 63 20 65 72 72 6f 72 20 63 6f 64 65 73 0d 0a ic error codes..
38a0: 09 57 53 41 45 4e 4f 4d 4f 52 45 20 20 20 20 20 .WSAENOMORE
38b0: 20 20 20 20 20 20 20 20 3d 20 57 53 41 42 41 53 = WSABAS
38c0: 45 45 52 52 20 2b 20 31 30 32 2c 0d 0a 09 57 53 EERR + 102,...WS
38d0: 41 45 43 41 4e 43 45 4c 4c 45 44 20 20 20 20 20 AECANCELLED
38e0: 20 20 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 = WSABASEER
38f0: 52 20 2b 20 31 30 33 2c 0d 0a 09 57 53 41 45 49 R + 103,...WSAEI
3900: 4e 56 41 4c 49 44 50 52 4f 43 54 41 42 4c 45 20 NVALIDPROCTABLE
3910: 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b = WSABASEERR +
3920: 20 31 30 34 2c 0d 0a 09 57 53 41 45 49 4e 56 41 104,...WSAEINVA
3930: 4c 49 44 50 52 4f 56 49 44 45 52 20 20 20 20 3d LIDPROVIDER =
3940: 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 31 30 WSABASEERR + 10
3950: 35 2c 0d 0a 09 57 53 41 45 50 52 4f 56 49 44 45 5,...WSAEPROVIDE
3960: 52 46 41 49 4c 45 44 49 4e 49 54 20 3d 20 57 53 RFAILEDINIT = WS
3970: 41 42 41 53 45 45 52 52 20 2b 20 31 30 36 2c 0d ABASEERR + 106,.
3980: 0a 09 57 53 41 53 59 53 43 41 4c 4c 46 41 49 4c ..WSASYSCALLFAIL
3990: 55 52 45 20 20 20 20 20 20 3d 20 57 53 41 42 41 URE = WSABA
39a0: 53 45 45 52 52 20 2b 20 31 30 37 2c 0d 0a 09 57 SEERR + 107,...W
39b0: 53 41 53 45 52 56 49 43 45 5f 4e 4f 54 5f 46 4f SASERVICE_NOT_FO
39c0: 55 4e 44 20 20 20 3d 20 57 53 41 42 41 53 45 45 UND = WSABASEE
39d0: 52 52 20 2b 20 31 30 38 2c 0d 0a 09 57 53 41 54 RR + 108,...WSAT
39e0: 59 50 45 5f 4e 4f 54 5f 46 4f 55 4e 44 20 20 20 YPE_NOT_FOUND
39f0: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
3a00: 2b 20 31 30 39 2c 0d 0a 09 57 53 41 5f 45 5f 4e + 109,...WSA_E_N
3a10: 4f 5f 4d 4f 52 45 20 20 20 20 20 20 20 20 20 20 O_MORE
3a20: 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 31 = WSABASEERR + 1
3a30: 31 30 2c 0d 0a 09 57 53 41 5f 45 5f 43 41 4e 43 10,...WSA_E_CANC
3a40: 45 4c 4c 45 44 20 20 20 20 20 20 20 20 3d 20 57 ELLED = W
3a50: 53 41 42 41 53 45 45 52 52 20 2b 20 31 31 31 2c SABASEERR + 111,
3a60: 0d 0a 09 57 53 41 45 52 45 46 55 53 45 44 20 20 ...WSAEREFUSED
3a70: 20 20 20 20 20 20 20 20 20 20 3d 20 57 53 41 42 = WSAB
3a80: 41 53 45 45 52 52 20 2b 20 31 31 32 2c 0d 0a 0d ASEERR + 112,...
3a90: 0a 09 2f 2f 20 57 53 20 51 75 61 6c 69 74 79 6f ..// WS Qualityo
3aa0: 66 53 65 72 76 69 63 65 20 65 72 72 6f 72 73 0d fService errors.
3ab0: 0a 09 57 53 41 5f 51 4f 53 5f 52 45 43 45 49 56 ..WSA_QOS_RECEIV
3ac0: 45 52 53 20 20 20 20 20 20 20 20 20 20 3d 20 57 ERS = W
3ad0: 53 41 42 41 53 45 45 52 52 20 2b 20 31 30 30 35 SABASEERR + 1005
3ae0: 2c 0d 0a 09 57 53 41 5f 51 4f 53 5f 53 45 4e 44 ,...WSA_QOS_SEND
3af0: 45 52 53 20 20 20 20 20 20 20 20 20 20 20 20 3d ERS =
3b00: 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 31 30 WSABASEERR + 10
3b10: 30 36 2c 0d 0a 09 57 53 41 5f 51 4f 53 5f 4e 4f 06,...WSA_QOS_NO
3b20: 5f 53 45 4e 44 45 52 53 20 20 20 20 20 20 20 20 _SENDERS
3b30: 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 = WSABASEERR +
3b40: 31 30 30 37 2c 0d 0a 09 57 53 41 5f 51 4f 53 5f 1007,...WSA_QOS_
3b50: 4e 4f 5f 52 45 43 45 49 56 45 52 53 20 20 20 20 NO_RECEIVERS
3b60: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
3b70: 2b 20 31 30 30 38 2c 0d 0a 09 57 53 41 5f 51 4f + 1008,...WSA_QO
3b80: 53 5f 52 45 51 55 45 53 54 5f 43 4f 4e 46 49 52 S_REQUEST_CONFIR
3b90: 4d 45 44 20 20 3d 20 57 53 41 42 41 53 45 45 52 MED = WSABASEER
3ba0: 52 20 2b 20 31 30 30 39 2c 0d 0a 09 57 53 41 5f R + 1009,...WSA_
3bb0: 51 4f 53 5f 41 44 4d 49 53 53 49 4f 4e 5f 46 41 QOS_ADMISSION_FA
3bc0: 49 4c 55 52 45 20 20 3d 20 57 53 41 42 41 53 45 ILURE = WSABASE
3bd0: 45 52 52 20 2b 20 31 30 31 30 2c 0d 0a 09 57 53 ERR + 1010,...WS
3be0: 41 5f 51 4f 53 5f 50 4f 4c 49 43 59 5f 46 41 49 A_QOS_POLICY_FAI
3bf0: 4c 55 52 45 20 20 20 20 20 3d 20 57 53 41 42 41 LURE = WSABA
3c00: 53 45 45 52 52 20 2b 20 31 30 31 31 2c 0d 0a 09 SEERR + 1011,...
3c10: 57 53 41 5f 51 4f 53 5f 42 41 44 5f 53 54 59 4c WSA_QOS_BAD_STYL
3c20: 45 20 20 20 20 20 20 20 20 20 20 3d 20 57 53 41 E = WSA
3c30: 42 41 53 45 45 52 52 20 2b 20 31 30 31 32 2c 0d BASEERR + 1012,.
3c40: 0a 09 57 53 41 5f 51 4f 53 5f 42 41 44 5f 4f 42 ..WSA_QOS_BAD_OB
3c50: 4a 45 43 54 20 20 20 20 20 20 20 20 20 3d 20 57 JECT = W
3c60: 53 41 42 41 53 45 45 52 52 20 2b 20 31 30 31 33 SABASEERR + 1013
3c70: 2c 0d 0a 09 57 53 41 5f 51 4f 53 5f 54 52 41 46 ,...WSA_QOS_TRAF
3c80: 46 49 43 5f 43 54 52 4c 5f 45 52 52 4f 52 20 3d FIC_CTRL_ERROR =
3c90: 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 31 30 WSABASEERR + 10
3ca0: 31 34 2c 0d 0a 09 57 53 41 5f 51 4f 53 5f 47 45 14,...WSA_QOS_GE
3cb0: 4e 45 52 49 43 5f 45 52 52 4f 52 20 20 20 20 20 NERIC_ERROR
3cc0: 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 = WSABASEERR +
3cd0: 31 30 31 35 2c 0d 0a 09 57 53 41 5f 51 4f 53 5f 1015,...WSA_QOS_
3ce0: 45 53 45 52 56 49 43 45 54 59 50 45 20 20 20 20 ESERVICETYPE
3cf0: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
3d00: 2b 20 31 30 31 36 2c 0d 0a 09 57 53 41 5f 51 4f + 1016,...WSA_QO
3d10: 53 5f 45 46 4c 4f 57 53 50 45 43 20 20 20 20 20 S_EFLOWSPEC
3d20: 20 20 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 = WSABASEER
3d30: 52 20 2b 20 31 30 31 37 2c 0d 0a 09 57 53 41 5f R + 1017,...WSA_
3d40: 51 4f 53 5f 45 50 52 4f 56 53 50 45 43 42 55 46 QOS_EPROVSPECBUF
3d50: 20 20 20 20 20 20 20 3d 20 57 53 41 42 41 53 45 = WSABASE
3d60: 45 52 52 20 2b 20 31 30 31 38 2c 0d 0a 09 57 53 ERR + 1018,...WS
3d70: 41 5f 51 4f 53 5f 45 46 49 4c 54 45 52 53 54 59 A_QOS_EFILTERSTY
3d80: 4c 45 20 20 20 20 20 20 20 3d 20 57 53 41 42 41 LE = WSABA
3d90: 53 45 45 52 52 20 2b 20 31 30 31 39 2c 0d 0a 09 SEERR + 1019,...
3da0: 57 53 41 5f 51 4f 53 5f 45 46 49 4c 54 45 52 54 WSA_QOS_EFILTERT
3db0: 59 50 45 20 20 20 20 20 20 20 20 3d 20 57 53 41 YPE = WSA
3dc0: 42 41 53 45 45 52 52 20 2b 20 31 30 32 30 2c 0d BASEERR + 1020,.
3dd0: 0a 09 57 53 41 5f 51 4f 53 5f 45 46 49 4c 54 45 ..WSA_QOS_EFILTE
3de0: 52 43 4f 55 4e 54 20 20 20 20 20 20 20 3d 20 57 RCOUNT = W
3df0: 53 41 42 41 53 45 45 52 52 20 2b 20 31 30 32 31 SABASEERR + 1021
3e00: 2c 0d 0a 09 57 53 41 5f 51 4f 53 5f 45 4f 42 4a ,...WSA_QOS_EOBJ
3e10: 4c 45 4e 47 54 48 20 20 20 20 20 20 20 20 20 3d LENGTH =
3e20: 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 31 30 WSABASEERR + 10
3e30: 32 32 2c 0d 0a 09 57 53 41 5f 51 4f 53 5f 45 46 22,...WSA_QOS_EF
3e40: 4c 4f 57 43 4f 55 4e 54 20 20 20 20 20 20 20 20 LOWCOUNT
3e50: 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 = WSABASEERR +
3e60: 31 30 32 33 2c 0d 0a 09 57 53 41 5f 51 4f 53 5f 1023,...WSA_QOS_
3e70: 45 55 4e 4b 4f 57 4e 50 53 4f 42 4a 20 20 20 20 EUNKOWNPSOBJ
3e80: 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 = WSABASEERR
3e90: 2b 20 31 30 32 34 2c 0d 0a 09 57 53 41 5f 51 4f + 1024,...WSA_QO
3ea0: 53 5f 45 50 4f 4c 49 43 59 4f 42 4a 20 20 20 20 S_EPOLICYOBJ
3eb0: 20 20 20 20 20 3d 20 57 53 41 42 41 53 45 45 52 = WSABASEER
3ec0: 52 20 2b 20 31 30 32 35 2c 0d 0a 09 57 53 41 5f R + 1025,...WSA_
3ed0: 51 4f 53 5f 45 46 4c 4f 57 44 45 53 43 20 20 20 QOS_EFLOWDESC
3ee0: 20 20 20 20 20 20 20 3d 20 57 53 41 42 41 53 45 = WSABASE
3ef0: 45 52 52 20 2b 20 31 30 32 36 2c 0d 0a 09 57 53 ERR + 1026,...WS
3f00: 41 5f 51 4f 53 5f 45 50 53 46 4c 4f 57 53 50 45 A_QOS_EPSFLOWSPE
3f10: 43 20 20 20 20 20 20 20 20 3d 20 57 53 41 42 41 C = WSABA
3f20: 53 45 45 52 52 20 2b 20 31 30 32 37 2c 0d 0a 09 SEERR + 1027,...
3f30: 57 53 41 5f 51 4f 53 5f 45 50 53 46 49 4c 54 45 WSA_QOS_EPSFILTE
3f40: 52 53 50 45 43 20 20 20 20 20 20 3d 20 57 53 41 RSPEC = WSA
3f50: 42 41 53 45 45 52 52 20 2b 20 31 30 32 38 2c 0d BASEERR + 1028,.
3f60: 0a 09 57 53 41 5f 51 4f 53 5f 45 53 44 4d 4f 44 ..WSA_QOS_ESDMOD
3f70: 45 4f 42 4a 20 20 20 20 20 20 20 20 20 3d 20 57 EOBJ = W
3f80: 53 41 42 41 53 45 45 52 52 20 2b 20 31 30 32 39 SABASEERR + 1029
3f90: 2c 0d 0a 09 57 53 41 5f 51 4f 53 5f 45 53 48 41 ,...WSA_QOS_ESHA
3fa0: 50 45 52 41 54 45 4f 42 4a 20 20 20 20 20 20 3d PERATEOBJ =
3fb0: 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 31 30 WSABASEERR + 10
3fc0: 33 30 2c 0d 0a 09 57 53 41 5f 51 4f 53 5f 52 45 30,...WSA_QOS_RE
3fd0: 53 45 52 56 45 44 5f 50 45 54 59 50 45 20 20 20 SERVED_PETYPE
3fe0: 20 3d 20 57 53 41 42 41 53 45 45 52 52 20 2b 20 = WSABASEERR +
3ff0: 31 30 33 31 0d 0a 7d 0d 0a 0d 0a 61 6c 69 61 73 1031..}....alias
4000: 20 57 53 41 47 65 74 4c 61 73 74 45 72 72 6f 72 WSAGetLastError
4010: 20 68 5f 65 72 72 6e 6f 3b 0d 0a 0d 0a 65 6e 75 h_errno;....enu
4020: 6d 20 3a 20 69 6e 74 20 7b 0d 0a 09 48 4f 53 54 m : int {...HOST
4030: 5f 4e 4f 54 5f 46 4f 55 4e 44 20 3d 20 57 53 41 _NOT_FOUND = WSA
4040: 48 4f 53 54 5f 4e 4f 54 5f 46 4f 55 4e 44 2c 0d HOST_NOT_FOUND,.
4050: 0a 09 54 52 59 5f 41 47 41 49 4e 20 20 20 20 20 ..TRY_AGAIN
4060: 20 3d 20 57 53 41 54 52 59 5f 41 47 41 49 4e 2c = WSATRY_AGAIN,
4070: 0d 0a 09 4e 4f 5f 52 45 43 4f 56 45 52 59 20 20 ...NO_RECOVERY
4080: 20 20 3d 20 57 53 41 4e 4f 5f 52 45 43 4f 56 45 = WSANO_RECOVE
4090: 52 59 2c 0d 0a 09 4e 4f 5f 44 41 54 41 20 20 20 RY,...NO_DATA
40a0: 20 20 20 20 20 3d 20 57 53 41 4e 4f 5f 44 41 54 = WSANO_DAT
40b0: 41 2c 0d 0a 09 4e 4f 5f 41 44 44 52 45 53 53 20 A,...NO_ADDRESS
40c0: 20 20 20 20 3d 20 57 53 41 4e 4f 5f 41 44 44 52 = WSANO_ADDR
40d0: 45 53 53 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72 6e ESS..}....extern
40e0: 20 28 57 69 6e 64 6f 77 73 29 20 7b 0d 0a 09 53 (Windows) {...S
40f0: 4f 43 4b 45 54 20 61 63 63 65 70 74 28 53 4f 43 OCKET accept(SOC
4100: 4b 45 54 2c 20 53 4f 43 4b 41 44 44 52 2a 2c 20 KET, SOCKADDR*,
4110: 69 6e 74 2a 29 3b 0d 0a 09 69 6e 74 20 62 69 6e int*);...int bin
4120: 64 28 53 4f 43 4b 45 54 2c 20 63 6f 6e 73 74 28 d(SOCKET, const(
4130: 53 4f 43 4b 41 44 44 52 29 2a 2c 20 69 6e 74 29 SOCKADDR)*, int)
4140: 3b 0d 0a 09 69 6e 74 20 63 6c 6f 73 65 73 6f 63 ;...int closesoc
4150: 6b 65 74 28 53 4f 43 4b 45 54 29 3b 0d 0a 09 69 ket(SOCKET);...i
4160: 6e 74 20 63 6f 6e 6e 65 63 74 28 53 4f 43 4b 45 nt connect(SOCKE
4170: 54 2c 20 63 6f 6e 73 74 28 53 4f 43 4b 41 44 44 T, const(SOCKADD
4180: 52 29 2a 2c 20 69 6e 74 29 3b 0d 0a 09 69 6e 74 R)*, int);...int
4190: 20 69 6f 63 74 6c 73 6f 63 6b 65 74 28 53 4f 43 ioctlsocket(SOC
41a0: 4b 45 54 2c 20 69 6e 74 2c 20 75 5f 6c 6f 6e 67 KET, int, u_long
41b0: 2a 29 3b 0d 0a 09 69 6e 74 20 67 65 74 70 65 65 *);...int getpee
41c0: 72 6e 61 6d 65 28 53 4f 43 4b 45 54 2c 20 53 4f rname(SOCKET, SO
41d0: 43 4b 41 44 44 52 2a 2c 20 69 6e 74 2a 29 3b 0d CKADDR*, int*);.
41e0: 0a 09 69 6e 74 20 67 65 74 73 6f 63 6b 6e 61 6d ..int getsocknam
41f0: 65 28 53 4f 43 4b 45 54 2c 20 53 4f 43 4b 41 44 e(SOCKET, SOCKAD
4200: 44 52 2a 2c 20 69 6e 74 2a 29 3b 0d 0a 09 69 6e DR*, int*);...in
4210: 74 20 67 65 74 73 6f 63 6b 6f 70 74 28 53 4f 43 t getsockopt(SOC
4220: 4b 45 54 2c 20 69 6e 74 2c 20 69 6e 74 2c 20 76 KET, int, int, v
4230: 6f 69 64 2a 2c 20 69 6e 74 2a 29 3b 0d 0a 09 75 oid*, int*);...u
4240: 69 6e 74 20 69 6e 65 74 5f 61 64 64 72 28 63 6f int inet_addr(co
4250: 6e 73 74 28 63 68 61 72 29 2a 29 3b 0d 0a 09 69 nst(char)*);...i
4260: 6e 74 20 6c 69 73 74 65 6e 28 53 4f 43 4b 45 54 nt listen(SOCKET
4270: 2c 20 69 6e 74 29 3b 0d 0a 09 69 6e 74 20 72 65 , int);...int re
4280: 63 76 28 53 4f 43 4b 45 54 2c 20 75 62 79 74 65 cv(SOCKET, ubyte
4290: 2a 2c 20 69 6e 74 2c 20 69 6e 74 29 3b 0d 0a 09 *, int, int);...
42a0: 69 6e 74 20 72 65 63 76 66 72 6f 6d 28 53 4f 43 int recvfrom(SOC
42b0: 4b 45 54 2c 20 75 62 79 74 65 2a 2c 20 69 6e 74 KET, ubyte*, int
42c0: 2c 20 69 6e 74 2c 20 53 4f 43 4b 41 44 44 52 2a , int, SOCKADDR*
42d0: 2c 20 69 6e 74 2a 29 3b 0d 0a 09 69 6e 74 20 73 , int*);...int s
42e0: 65 6e 64 28 53 4f 43 4b 45 54 2c 20 63 6f 6e 73 end(SOCKET, cons
42f0: 74 28 75 62 79 74 65 29 2a 2c 20 69 6e 74 2c 20 t(ubyte)*, int,
4300: 69 6e 74 29 3b 0d 0a 09 69 6e 74 20 73 65 6e 64 int);...int send
4310: 74 6f 28 53 4f 43 4b 45 54 2c 20 63 6f 6e 73 74 to(SOCKET, const
4320: 28 75 62 79 74 65 29 2a 2c 20 69 6e 74 2c 20 69 (ubyte)*, int, i
4330: 6e 74 2c 20 63 6f 6e 73 74 28 53 4f 43 4b 41 44 nt, const(SOCKAD
4340: 44 52 29 2a 2c 20 69 6e 74 29 3b 0d 0a 09 69 6e DR)*, int);...in
4350: 74 20 73 65 74 73 6f 63 6b 6f 70 74 28 53 4f 43 t setsockopt(SOC
4360: 4b 45 54 2c 20 69 6e 74 2c 20 69 6e 74 2c 20 63 KET, int, int, c
4370: 6f 6e 73 74 28 76 6f 69 64 29 2a 2c 20 69 6e 74 onst(void)*, int
4380: 29 3b 0d 0a 09 69 6e 74 20 73 68 75 74 64 6f 77 );...int shutdow
4390: 6e 28 53 4f 43 4b 45 54 2c 20 69 6e 74 29 3b 0d n(SOCKET, int);.
43a0: 0a 09 53 4f 43 4b 45 54 20 73 6f 63 6b 65 74 28 ..SOCKET socket(
43b0: 69 6e 74 2c 20 69 6e 74 2c 20 69 6e 74 29 3b 0d int, int, int);.
43c0: 0a 0d 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 ....alias typeof
43d0: 28 26 61 63 63 65 70 74 29 20 4c 50 46 4e 5f 41 (&accept) LPFN_A
43e0: 43 43 45 50 54 3b 0d 0a 09 61 6c 69 61 73 20 74 CCEPT;...alias t
43f0: 79 70 65 6f 66 28 26 62 69 6e 64 29 20 4c 50 46 ypeof(&bind) LPF
4400: 4e 5f 42 49 4e 44 3b 0d 0a 09 61 6c 69 61 73 20 N_BIND;...alias
4410: 74 79 70 65 6f 66 28 26 63 6c 6f 73 65 73 6f 63 typeof(&closesoc
4420: 6b 65 74 29 20 4c 50 46 4e 5f 43 4c 4f 53 45 53 ket) LPFN_CLOSES
4430: 4f 43 4b 45 54 3b 0d 0a 09 61 6c 69 61 73 20 74 OCKET;...alias t
4440: 79 70 65 6f 66 28 26 63 6f 6e 6e 65 63 74 29 20 ypeof(&connect)
4450: 4c 50 46 4e 5f 43 4f 4e 4e 45 43 54 3b 0d 0a 09 LPFN_CONNECT;...
4460: 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 69 6f alias typeof(&io
4470: 63 74 6c 73 6f 63 6b 65 74 29 20 4c 50 46 4e 5f ctlsocket) LPFN_
4480: 49 4f 43 54 4c 53 4f 43 4b 45 54 3b 0d 0a 09 61 IOCTLSOCKET;...a
4490: 6c 69 61 73 20 74 79 70 65 6f 66 28 26 67 65 74 lias typeof(&get
44a0: 70 65 65 72 6e 61 6d 65 29 20 4c 50 46 4e 5f 47 peername) LPFN_G
44b0: 45 54 50 45 45 52 4e 41 4d 45 3b 0d 0a 09 61 6c ETPEERNAME;...al
44c0: 69 61 73 20 74 79 70 65 6f 66 28 26 67 65 74 73 ias typeof(&gets
44d0: 6f 63 6b 6e 61 6d 65 29 20 4c 50 46 4e 5f 47 45 ockname) LPFN_GE
44e0: 54 53 4f 43 4b 4e 41 4d 45 3b 0d 0a 09 61 6c 69 TSOCKNAME;...ali
44f0: 61 73 20 74 79 70 65 6f 66 28 26 67 65 74 73 6f as typeof(&getso
4500: 63 6b 6f 70 74 29 20 4c 50 46 4e 5f 47 45 54 53 ckopt) LPFN_GETS
4510: 4f 43 4b 4f 50 54 3b 0d 0a 09 61 6c 69 61 73 20 OCKOPT;...alias
4520: 74 79 70 65 6f 66 28 26 69 6e 65 74 5f 61 64 64 typeof(&inet_add
4530: 72 29 20 4c 50 46 4e 5f 49 4e 45 54 5f 41 44 44 r) LPFN_INET_ADD
4540: 52 3b 0d 0a 09 61 6c 69 61 73 20 74 79 70 65 6f R;...alias typeo
4550: 66 28 26 6c 69 73 74 65 6e 29 20 4c 50 46 4e 5f f(&listen) LPFN_
4560: 4c 49 53 54 45 4e 3b 0d 0a 09 61 6c 69 61 73 20 LISTEN;...alias
4570: 74 79 70 65 6f 66 28 26 72 65 63 76 29 20 4c 50 typeof(&recv) LP
4580: 46 4e 5f 52 45 43 56 3b 0d 0a 09 61 6c 69 61 73 FN_RECV;...alias
4590: 20 74 79 70 65 6f 66 28 26 72 65 63 76 66 72 6f typeof(&recvfro
45a0: 6d 29 20 4c 50 46 4e 5f 52 45 43 56 46 52 4f 4d m) LPFN_RECVFROM
45b0: 3b 0d 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 ;...alias typeof
45c0: 28 26 73 65 6e 64 29 20 4c 50 46 4e 5f 53 45 4e (&send) LPFN_SEN
45d0: 44 3b 0d 0a 09 61 6c 69 61 73 20 74 79 70 65 6f D;...alias typeo
45e0: 66 28 26 73 65 6e 64 74 6f 29 20 4c 50 46 4e 5f f(&sendto) LPFN_
45f0: 53 45 4e 44 54 4f 3b 0d 0a 09 61 6c 69 61 73 20 SENDTO;...alias
4600: 74 79 70 65 6f 66 28 26 73 65 74 73 6f 63 6b 6f typeof(&setsocko
4610: 70 74 29 20 4c 50 46 4e 5f 53 45 54 53 4f 43 4b pt) LPFN_SETSOCK
4620: 4f 50 54 3b 0d 0a 09 61 6c 69 61 73 20 74 79 70 OPT;...alias typ
4630: 65 6f 66 28 26 73 68 75 74 64 6f 77 6e 29 20 4c eof(&shutdown) L
4640: 50 46 4e 5f 53 48 55 54 44 4f 57 4e 3b 0d 0a 09 PFN_SHUTDOWN;...
4650: 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 73 6f alias typeof(&so
4660: 63 6b 65 74 29 20 4c 50 46 4e 5f 53 4f 43 4b 45 cket) LPFN_SOCKE
4670: 54 3b 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72 6e 28 T;..}....extern(
4680: 57 69 6e 64 6f 77 73 29 20 7b 0d 0a 09 63 68 61 Windows) {...cha
4690: 72 2a 20 69 6e 65 74 5f 6e 74 6f 61 28 49 4e 5f r* inet_ntoa(IN_
46a0: 41 44 44 52 29 3b 0d 0a 09 48 4f 53 54 45 4e 54 ADDR);...HOSTENT
46b0: 2a 20 67 65 74 68 6f 73 74 62 79 61 64 64 72 28 * gethostbyaddr(
46c0: 63 6f 6e 73 74 28 63 68 61 72 29 2a 2c 20 69 6e const(char)*, in
46d0: 74 2c 20 69 6e 74 29 3b 0d 0a 09 48 4f 53 54 45 t, int);...HOSTE
46e0: 4e 54 2a 20 67 65 74 68 6f 73 74 62 79 6e 61 6d NT* gethostbynam
46f0: 65 28 63 6f 6e 73 74 28 63 68 61 72 29 2a 29 3b e(const(char)*);
4700: 0d 0a 09 53 45 52 56 45 4e 54 2a 20 67 65 74 73 ...SERVENT* gets
4710: 65 72 76 62 79 70 6f 72 74 28 69 6e 74 2c 20 63 ervbyport(int, c
4720: 6f 6e 73 74 28 63 68 61 72 29 2a 29 3b 0d 0a 09 onst(char)*);...
4730: 53 45 52 56 45 4e 54 2a 20 67 65 74 73 65 72 76 SERVENT* getserv
4740: 62 79 6e 61 6d 65 28 63 6f 6e 73 74 28 63 68 61 byname(const(cha
4750: 72 29 2a 2c 20 63 6f 6e 73 74 28 63 68 61 72 29 r)*, const(char)
4760: 2a 29 3b 0d 0a 09 50 52 4f 54 4f 45 4e 54 2a 20 *);...PROTOENT*
4770: 67 65 74 70 72 6f 74 6f 62 79 6e 75 6d 62 65 72 getprotobynumber
4780: 28 69 6e 74 29 3b 0d 0a 09 50 52 4f 54 4f 45 4e (int);...PROTOEN
4790: 54 2a 20 67 65 74 70 72 6f 74 6f 62 79 6e 61 6d T* getprotobynam
47a0: 65 28 63 6f 6e 73 74 28 63 68 61 72 29 2a 29 3b e(const(char)*);
47b0: 0d 0a 0d 0a 09 2f 2a 20 4e 4f 54 45 3a 20 44 4b ...../* NOTE: DK
47c0: 3a 20 69 6e 20 74 68 65 20 6f 72 69 67 69 6e 61 : in the origina
47d0: 6c 20 68 65 61 64 65 72 73 2c 20 74 68 65 73 65 l headers, these
47e0: 20 77 65 72 65 20 64 65 63 6c 61 72 65 64 20 77 were declared w
47f0: 69 74 68 0d 0a 09 20 20 20 50 41 53 43 41 4c 20 ith... PASCAL
4800: 6c 69 6e 6b 61 67 65 2e 20 20 53 69 6e 63 65 20 linkage. Since
4810: 74 68 69 73 20 69 73 20 61 74 20 6f 64 64 73 20 this is at odds
4820: 77 69 74 68 20 74 68 65 20 64 65 66 69 6e 69 74 with the definit
4830: 69 6f 6e 0d 0a 09 20 20 20 6f 66 20 74 68 65 20 ion... of the
4840: 66 75 6e 63 74 69 6f 6e 73 20 74 68 65 6d 73 65 functions themse
4850: 6c 76 65 73 2c 20 61 6e 64 20 61 6c 73 6f 20 73 lves, and also s
4860: 69 6e 63 65 20 4d 69 6e 47 57 20 73 65 65 6d 73 ince MinGW seems
4870: 20 74 6f 0d 0a 09 20 20 20 74 72 65 61 74 20 74 to... treat t
4880: 68 65 20 74 77 6f 20 69 6e 74 65 72 63 68 61 6e he two interchan
4890: 67 61 62 6c 79 2c 20 49 20 68 61 76 65 20 6d 6f gably, I have mo
48a0: 76 65 64 20 74 68 65 6d 20 68 65 72 65 2e 20 2a ved them here. *
48b0: 2f 0d 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 /...alias typeof
48c0: 28 26 69 6e 65 74 5f 6e 74 6f 61 29 20 4c 50 46 (&inet_ntoa) LPF
48d0: 4e 5f 49 4e 45 54 5f 4e 54 4f 41 3b 0d 0a 09 61 N_INET_NTOA;...a
48e0: 6c 69 61 73 20 74 79 70 65 6f 66 28 26 67 65 74 lias typeof(&get
48f0: 68 6f 73 74 62 79 61 64 64 72 29 20 4c 50 46 4e hostbyaddr) LPFN
4900: 5f 47 45 54 48 4f 53 54 42 59 41 44 44 52 3b 0d _GETHOSTBYADDR;.
4910: 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 ..alias typeof(&
4920: 67 65 74 68 6f 73 74 62 79 6e 61 6d 65 29 20 4c gethostbyname) L
4930: 50 46 4e 5f 47 45 54 48 4f 53 54 42 59 4e 41 4d PFN_GETHOSTBYNAM
4940: 45 3b 0d 0a 09 61 6c 69 61 73 20 74 79 70 65 6f E;...alias typeo
4950: 66 28 26 67 65 74 73 65 72 76 62 79 70 6f 72 74 f(&getservbyport
4960: 29 20 4c 50 46 4e 5f 47 45 54 53 45 52 56 42 59 ) LPFN_GETSERVBY
4970: 50 4f 52 54 3b 0d 0a 09 61 6c 69 61 73 20 74 79 PORT;...alias ty
4980: 70 65 6f 66 28 26 67 65 74 73 65 72 76 62 79 6e peof(&getservbyn
4990: 61 6d 65 29 20 4c 50 46 4e 5f 47 45 54 53 45 52 ame) LPFN_GETSER
49a0: 56 42 59 4e 41 4d 45 3b 0d 0a 09 61 6c 69 61 73 VBYNAME;...alias
49b0: 20 74 79 70 65 6f 66 28 26 67 65 74 70 72 6f 74 typeof(&getprot
49c0: 6f 62 79 6e 75 6d 62 65 72 29 20 4c 50 46 4e 5f obynumber) LPFN_
49d0: 47 45 54 50 52 4f 54 4f 42 59 4e 55 4d 42 45 52 GETPROTOBYNUMBER
49e0: 3b 0d 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 ;...alias typeof
49f0: 28 26 67 65 74 70 72 6f 74 6f 62 79 6e 61 6d 65 (&getprotobyname
4a00: 29 20 4c 50 46 4e 5f 47 45 54 50 52 4f 54 4f 42 ) LPFN_GETPROTOB
4a10: 59 4e 41 4d 45 3b 0d 0a 7d 0d 0a 0d 0a 65 78 74 YNAME;..}....ext
4a20: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 7b 0d 0a ern(Windows) {..
4a30: 09 69 6e 74 20 57 53 41 53 74 61 72 74 75 70 28 .int WSAStartup(
4a40: 57 4f 52 44 2c 20 4c 50 57 53 41 44 41 54 41 29 WORD, LPWSADATA)
4a50: 3b 0d 0a 09 69 6e 74 20 57 53 41 43 6c 65 61 6e ;...int WSAClean
4a60: 75 70 28 29 3b 0d 0a 09 76 6f 69 64 20 57 53 41 up();...void WSA
4a70: 53 65 74 4c 61 73 74 45 72 72 6f 72 28 69 6e 74 SetLastError(int
4a80: 29 3b 0d 0a 09 69 6e 74 20 57 53 41 47 65 74 4c );...int WSAGetL
4a90: 61 73 74 45 72 72 6f 72 28 29 3b 0d 0a 0d 0a 09 astError();.....
4aa0: 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 alias typeof(&WS
4ab0: 41 53 74 61 72 74 75 70 29 20 4c 50 46 4e 5f 57 AStartup) LPFN_W
4ac0: 53 41 53 54 41 52 54 55 50 3b 0d 0a 09 61 6c 69 SASTARTUP;...ali
4ad0: 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 43 6c as typeof(&WSACl
4ae0: 65 61 6e 75 70 29 20 4c 50 46 4e 5f 57 53 41 43 eanup) LPFN_WSAC
4af0: 4c 45 41 4e 55 50 3b 0d 0a 09 61 6c 69 61 73 20 LEANUP;...alias
4b00: 74 79 70 65 6f 66 28 26 57 53 41 53 65 74 4c 61 typeof(&WSASetLa
4b10: 73 74 45 72 72 6f 72 29 20 4c 50 46 4e 5f 57 53 stError) LPFN_WS
4b20: 41 53 45 54 4c 41 53 54 45 52 52 4f 52 3b 0d 0a ASETLASTERROR;..
4b30: 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 .alias typeof(&W
4b40: 53 41 47 65 74 4c 61 73 74 45 72 72 6f 72 29 20 SAGetLastError)
4b50: 4c 50 46 4e 5f 57 53 41 47 45 54 4c 41 53 54 45 LPFN_WSAGETLASTE
4b60: 52 52 4f 52 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 0d 0a RROR;..}..../*..
4b70: 20 2a 20 50 73 65 75 64 6f 2d 62 6c 6f 63 6b 69 * Pseudo-blocki
4b80: 6e 67 20 66 75 6e 63 74 69 6f 6e 73 20 61 72 65 ng functions are
4b90: 20 64 65 70 72 65 63 61 74 65 64 20 69 6e 20 57 deprecated in W
4ba0: 69 6e 53 6f 63 6b 32 0d 0a 20 2a 20 73 70 65 63 inSock2.. * spec
4bb0: 2e 20 55 73 65 20 74 68 72 65 61 64 73 20 69 6e . Use threads in
4bc0: 73 74 65 61 64 2e 0d 0a 20 2a 2f 0d 0a 64 65 70 stead... */..dep
4bd0: 72 65 63 61 74 65 64 20 65 78 74 65 72 6e 28 57 recated extern(W
4be0: 69 6e 64 6f 77 73 29 20 7b 0d 0a 09 42 4f 4f 4c indows) {...BOOL
4bf0: 20 57 53 41 49 73 42 6c 6f 63 6b 69 6e 67 28 29 WSAIsBlocking()
4c00: 3b 0d 0a 09 69 6e 74 20 57 53 41 55 6e 68 6f 6f ;...int WSAUnhoo
4c10: 6b 42 6c 6f 63 6b 69 6e 67 48 6f 6f 6b 28 29 3b kBlockingHook();
4c20: 0d 0a 09 46 41 52 50 52 4f 43 20 57 53 41 53 65 ...FARPROC WSASe
4c30: 74 42 6c 6f 63 6b 69 6e 67 48 6f 6f 6b 28 46 41 tBlockingHook(FA
4c40: 52 50 52 4f 43 29 3b 0d 0a 09 69 6e 74 20 57 53 RPROC);...int WS
4c50: 41 43 61 6e 63 65 6c 42 6c 6f 63 6b 69 6e 67 43 ACancelBlockingC
4c60: 61 6c 6c 28 29 3b 0d 0a 0d 0a 09 61 6c 69 61 73 all();.....alias
4c70: 20 74 79 70 65 6f 66 28 26 57 53 41 49 73 42 6c typeof(&WSAIsBl
4c80: 6f 63 6b 69 6e 67 29 20 4c 50 46 4e 5f 57 53 41 ocking) LPFN_WSA
4c90: 49 53 42 4c 4f 43 4b 49 4e 47 3b 0d 0a 09 61 6c ISBLOCKING;...al
4ca0: 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 55 ias typeof(&WSAU
4cb0: 6e 68 6f 6f 6b 42 6c 6f 63 6b 69 6e 67 48 6f 6f nhookBlockingHoo
4cc0: 6b 29 20 4c 50 46 4e 5f 57 53 41 55 4e 48 4f 4f k) LPFN_WSAUNHOO
4cd0: 4b 42 4c 4f 43 4b 49 4e 47 48 4f 4f 4b 3b 0d 0a KBLOCKINGHOOK;..
4ce0: 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 .alias typeof(&W
4cf0: 53 41 53 65 74 42 6c 6f 63 6b 69 6e 67 48 6f 6f SASetBlockingHoo
4d00: 6b 29 20 4c 50 46 4e 5f 57 53 41 53 45 54 42 4c k) LPFN_WSASETBL
4d10: 4f 43 4b 49 4e 47 48 4f 4f 4b 3b 0d 0a 09 61 6c OCKINGHOOK;...al
4d20: 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 43 ias typeof(&WSAC
4d30: 61 6e 63 65 6c 42 6c 6f 63 6b 69 6e 67 43 61 6c ancelBlockingCal
4d40: 6c 29 20 4c 50 46 4e 5f 57 53 41 43 41 4e 43 45 l) LPFN_WSACANCE
4d50: 4c 42 4c 4f 43 4b 49 4e 47 43 41 4c 4c 3b 0d 0a LBLOCKINGCALL;..
4d60: 7d 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 }....extern(Wind
4d70: 6f 77 73 29 20 7b 0d 0a 09 48 41 4e 44 4c 45 20 ows) {...HANDLE
4d80: 57 53 41 41 73 79 6e 63 47 65 74 53 65 72 76 42 WSAAsyncGetServB
4d90: 79 4e 61 6d 65 28 48 57 4e 44 2c 20 75 5f 69 6e yName(HWND, u_in
4da0: 74 2c 20 63 6f 6e 73 74 28 63 68 61 72 29 2a 2c t, const(char)*,
4db0: 20 63 6f 6e 73 74 28 63 68 61 72 29 2a 2c 20 63 const(char)*, c
4dc0: 68 61 72 2a 2c 20 69 6e 74 29 3b 0d 0a 09 48 41 har*, int);...HA
4dd0: 4e 44 4c 45 20 57 53 41 41 73 79 6e 63 47 65 74 NDLE WSAAsyncGet
4de0: 53 65 72 76 42 79 50 6f 72 74 28 48 57 4e 44 2c ServByPort(HWND,
4df0: 20 75 5f 69 6e 74 2c 20 69 6e 74 2c 20 63 6f 6e u_int, int, con
4e00: 73 74 28 63 68 61 72 29 2a 2c 20 63 68 61 72 2a st(char)*, char*
4e10: 2c 20 69 6e 74 29 3b 0d 0a 09 48 41 4e 44 4c 45 , int);...HANDLE
4e20: 20 57 53 41 41 73 79 6e 63 47 65 74 50 72 6f 74 WSAAsyncGetProt
4e30: 6f 42 79 4e 61 6d 65 28 48 57 4e 44 2c 20 75 5f oByName(HWND, u_
4e40: 69 6e 74 2c 20 63 6f 6e 73 74 28 63 68 61 72 29 int, const(char)
4e50: 2a 2c 20 63 68 61 72 2a 2c 20 69 6e 74 29 3b 0d *, char*, int);.
4e60: 0a 09 48 41 4e 44 4c 45 20 57 53 41 41 73 79 6e ..HANDLE WSAAsyn
4e70: 63 47 65 74 50 72 6f 74 6f 42 79 4e 75 6d 62 65 cGetProtoByNumbe
4e80: 72 28 48 57 4e 44 2c 20 75 5f 69 6e 74 2c 20 69 r(HWND, u_int, i
4e90: 6e 74 2c 20 63 68 61 72 2a 2c 20 69 6e 74 29 3b nt, char*, int);
4ea0: 0d 0a 09 48 41 4e 44 4c 45 20 57 53 41 41 73 79 ...HANDLE WSAAsy
4eb0: 6e 63 47 65 74 48 6f 73 74 42 79 4e 61 6d 65 28 ncGetHostByName(
4ec0: 48 57 4e 44 2c 20 75 5f 69 6e 74 2c 20 63 6f 6e HWND, u_int, con
4ed0: 73 74 28 63 68 61 72 29 2a 2c 20 63 68 61 72 2a st(char)*, char*
4ee0: 2c 20 69 6e 74 29 3b 0d 0a 09 48 41 4e 44 4c 45 , int);...HANDLE
4ef0: 20 57 53 41 41 73 79 6e 63 47 65 74 48 6f 73 74 WSAAsyncGetHost
4f00: 42 79 41 64 64 72 28 48 57 4e 44 2c 20 75 5f 69 ByAddr(HWND, u_i
4f10: 6e 74 2c 20 63 6f 6e 73 74 28 63 68 61 72 29 2a nt, const(char)*
4f20: 2c 20 69 6e 74 2c 20 69 6e 74 2c 20 63 68 61 72 , int, int, char
4f30: 2a 2c 20 69 6e 74 29 3b 0d 0a 09 69 6e 74 20 57 *, int);...int W
4f40: 53 41 43 61 6e 63 65 6c 41 73 79 6e 63 52 65 71 SACancelAsyncReq
4f50: 75 65 73 74 28 48 41 4e 44 4c 45 29 3b 0d 0a 09 uest(HANDLE);...
4f60: 69 6e 74 20 57 53 41 41 73 79 6e 63 53 65 6c 65 int WSAAsyncSele
4f70: 63 74 28 53 4f 43 4b 45 54 2c 20 48 57 4e 44 2c ct(SOCKET, HWND,
4f80: 20 75 5f 69 6e 74 2c 20 6c 6f 6e 67 29 3b 0d 0a u_int, long);..
4f90: 0d 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 ...alias typeof(
4fa0: 26 57 53 41 41 73 79 6e 63 47 65 74 53 65 72 76 &WSAAsyncGetServ
4fb0: 42 79 4e 61 6d 65 29 20 4c 50 46 4e 5f 57 53 41 ByName) LPFN_WSA
4fc0: 41 73 79 6e 63 47 65 74 53 65 72 76 42 79 4e 61 AsyncGetServByNa
4fd0: 6d 65 3b 0d 0a 09 61 6c 69 61 73 20 74 79 70 65 me;...alias type
4fe0: 6f 66 28 26 57 53 41 41 73 79 6e 63 47 65 74 53 of(&WSAAsyncGetS
4ff0: 65 72 76 42 79 50 6f 72 74 29 20 4c 50 46 4e 5f ervByPort) LPFN_
5000: 57 53 41 41 53 59 4e 43 47 45 54 53 45 52 56 42 WSAASYNCGETSERVB
5010: 59 50 4f 52 54 3b 0d 0a 09 61 6c 69 61 73 20 74 YPORT;...alias t
5020: 79 70 65 6f 66 28 26 57 53 41 41 73 79 6e 63 47 ypeof(&WSAAsyncG
5030: 65 74 50 72 6f 74 6f 42 79 4e 61 6d 65 29 20 4c etProtoByName) L
5040: 50 46 4e 5f 57 53 41 41 53 59 4e 43 47 45 54 50 PFN_WSAASYNCGETP
5050: 52 4f 54 4f 42 59 4e 41 4d 45 3b 0d 0a 09 61 6c ROTOBYNAME;...al
5060: 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 41 ias typeof(&WSAA
5070: 73 79 6e 63 47 65 74 50 72 6f 74 6f 42 79 4e 75 syncGetProtoByNu
5080: 6d 62 65 72 29 20 4c 50 46 4e 5f 57 53 41 41 53 mber) LPFN_WSAAS
5090: 59 4e 43 47 45 54 50 52 4f 54 4f 42 59 4e 55 4d YNCGETPROTOBYNUM
50a0: 42 45 52 3b 0d 0a 09 61 6c 69 61 73 20 74 79 70 BER;...alias typ
50b0: 65 6f 66 28 26 57 53 41 41 73 79 6e 63 47 65 74 eof(&WSAAsyncGet
50c0: 48 6f 73 74 42 79 4e 61 6d 65 29 20 4c 50 46 4e HostByName) LPFN
50d0: 5f 57 53 41 41 53 59 4e 43 47 45 54 48 4f 53 54 _WSAASYNCGETHOST
50e0: 42 59 4e 41 4d 45 3b 0d 0a 09 61 6c 69 61 73 20 BYNAME;...alias
50f0: 74 79 70 65 6f 66 28 26 57 53 41 41 73 79 6e 63 typeof(&WSAAsync
5100: 47 65 74 48 6f 73 74 42 79 41 64 64 72 29 20 4c GetHostByAddr) L
5110: 50 46 4e 5f 57 53 41 41 53 59 4e 43 47 45 54 48 PFN_WSAASYNCGETH
5120: 4f 53 54 42 59 41 44 44 52 3b 0d 0a 09 61 6c 69 OSTBYADDR;...ali
5130: 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 43 61 as typeof(&WSACa
5140: 6e 63 65 6c 41 73 79 6e 63 52 65 71 75 65 73 74 ncelAsyncRequest
5150: 29 20 4c 50 46 4e 5f 57 53 41 43 41 4e 43 45 4c ) LPFN_WSACANCEL
5160: 41 53 59 4e 43 52 45 51 55 45 53 54 3b 0d 0a 09 ASYNCREQUEST;...
5170: 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 alias typeof(&WS
5180: 41 41 73 79 6e 63 53 65 6c 65 63 74 29 20 4c 50 AAsyncSelect) LP
5190: 46 4e 5f 57 53 41 41 53 59 4e 43 53 45 4c 45 43 FN_WSAASYNCSELEC
51a0: 54 3b 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72 6e 28 T;..}....extern(
51b0: 57 69 6e 64 6f 77 73 29 20 7b 0d 0a 09 75 5f 6c Windows) {...u_l
51c0: 6f 6e 67 20 68 74 6f 6e 6c 28 75 5f 6c 6f 6e 67 ong htonl(u_long
51d0: 29 3b 0d 0a 09 75 5f 6c 6f 6e 67 20 6e 74 6f 68 );...u_long ntoh
51e0: 6c 28 75 5f 6c 6f 6e 67 29 3b 0d 0a 09 75 5f 73 l(u_long);...u_s
51f0: 68 6f 72 74 20 68 74 6f 6e 73 28 75 5f 73 68 6f hort htons(u_sho
5200: 72 74 29 3b 0d 0a 09 75 5f 73 68 6f 72 74 20 6e rt);...u_short n
5210: 74 6f 68 73 28 75 5f 73 68 6f 72 74 29 3b 0d 0a tohs(u_short);..
5220: 09 69 6e 74 20 73 65 6c 65 63 74 28 69 6e 74 20 .int select(int
5230: 6e 66 64 73 2c 20 66 64 5f 73 65 74 2a 2c 20 66 nfds, fd_set*, f
5240: 64 5f 73 65 74 2a 2c 20 66 64 5f 73 65 74 2a 2c d_set*, fd_set*,
5250: 20 63 6f 6e 73 74 28 54 49 4d 45 56 41 4c 29 2a const(TIMEVAL)*
5260: 29 3b 0d 0a 0d 0a 09 61 6c 69 61 73 20 74 79 70 );.....alias typ
5270: 65 6f 66 28 26 68 74 6f 6e 6c 29 20 4c 50 46 4e eof(&htonl) LPFN
5280: 5f 48 54 4f 4e 4c 3b 0d 0a 09 61 6c 69 61 73 20 _HTONL;...alias
5290: 74 79 70 65 6f 66 28 26 6e 74 6f 68 6c 29 20 4c typeof(&ntohl) L
52a0: 50 46 4e 5f 4e 54 4f 48 4c 3b 0d 0a 09 61 6c 69 PFN_NTOHL;...ali
52b0: 61 73 20 74 79 70 65 6f 66 28 26 68 74 6f 6e 73 as typeof(&htons
52c0: 29 20 4c 50 46 4e 5f 48 54 4f 4e 53 3b 0d 0a 09 ) LPFN_HTONS;...
52d0: 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 6e 74 alias typeof(&nt
52e0: 6f 68 73 29 20 4c 50 46 4e 5f 4e 54 4f 48 53 3b ohs) LPFN_NTOHS;
52f0: 0d 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 ...alias typeof(
5300: 26 73 65 6c 65 63 74 29 20 4c 50 46 4e 5f 53 45 &select) LPFN_SE
5310: 4c 45 43 54 3b 0d 0a 0d 0a 09 69 6e 74 20 67 65 LECT;.....int ge
5320: 74 68 6f 73 74 6e 61 6d 65 28 63 68 61 72 2a 2c thostname(char*,
5330: 20 69 6e 74 29 3b 0d 0a 09 61 6c 69 61 73 20 74 int);...alias t
5340: 79 70 65 6f 66 28 26 67 65 74 68 6f 73 74 6e 61 ypeof(&gethostna
5350: 6d 65 29 20 4c 50 46 4e 5f 47 45 54 48 4f 53 54 me) LPFN_GETHOST
5360: 4e 41 4d 45 3b 0d 0a 7d 0d 0a 0d 0a 61 6c 69 61 NAME;..}....alia
5370: 73 20 4d 41 4b 45 4c 4f 4e 47 20 57 53 41 4d 41 s MAKELONG WSAMA
5380: 4b 45 41 53 59 4e 43 52 45 50 4c 59 2c 20 57 53 KEASYNCREPLY, WS
5390: 41 4d 41 4b 45 53 45 4c 45 43 54 52 45 50 4c 59 AMAKESELECTREPLY
53a0: 3b 0d 0a 61 6c 69 61 73 20 4c 4f 57 4f 52 44 20 ;..alias LOWORD
53b0: 57 53 41 47 45 54 41 53 59 4e 43 42 55 46 4c 45 WSAGETASYNCBUFLE
53c0: 4e 2c 20 57 53 41 47 45 54 53 45 4c 45 43 54 45 N, WSAGETSELECTE
53d0: 56 45 4e 54 3b 0d 0a 61 6c 69 61 73 20 48 49 57 VENT;..alias HIW
53e0: 4f 52 44 20 57 53 41 47 45 54 41 53 59 4e 43 45 ORD WSAGETASYNCE
53f0: 52 52 4f 52 2c 20 57 53 41 47 45 54 53 45 4c 45 RROR, WSAGETSELE
5400: 43 54 45 52 52 4f 52 3b 0d 0a 0d 0a 0d 0a 61 6c CTERROR;......al
5410: 69 61 73 20 49 4e 41 44 44 52 5f 41 4e 59 20 41 ias INADDR_ANY A
5420: 44 44 52 5f 41 4e 59 3b 0d 0a 0d 0a 62 6f 6f 6c DDR_ANY;....bool
5430: 20 49 4e 5f 43 4c 41 53 53 44 28 69 6e 74 20 69 IN_CLASSD(int i
5440: 29 20 7b 20 72 65 74 75 72 6e 20 28 69 20 26 20 ) { return (i &
5450: 30 78 66 30 30 30 30 30 30 30 29 20 3d 3d 20 30 0xf0000000) == 0
5460: 78 65 30 30 30 30 30 30 30 3b 20 7d 0d 0a 0d 0a xe0000000; }....
5470: 63 6f 6e 73 74 20 49 4e 5f 43 4c 41 53 53 44 5f const IN_CLASSD_
5480: 4e 45 54 20 20 20 20 3d 20 30 78 66 30 30 30 30 NET = 0xf0000
5490: 30 30 30 3b 0d 0a 63 6f 6e 73 74 20 49 4e 5f 43 000;..const IN_C
54a0: 4c 41 53 53 44 5f 4e 53 48 49 46 54 20 3d 20 20 LASSD_NSHIFT =
54b0: 20 20 20 20 20 20 20 32 38 3b 0d 0a 63 6f 6e 73 28;..cons
54c0: 74 20 49 4e 5f 43 4c 41 53 53 44 5f 48 4f 53 54 t IN_CLASSD_HOST
54d0: 20 20 20 3d 20 30 78 30 66 66 66 66 66 66 66 3b = 0x0fffffff;
54e0: 0d 0a 0d 0a 61 6c 69 61 73 20 49 4e 5f 43 4c 41 ....alias IN_CLA
54f0: 53 53 44 20 49 4e 5f 4d 55 4c 54 49 43 41 53 54 SSD IN_MULTICAST
5500: 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 46 52 4f 4d 5f ;....const FROM_
5510: 50 52 4f 54 4f 43 4f 4c 5f 49 4e 46 4f 20 3d 20 PROTOCOL_INFO =
5520: 2d 31 3b 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 69 6e -1;....enum : in
5530: 74 20 7b 0d 0a 09 53 4f 5f 47 52 4f 55 50 5f 49 t {...SO_GROUP_I
5540: 44 20 3d 20 30 78 32 30 30 31 2c 0d 0a 09 53 4f D = 0x2001,...SO
5550: 5f 47 52 4f 55 50 5f 50 52 49 4f 52 49 54 59 2c _GROUP_PRIORITY,
5560: 0d 0a 09 53 4f 5f 4d 41 58 5f 4d 53 47 5f 53 49 ...SO_MAX_MSG_SI
5570: 5a 45 2c 0d 0a 09 53 4f 5f 50 52 4f 54 4f 43 4f ZE,...SO_PROTOCO
5580: 4c 5f 49 4e 46 4f 41 2c 0d 0a 09 53 4f 5f 50 52 L_INFOA,...SO_PR
5590: 4f 54 4f 43 4f 4c 5f 49 4e 46 4f 57 0d 0a 7d 0d OTOCOL_INFOW..}.
55a0: 0a 2f 2f 20 4e 4f 54 45 3a 20 54 68 65 73 65 20 .// NOTE: These
55b0: 61 72 65 20 6c 6f 67 69 63 61 6c 6c 79 20 70 61 are logically pa
55c0: 72 74 20 6f 66 20 74 68 65 20 70 72 65 76 69 6f rt of the previo
55d0: 75 73 20 65 6e 75 6d 2c 20 62 75 74 20 79 6f 75 us enum, but you
55e0: 20 63 61 6e 27 74 0d 0a 2f 2f 20 68 61 76 65 20 can't..// have
55f0: 76 65 72 73 69 6f 6e 20 73 74 61 74 65 6d 65 6e version statemen
5600: 74 73 20 69 6e 20 61 6e 20 65 6e 75 6d 20 62 6f ts in an enum bo
5610: 64 79 2e 2e 2e 0d 0a 76 65 72 73 69 6f 6e 28 55 dy.....version(U
5620: 6e 69 63 6f 64 65 29 0d 0a 09 63 6f 6e 73 74 20 nicode)...const
5630: 69 6e 74 20 53 4f 5f 50 52 4f 54 4f 43 4f 4c 5f int SO_PROTOCOL_
5640: 49 4e 46 4f 20 3d 20 53 4f 5f 50 52 4f 54 4f 43 INFO = SO_PROTOC
5650: 4f 4c 5f 49 4e 46 4f 57 3b 0d 0a 65 6c 73 65 0d OL_INFOW;..else.
5660: 0a 09 63 6f 6e 73 74 20 69 6e 74 20 53 4f 5f 50 ..const int SO_P
5670: 52 4f 54 4f 43 4f 4c 5f 49 4e 46 4f 20 3d 20 53 ROTOCOL_INFO = S
5680: 4f 5f 50 52 4f 54 4f 43 4f 4c 5f 49 4e 46 4f 41 O_PROTOCOL_INFOA
5690: 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 50 56 44 5f 43 ;....const PVD_C
56a0: 4f 4e 46 49 47 20 3d 20 30 78 33 30 30 31 3b 0d ONFIG = 0x3001;.
56b0: 0a 0d 0a 63 6f 6e 73 74 20 4d 53 47 5f 49 4e 54 ...const MSG_INT
56c0: 45 52 52 55 50 54 20 3d 20 30 78 31 30 3b 0d 0a ERRUPT = 0x10;..
56d0: 2f 2f 63 6f 6e 73 74 20 4d 53 47 5f 4d 41 58 49 //const MSG_MAXI
56e0: 4f 56 4c 45 4e 20 3d 20 31 36 3b 20 2f 2f 20 41 OVLEN = 16; // A
56f0: 6c 72 65 61 64 79 20 64 65 63 6c 61 72 65 64 20 lready declared
5700: 61 62 6f 76 65 0d 0a 0d 0a 6d 69 78 69 6e 20 44 above....mixin D
5710: 45 43 4c 41 52 45 5f 48 41 4e 44 4c 45 21 28 22 ECLARE_HANDLE!("
5720: 57 53 41 45 56 45 4e 54 22 29 3b 0d 0a 61 6c 69 WSAEVENT");..ali
5730: 61 73 20 57 53 41 45 56 45 4e 54 2a 20 4c 50 57 as WSAEVENT* LPW
5740: 53 41 45 56 45 4e 54 3b 0d 0a 61 6c 69 61 73 20 SAEVENT;..alias
5750: 4f 56 45 52 4c 41 50 50 45 44 20 57 53 41 4f 56 OVERLAPPED WSAOV
5760: 45 52 4c 41 50 50 45 44 3b 0d 0a 61 6c 69 61 73 ERLAPPED;..alias
5770: 20 4f 56 45 52 4c 41 50 50 45 44 2a 20 4c 50 57 OVERLAPPED* LPW
5780: 53 41 4f 56 45 52 4c 41 50 50 45 44 3b 0d 0a 0d SAOVERLAPPED;...
5790: 0a 70 72 69 76 61 74 65 20 69 6d 70 6f 72 74 20 .private import
57a0: 77 69 6e 33 32 2e 77 69 6e 65 72 72 6f 72 3b 0d win32.winerror;.
57b0: 0a 70 72 69 76 61 74 65 20 69 6d 70 6f 72 74 20 .private import
57c0: 77 69 6e 33 32 2e 77 69 6e 62 61 73 65 3b 0d 0a win32.winbase;..
57d0: 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 57 53 41 5f 49 ..enum {...WSA_I
57e0: 4f 5f 50 45 4e 44 49 4e 47 20 20 20 20 20 20 20 O_PENDING
57f0: 20 3d 20 45 52 52 4f 52 5f 49 4f 5f 50 45 4e 44 = ERROR_IO_PEND
5800: 49 4e 47 2c 0d 0a 09 57 53 41 5f 49 4f 5f 49 4e ING,...WSA_IO_IN
5810: 43 4f 4d 50 4c 45 54 45 20 20 20 20 20 3d 20 45 COMPLETE = E
5820: 52 52 4f 52 5f 49 4f 5f 49 4e 43 4f 4d 50 4c 45 RROR_IO_INCOMPLE
5830: 54 45 2c 0d 0a 09 57 53 41 5f 49 4e 56 41 4c 49 TE,...WSA_INVALI
5840: 44 5f 48 41 4e 44 4c 45 20 20 20 20 3d 20 45 52 D_HANDLE = ER
5850: 52 4f 52 5f 49 4e 56 41 4c 49 44 5f 48 41 4e 44 ROR_INVALID_HAND
5860: 4c 45 2c 0d 0a 09 57 53 41 5f 49 4e 56 41 4c 49 LE,...WSA_INVALI
5870: 44 5f 50 41 52 41 4d 45 54 45 52 20 3d 20 45 52 D_PARAMETER = ER
5880: 52 4f 52 5f 49 4e 56 41 4c 49 44 5f 50 41 52 41 ROR_INVALID_PARA
5890: 4d 45 54 45 52 2c 0d 0a 09 57 53 41 5f 4e 4f 54 METER,...WSA_NOT
58a0: 5f 45 4e 4f 55 47 48 5f 4d 45 4d 4f 52 59 20 3d _ENOUGH_MEMORY =
58b0: 20 45 52 52 4f 52 5f 4e 4f 54 5f 45 4e 4f 55 47 ERROR_NOT_ENOUG
58c0: 48 5f 4d 45 4d 4f 52 59 2c 0d 0a 09 57 53 41 5f H_MEMORY,...WSA_
58d0: 4f 50 45 52 41 54 49 4f 4e 5f 41 42 4f 52 54 45 OPERATION_ABORTE
58e0: 44 20 3d 20 45 52 52 4f 52 5f 4f 50 45 52 41 54 D = ERROR_OPERAT
58f0: 49 4f 4e 5f 41 42 4f 52 54 45 44 0d 0a 7d 0d 0a ION_ABORTED..}..
5900: 0d 0a 63 6f 6e 73 74 20 57 53 41 5f 49 4e 56 41 ..const WSA_INVA
5910: 4c 49 44 5f 45 56 45 4e 54 20 3d 20 63 61 73 74 LID_EVENT = cast
5920: 28 57 53 41 45 56 45 4e 54 29 48 41 4e 44 4c 45 (WSAEVENT)HANDLE
5930: 2e 69 6e 69 74 3b 0d 0a 63 6f 6e 73 74 20 57 53 .init;..const WS
5940: 41 5f 4d 41 58 49 4d 55 4d 5f 57 41 49 54 5f 45 A_MAXIMUM_WAIT_E
5950: 56 45 4e 54 53 20 3d 20 4d 41 58 49 4d 55 4d 5f VENTS = MAXIMUM_
5960: 57 41 49 54 5f 4f 42 4a 45 43 54 53 3b 0d 0a 63 WAIT_OBJECTS;..c
5970: 6f 6e 73 74 20 57 53 41 5f 57 41 49 54 5f 46 41 onst WSA_WAIT_FA
5980: 49 4c 45 44 20 3d 20 63 61 73 74 28 44 57 4f 52 ILED = cast(DWOR
5990: 44 29 2d 31 3b 0d 0a 63 6f 6e 73 74 20 57 53 41 D)-1;..const WSA
59a0: 5f 57 41 49 54 5f 45 56 45 4e 54 5f 30 20 3d 20 _WAIT_EVENT_0 =
59b0: 57 41 49 54 5f 4f 42 4a 45 43 54 5f 30 3b 0d 0a WAIT_OBJECT_0;..
59c0: 63 6f 6e 73 74 20 57 53 41 5f 57 41 49 54 5f 49 const WSA_WAIT_I
59d0: 4f 5f 43 4f 4d 50 4c 45 54 49 4f 4e 20 3d 20 57 O_COMPLETION = W
59e0: 41 49 54 5f 49 4f 5f 43 4f 4d 50 4c 45 54 49 4f AIT_IO_COMPLETIO
59f0: 4e 3b 0d 0a 63 6f 6e 73 74 20 57 53 41 5f 57 41 N;..const WSA_WA
5a00: 49 54 5f 54 49 4d 45 4f 55 54 20 3d 20 57 41 49 IT_TIMEOUT = WAI
5a10: 54 5f 54 49 4d 45 4f 55 54 3b 0d 0a 63 6f 6e 73 T_TIMEOUT;..cons
5a20: 74 20 57 53 41 5f 49 4e 46 49 4e 49 54 45 20 3d t WSA_INFINITE =
5a30: 20 49 4e 46 49 4e 49 54 45 3b 0d 0a 0d 0a 73 74 INFINITE;....st
5a40: 72 75 63 74 20 57 53 41 42 55 46 20 7b 0d 0a 09 ruct WSABUF {...
5a50: 75 69 6e 74 20 20 6c 65 6e 3b 0d 0a 09 63 68 61 uint len;...cha
5a60: 72 2a 20 62 75 66 3b 0d 0a 7d 0d 0a 0d 0a 61 6c r* buf;..}....al
5a70: 69 61 73 20 57 53 41 42 55 46 2a 20 4c 50 57 53 ias WSABUF* LPWS
5a80: 41 42 55 46 3b 0d 0a 0d 0a 65 6e 75 6d 20 47 55 ABUF;....enum GU
5a90: 41 52 41 4e 54 45 45 20 7b 0d 0a 09 42 65 73 74 ARANTEE {...Best
5aa0: 45 66 66 6f 72 74 53 65 72 76 69 63 65 2c 0d 0a EffortService,..
5ab0: 09 43 6f 6e 74 72 6f 6c 6c 65 64 4c 6f 61 64 53 .ControlledLoadS
5ac0: 65 72 76 69 63 65 2c 0d 0a 09 50 72 65 64 69 63 ervice,...Predic
5ad0: 74 69 76 65 53 65 72 76 69 63 65 2c 0d 0a 09 47 tiveService,...G
5ae0: 75 61 72 61 6e 74 65 65 64 44 65 6c 61 79 53 65 uaranteedDelaySe
5af0: 72 76 69 63 65 2c 0d 0a 09 47 75 61 72 61 6e 74 rvice,...Guarant
5b00: 65 65 64 53 65 72 76 69 63 65 0d 0a 7d 0d 0a 0d eedService..}...
5b10: 0a 2f 2a 20 54 4f 44 4f 3a 20 46 4c 4f 57 53 50 ./* TODO: FLOWSP
5b20: 45 43 20 61 6e 64 20 72 65 6c 61 74 65 64 20 64 EC and related d
5b30: 65 66 69 6e 69 74 69 6f 6e 73 20 62 65 6c 6f 6e efinitions belon
5b40: 67 20 69 6e 20 71 6f 73 2e 68 20 2a 2f 0d 0a 0d g in qos.h */...
5b50: 0a 2f 2a 0d 0a 20 20 20 57 69 6e 64 6f 77 73 20 ./*.. Windows
5b60: 53 6f 63 6b 65 74 73 20 32 20 41 70 70 6c 69 63 Sockets 2 Applic
5b70: 61 74 69 6f 6e 20 50 72 6f 67 72 61 6d 6d 69 6e ation Programmin
5b80: 67 20 49 6e 74 65 72 66 61 63 65 2c 0d 0a 20 20 g Interface,..
5b90: 20 72 65 76 69 73 69 6f 6e 20 32 2e 32 2e 32 20 revision 2.2.2
5ba0: 28 31 39 39 37 29 20 75 73 65 73 20 74 68 65 20 (1997) uses the
5bb0: 74 79 70 65 20 75 69 6e 74 33 32 20 66 6f 72 20 type uint32 for
5bc0: 53 45 52 56 49 43 45 54 59 50 45 0d 0a 20 20 20 SERVICETYPE..
5bd0: 61 6e 64 20 74 68 65 20 65 6c 65 6d 65 6e 74 73 and the elements
5be0: 20 6f 66 20 5f 66 6c 6f 77 73 70 65 63 2c 20 62 of _flowspec, b
5bf0: 75 74 20 74 68 65 20 74 79 70 65 20 75 69 6e 74 ut the type uint
5c00: 33 32 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 32 is not define
5c10: 64 0d 0a 20 20 20 6f 72 20 75 73 65 64 20 61 6e d.. or used an
5c20: 79 77 68 65 72 65 20 65 6c 73 65 20 69 6e 20 74 ywhere else in t
5c30: 68 65 20 77 33 32 61 70 69 2e 20 46 6f 72 20 6e he w32api. For n
5c40: 6f 77 2c 20 6a 75 73 74 20 75 73 65 0d 0a 20 20 ow, just use..
5c50: 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 2c 20 77 unsigned int, w
5c60: 68 69 63 68 20 69 73 20 33 32 20 62 69 74 73 20 hich is 32 bits
5c70: 6f 6e 20 5f 57 49 4e 33 32 20 61 6e 64 20 5f 57 on _WIN32 and _W
5c80: 49 4e 36 34 2e 0d 0a 2a 2f 0d 0a 0d 0a 61 6c 69 IN64...*/....ali
5c90: 61 73 20 75 69 6e 74 20 53 45 52 56 49 43 45 54 as uint SERVICET
5ca0: 59 50 45 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 46 YPE;....struct F
5cb0: 4c 4f 57 53 50 45 43 20 7b 0d 0a 09 75 69 6e 74 LOWSPEC {...uint
5cc0: 20 20 20 20 20 20 20 20 54 6f 6b 65 6e 52 61 74 TokenRat
5cd0: 65 3b 0d 0a 09 75 69 6e 74 20 20 20 20 20 20 20 e;...uint
5ce0: 20 54 6f 6b 65 6e 42 75 63 6b 65 74 53 69 7a 65 TokenBucketSize
5cf0: 3b 0d 0a 09 75 69 6e 74 20 20 20 20 20 20 20 20 ;...uint
5d00: 50 65 61 6b 42 61 6e 64 77 69 64 74 68 3b 0d 0a PeakBandwidth;..
5d10: 09 75 69 6e 74 20 20 20 20 20 20 20 20 4c 61 74 .uint Lat
5d20: 65 6e 63 79 3b 0d 0a 09 75 69 6e 74 20 20 20 20 ency;...uint
5d30: 20 20 20 20 44 65 6c 61 79 56 61 72 69 61 74 69 DelayVariati
5d40: 6f 6e 3b 0d 0a 09 53 45 52 56 49 43 45 54 59 50 on;...SERVICETYP
5d50: 45 20 53 65 72 76 69 63 65 54 79 70 65 3b 0d 0a E ServiceType;..
5d60: 09 75 69 6e 74 20 20 20 20 20 20 20 20 4d 61 78 .uint Max
5d70: 53 64 75 53 69 7a 65 3b 0d 0a 09 75 69 6e 74 20 SduSize;...uint
5d80: 20 20 20 20 20 20 20 4d 69 6e 69 6d 75 6d 50 6f MinimumPo
5d90: 6c 69 63 65 64 53 69 7a 65 3b 0d 0a 7d 0d 0a 0d licedSize;..}...
5da0: 0a 61 6c 69 61 73 20 46 4c 4f 57 53 50 45 43 2a .alias FLOWSPEC*
5db0: 20 50 46 4c 4f 57 53 50 45 43 2c 20 4c 50 46 4c PFLOWSPEC, LPFL
5dc0: 4f 57 53 50 45 43 3b 0d 0a 0d 0a 73 74 72 75 63 OWSPEC;....struc
5dd0: 74 20 51 4f 53 0d 0a 7b 0d 0a 09 46 4c 4f 57 53 t QOS..{...FLOWS
5de0: 50 45 43 20 53 65 6e 64 69 6e 67 46 6c 6f 77 73 PEC SendingFlows
5df0: 70 65 63 3b 0d 0a 09 46 4c 4f 57 53 50 45 43 20 pec;...FLOWSPEC
5e00: 52 65 63 65 69 76 69 6e 67 46 6c 6f 77 73 70 65 ReceivingFlowspe
5e10: 63 3b 0d 0a 09 57 53 41 42 55 46 20 20 20 50 72 c;...WSABUF Pr
5e20: 6f 76 69 64 65 72 53 70 65 63 69 66 69 63 3b 0d oviderSpecific;.
5e30: 0a 7d 0d 0a 0d 0a 61 6c 69 61 73 20 51 4f 53 2a .}....alias QOS*
5e40: 20 4c 50 51 4f 53 3b 0d 0a 0d 0a 65 6e 75 6d 20 LPQOS;....enum
5e50: 7b 0d 0a 09 43 46 5f 41 43 43 45 50 54 2c 0d 0a {...CF_ACCEPT,..
5e60: 09 43 46 5f 52 45 4a 45 43 54 2c 0d 0a 09 43 46 .CF_REJECT,...CF
5e70: 5f 44 45 46 45 52 0d 0a 7d 0d 0a 0d 0a 2f 2f 20 _DEFER..}....//
5e80: 52 45 4d 3a 20 41 6c 72 65 61 64 79 20 64 65 66 REM: Already def
5e90: 69 6e 65 64 20 61 62 6f 76 65 0d 0a 2f 2a 65 6e ined above../*en
5ea0: 75 6d 20 7b 0d 0a 09 53 44 5f 52 45 43 45 49 56 um {...SD_RECEIV
5eb0: 45 2c 0d 0a 09 53 44 5f 53 45 4e 44 2c 0d 0a 09 E,...SD_SEND,...
5ec0: 53 44 5f 42 4f 54 48 0d 0a 7d 2a 2f 0d 0a 0d 0a SD_BOTH..}*/....
5ed0: 61 6c 69 61 73 20 75 69 6e 74 20 47 52 4f 55 50 alias uint GROUP
5ee0: 3b 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 53 47 ;....enum {...SG
5ef0: 5f 55 4e 43 4f 4e 53 54 52 41 49 4e 45 44 5f 47 _UNCONSTRAINED_G
5f00: 52 4f 55 50 20 3d 20 30 78 30 31 2c 0d 0a 09 53 ROUP = 0x01,...S
5f10: 47 5f 43 4f 4e 53 54 52 41 49 4e 45 44 5f 47 52 G_CONSTRAINED_GR
5f20: 4f 55 50 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 OUP..}....struct
5f30: 20 57 53 41 4e 45 54 57 4f 52 4b 45 56 45 4e 54 WSANETWORKEVENT
5f40: 53 20 7b 0d 0a 09 69 6e 74 20 6c 4e 65 74 77 6f S {...int lNetwo
5f50: 72 6b 45 76 65 6e 74 73 3b 0d 0a 09 69 6e 74 5b rkEvents;...int[
5f60: 46 44 5f 4d 41 58 5f 45 56 45 4e 54 53 5d 20 69 FD_MAX_EVENTS] i
5f70: 45 72 72 6f 72 43 6f 64 65 3b 0d 0a 7d 0d 0a 0d ErrorCode;..}...
5f80: 0a 61 6c 69 61 73 20 57 53 41 4e 45 54 57 4f 52 .alias WSANETWOR
5f90: 4b 45 56 45 4e 54 53 2a 20 4c 50 57 53 41 4e 45 KEVENTS* LPWSANE
5fa0: 54 57 4f 52 4b 45 56 45 4e 54 53 3b 0d 0a 0d 0a TWORKEVENTS;....
5fb0: 63 6f 6e 73 74 20 4d 41 58 5f 50 52 4f 54 4f 43 const MAX_PROTOC
5fc0: 4f 4c 5f 43 48 41 49 4e 20 3d 20 37 3b 0d 0a 0d OL_CHAIN = 7;...
5fd0: 0a 63 6f 6e 73 74 20 42 41 53 45 5f 50 52 4f 54 .const BASE_PROT
5fe0: 4f 43 4f 4c 20 20 20 20 3d 20 31 3b 0d 0a 63 6f OCOL = 1;..co
5ff0: 6e 73 74 20 4c 41 59 45 52 45 44 5f 50 52 4f 54 nst LAYERED_PROT
6000: 4f 43 4f 4c 20 3d 20 30 3b 0d 0a 0d 0a 65 6e 75 OCOL = 0;....enu
6010: 6d 20 57 53 41 45 53 45 54 53 45 52 56 49 43 45 m WSAESETSERVICE
6020: 4f 50 0d 0a 7b 0d 0a 09 52 4e 52 53 45 52 56 49 OP..{...RNRSERVI
6030: 43 45 5f 52 45 47 49 53 54 45 52 20 3d 20 30 2c CE_REGISTER = 0,
6040: 0d 0a 09 52 4e 52 53 45 52 56 49 43 45 5f 44 45 ...RNRSERVICE_DE
6050: 52 45 47 49 53 54 45 52 2c 0d 0a 09 52 4e 52 53 REGISTER,...RNRS
6060: 45 52 56 49 43 45 5f 44 45 4c 45 54 45 0d 0a 7d ERVICE_DELETE..}
6070: 0d 0a 0d 0a 61 6c 69 61 73 20 57 53 41 45 53 45 ....alias WSAESE
6080: 54 53 45 52 56 49 43 45 4f 50 2a 20 50 57 53 41 TSERVICEOP* PWSA
6090: 45 53 45 54 53 45 52 56 49 43 45 4f 50 2c 20 4c ESETSERVICEOP, L
60a0: 50 57 53 41 45 53 45 54 53 45 52 56 49 43 45 4f PWSAESETSERVICEO
60b0: 50 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 41 46 50 P;....struct AFP
60c0: 52 4f 54 4f 43 4f 4c 53 20 7b 0d 0a 09 49 4e 54 ROTOCOLS {...INT
60d0: 20 69 41 64 64 72 65 73 73 46 61 6d 69 6c 79 3b iAddressFamily;
60e0: 0d 0a 09 49 4e 54 20 69 50 72 6f 74 6f 63 6f 6c ...INT iProtocol
60f0: 3b 0d 0a 7d 0d 0a 0d 0a 61 6c 69 61 73 20 41 46 ;..}....alias AF
6100: 50 52 4f 54 4f 43 4f 4c 53 2a 20 50 41 46 50 52 PROTOCOLS* PAFPR
6110: 4f 54 4f 43 4f 4c 53 2c 20 4c 50 41 46 50 52 4f OTOCOLS, LPAFPRO
6120: 54 4f 43 4f 4c 53 3b 0d 0a 0d 0a 65 6e 75 6d 20 TOCOLS;....enum
6130: 57 53 41 45 43 4f 4d 50 41 52 41 54 4f 52 0d 0a WSAECOMPARATOR..
6140: 7b 0d 0a 09 43 4f 4d 50 5f 45 51 55 41 4c 20 3d {...COMP_EQUAL =
6150: 20 30 2c 0d 0a 09 43 4f 4d 50 5f 4e 4f 54 4c 45 0,...COMP_NOTLE
6160: 53 53 0d 0a 7d 0d 0a 0d 0a 61 6c 69 61 73 20 57 SS..}....alias W
6170: 53 41 45 43 4f 4d 50 41 52 41 54 4f 52 2a 20 50 SAECOMPARATOR* P
6180: 57 53 41 45 43 4f 4d 50 41 52 41 54 4f 52 2c 20 WSAECOMPARATOR,
6190: 4c 50 57 53 41 45 43 4f 4d 50 41 52 41 54 4f 52 LPWSAECOMPARATOR
61a0: 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 57 53 41 56 ;....struct WSAV
61b0: 45 52 53 49 4f 4e 0d 0a 7b 0d 0a 09 44 57 4f 52 ERSION..{...DWOR
61c0: 44 20 20 20 20 20 20 20 20 20 20 64 77 56 65 72 D dwVer
61d0: 73 69 6f 6e 3b 0d 0a 09 57 53 41 45 43 4f 4d 50 sion;...WSAECOMP
61e0: 41 52 41 54 4f 52 20 65 63 48 6f 77 3b 0d 0a 7d ARATOR ecHow;..}
61f0: 0d 0a 0d 0a 61 6c 69 61 73 20 57 53 41 56 45 52 ....alias WSAVER
6200: 53 49 4f 4e 2a 20 50 57 53 41 56 45 52 53 49 4f SION* PWSAVERSIO
6210: 4e 2c 20 4c 50 57 53 41 56 45 52 53 49 4f 4e 3b N, LPWSAVERSION;
6220: 0d 0a 0d 0a 2f 2f 20 49 6d 70 6f 72 74 20 66 6f ....// Import fo
6230: 72 20 53 4f 43 4b 45 54 5f 41 44 44 52 45 53 53 r SOCKET_ADDRESS
6240: 2c 20 43 53 41 44 44 52 5f 49 4e 46 4f 0d 0a 2f , CSADDR_INFO../
6250: 2f 20 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e 6e / import win32.n
6260: 73 70 61 70 69 3b 0d 0a 2f 2f 23 69 66 6e 64 65 spapi;..//#ifnde
6270: 66 20 5f 5f 43 53 41 44 44 52 5f 54 5f 44 45 46 f __CSADDR_T_DEF
6280: 49 4e 45 44 20 2f 2a 20 61 6c 73 6f 20 69 6e 20 INED /* also in
6290: 6e 73 70 61 70 69 2e 68 20 2a 2f 0d 0a 2f 2f 23 nspapi.h */..//#
62a0: 64 65 66 69 6e 65 20 5f 5f 43 53 41 44 44 52 5f define __CSADDR_
62b0: 54 5f 44 45 46 49 4e 45 44 0d 0a 0d 0a 73 74 72 T_DEFINED....str
62c0: 75 63 74 20 53 4f 43 4b 45 54 5f 41 44 44 52 45 uct SOCKET_ADDRE
62d0: 53 53 20 7b 0d 0a 09 4c 50 53 4f 43 4b 41 44 44 SS {...LPSOCKADD
62e0: 52 20 6c 70 53 6f 63 6b 61 64 64 72 3b 0d 0a 09 R lpSockaddr;...
62f0: 49 4e 54 20 20 20 20 20 20 20 20 69 53 6f 63 6b INT iSock
6300: 61 64 64 72 4c 65 6e 67 74 68 3b 0d 0a 7d 0d 0a addrLength;..}..
6310: 0d 0a 61 6c 69 61 73 20 53 4f 43 4b 45 54 5f 41 ..alias SOCKET_A
6320: 44 44 52 45 53 53 2a 20 50 53 4f 43 4b 45 54 5f DDRESS* PSOCKET_
6330: 41 44 44 52 45 53 53 2c 20 4c 50 53 4f 43 4b 45 ADDRESS, LPSOCKE
6340: 54 5f 41 44 44 52 45 53 53 3b 0d 0a 0d 0a 73 74 T_ADDRESS;....st
6350: 72 75 63 74 20 43 53 41 44 44 52 5f 49 4e 46 4f ruct CSADDR_INFO
6360: 20 7b 0d 0a 09 53 4f 43 4b 45 54 5f 41 44 44 52 {...SOCKET_ADDR
6370: 45 53 53 20 4c 6f 63 61 6c 41 64 64 72 3b 0d 0a ESS LocalAddr;..
6380: 09 53 4f 43 4b 45 54 5f 41 44 44 52 45 53 53 20 .SOCKET_ADDRESS
6390: 52 65 6d 6f 74 65 41 64 64 72 3b 0d 0a 09 49 4e RemoteAddr;...IN
63a0: 54 20 20 20 20 20 20 20 20 20 20 20 20 69 53 6f T iSo
63b0: 63 6b 65 74 54 79 70 65 3b 0d 0a 09 49 4e 54 20 cketType;...INT
63c0: 20 20 20 20 20 20 20 20 20 20 20 69 50 72 6f 74 iProt
63d0: 6f 63 6f 6c 3b 0d 0a 7d 0d 0a 0d 0a 61 6c 69 61 ocol;..}....alia
63e0: 73 20 43 53 41 44 44 52 5f 49 4e 46 4f 2a 20 50 s CSADDR_INFO* P
63f0: 43 53 41 44 44 52 5f 49 4e 46 4f 2c 20 4c 50 43 CSADDR_INFO, LPC
6400: 53 41 44 44 52 5f 49 4e 46 4f 3b 0d 0a 0d 0a 2f SADDR_INFO;..../
6410: 2f 23 65 6e 64 69 66 0d 0a 0d 0a 73 74 72 75 63 /#endif....struc
6420: 74 20 53 4f 43 4b 45 54 5f 41 44 44 52 45 53 53 t SOCKET_ADDRESS
6430: 5f 4c 49 53 54 20 7b 0d 0a 20 20 20 20 49 4e 54 _LIST {.. INT
6440: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 i
6450: 41 64 64 72 65 73 73 43 6f 75 6e 74 3b 0d 0a 20 AddressCount;..
6460: 20 20 20 53 4f 43 4b 45 54 5f 41 44 44 52 45 53 SOCKET_ADDRES
6470: 53 5b 31 5d 20 5f 41 64 64 72 65 73 73 3b 0d 0a S[1] _Address;..
6480: 20 20 20 20 53 4f 43 4b 45 54 5f 41 44 44 52 45 SOCKET_ADDRE
6490: 53 53 2a 20 41 64 64 72 65 73 73 28 29 20 7b 20 SS* Address() {
64a0: 72 65 74 75 72 6e 20 5f 41 64 64 72 65 73 73 2e return _Address.
64b0: 70 74 72 3b 20 7d 0d 0a 7d 0d 0a 0d 0a 61 6c 69 ptr; }..}....ali
64c0: 61 73 20 53 4f 43 4b 45 54 5f 41 44 44 52 45 53 as SOCKET_ADDRES
64d0: 53 5f 4c 49 53 54 2a 20 4c 50 53 4f 43 4b 45 54 S_LIST* LPSOCKET
64e0: 5f 41 44 44 52 45 53 53 5f 4c 49 53 54 3b 0d 0a _ADDRESS_LIST;..
64f0: 0d 0a 2f 2f 20 54 4f 44 4f 3a 20 49 6d 70 6f 72 ..// TODO: Impor
6500: 74 20 77 74 79 70 65 73 2f 6e 73 70 61 70 69 3f t wtypes/nspapi?
6510: 0d 0a 2f 2f 23 69 66 6e 64 65 66 20 5f 5f 42 4c ..//#ifndef __BL
6520: 4f 42 5f 54 5f 44 45 46 49 4e 45 44 20 2f 2a 20 OB_T_DEFINED /*
6530: 61 6c 73 6f 20 69 6e 20 77 74 79 70 65 73 2e 68 also in wtypes.h
6540: 20 61 6e 64 20 6e 73 70 61 70 69 2e 68 20 2a 2f and nspapi.h */
6550: 0d 0a 2f 2f 23 64 65 66 69 6e 65 20 5f 5f 42 4c ..//#define __BL
6560: 4f 42 5f 54 5f 44 45 46 49 4e 45 44 0d 0a 73 74 OB_T_DEFINED..st
6570: 72 75 63 74 20 42 4c 4f 42 20 7b 0d 0a 09 55 4c ruct BLOB {...UL
6580: 4f 4e 47 20 63 62 53 69 7a 65 3b 0d 0a 09 42 59 ONG cbSize;...BY
6590: 54 45 2a 20 70 42 6c 6f 62 44 61 74 61 3b 0d 0a TE* pBlobData;..
65a0: 7d 0d 0a 0d 0a 61 6c 69 61 73 20 42 4c 4f 42 2a }....alias BLOB*
65b0: 20 50 42 4c 4f 42 2c 20 4c 50 42 4c 4f 42 3b 0d PBLOB, LPBLOB;.
65c0: 0a 2f 2f 23 65 6e 64 69 66 0d 0a 0d 0a 73 74 72 .//#endif....str
65d0: 75 63 74 20 57 53 41 51 55 45 52 59 53 45 54 41 uct WSAQUERYSETA
65e0: 0d 0a 7b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 ..{...DWORD
65f0: 20 20 20 20 64 77 53 69 7a 65 3b 0d 0a 09 4c 50 dwSize;...LP
6600: 53 54 52 20 20 20 20 20 20 20 20 20 6c 70 73 7a STR lpsz
6610: 53 65 72 76 69 63 65 49 6e 73 74 61 6e 63 65 4e ServiceInstanceN
6620: 61 6d 65 3b 0d 0a 09 4c 50 47 55 49 44 20 20 20 ame;...LPGUID
6630: 20 20 20 20 20 6c 70 53 65 72 76 69 63 65 43 6c lpServiceCl
6640: 61 73 73 49 64 3b 0d 0a 09 4c 50 57 53 41 56 45 assId;...LPWSAVE
6650: 52 53 49 4f 4e 20 20 6c 70 56 65 72 73 69 6f 6e RSION lpVersion
6660: 3b 0d 0a 09 4c 50 53 54 52 20 20 20 20 20 20 20 ;...LPSTR
6670: 20 20 6c 70 73 7a 43 6f 6d 6d 65 6e 74 3b 0d 0a lpszComment;..
6680: 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 64 .DWORD d
6690: 77 4e 61 6d 65 53 70 61 63 65 3b 0d 0a 09 4c 50 wNameSpace;...LP
66a0: 47 55 49 44 20 20 20 20 20 20 20 20 6c 70 4e 53 GUID lpNS
66b0: 50 72 6f 76 69 64 65 72 49 64 3b 0d 0a 09 4c 50 ProviderId;...LP
66c0: 53 54 52 20 20 20 20 20 20 20 20 20 6c 70 73 7a STR lpsz
66d0: 43 6f 6e 74 65 78 74 3b 0d 0a 09 44 57 4f 52 44 Context;...DWORD
66e0: 20 20 20 20 20 20 20 20 20 64 77 4e 75 6d 62 65 dwNumbe
66f0: 72 4f 66 50 72 6f 74 6f 63 6f 6c 73 3b 0d 0a 09 rOfProtocols;...
6700: 4c 50 41 46 50 52 4f 54 4f 43 4f 4c 53 20 6c 70 LPAFPROTOCOLS lp
6710: 61 66 70 50 72 6f 74 6f 63 6f 6c 73 3b 0d 0a 09 afpProtocols;...
6720: 4c 50 53 54 52 20 20 20 20 20 20 20 20 20 6c 70 LPSTR lp
6730: 73 7a 51 75 65 72 79 53 74 72 69 6e 67 3b 0d 0a szQueryString;..
6740: 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 64 .DWORD d
6750: 77 4e 75 6d 62 65 72 4f 66 43 73 41 64 64 72 73 wNumberOfCsAddrs
6760: 3b 0d 0a 09 4c 50 43 53 41 44 44 52 5f 49 4e 46 ;...LPCSADDR_INF
6770: 4f 20 6c 70 63 73 61 42 75 66 66 65 72 3b 0d 0a O lpcsaBuffer;..
6780: 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 64 .DWORD d
6790: 77 4f 75 74 70 75 74 46 6c 61 67 73 3b 0d 0a 09 wOutputFlags;...
67a0: 4c 50 42 4c 4f 42 20 20 20 20 20 20 20 20 6c 70 LPBLOB lp
67b0: 42 6c 6f 62 3b 0d 0a 7d 0d 0a 0d 0a 61 6c 69 61 Blob;..}....alia
67c0: 73 20 57 53 41 51 55 45 52 59 53 45 54 41 2a 20 s WSAQUERYSETA*
67d0: 50 57 53 41 51 55 45 52 59 53 45 54 41 2c 20 4c PWSAQUERYSETA, L
67e0: 50 57 53 41 51 55 45 52 59 53 45 54 41 3b 0d 0a PWSAQUERYSETA;..
67f0: 0d 0a 73 74 72 75 63 74 20 57 53 41 51 55 45 52 ..struct WSAQUER
6800: 59 53 45 54 57 0d 0a 7b 0d 0a 09 44 57 4f 52 44 YSETW..{...DWORD
6810: 20 20 20 20 20 20 20 20 20 64 77 53 69 7a 65 3b dwSize;
6820: 0d 0a 09 4c 50 57 53 54 52 20 20 20 20 20 20 20 ...LPWSTR
6830: 20 6c 70 73 7a 53 65 72 76 69 63 65 49 6e 73 74 lpszServiceInst
6840: 61 6e 63 65 4e 61 6d 65 3b 0d 0a 09 4c 50 47 55 anceName;...LPGU
6850: 49 44 20 20 20 20 20 20 20 20 6c 70 53 65 72 76 ID lpServ
6860: 69 63 65 43 6c 61 73 73 49 64 3b 0d 0a 09 4c 50 iceClassId;...LP
6870: 57 53 41 56 45 52 53 49 4f 4e 20 20 6c 70 56 65 WSAVERSION lpVe
6880: 72 73 69 6f 6e 3b 0d 0a 09 4c 50 57 53 54 52 20 rsion;...LPWSTR
6890: 20 20 20 20 20 20 20 6c 70 73 7a 43 6f 6d 6d 65 lpszComme
68a0: 6e 74 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 nt;...DWORD
68b0: 20 20 20 20 64 77 4e 61 6d 65 53 70 61 63 65 3b dwNameSpace;
68c0: 0d 0a 09 4c 50 47 55 49 44 20 20 20 20 20 20 20 ...LPGUID
68d0: 20 6c 70 4e 53 50 72 6f 76 69 64 65 72 49 64 3b lpNSProviderId;
68e0: 0d 0a 09 4c 50 57 53 54 52 20 20 20 20 20 20 20 ...LPWSTR
68f0: 20 6c 70 73 7a 43 6f 6e 74 65 78 74 3b 0d 0a 09 lpszContext;...
6900: 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 64 77 DWORD dw
6910: 4e 75 6d 62 65 72 4f 66 50 72 6f 74 6f 63 6f 6c NumberOfProtocol
6920: 73 3b 0d 0a 09 4c 50 41 46 50 52 4f 54 4f 43 4f s;...LPAFPROTOCO
6930: 4c 53 20 6c 70 61 66 70 50 72 6f 74 6f 63 6f 6c LS lpafpProtocol
6940: 73 3b 0d 0a 09 4c 50 57 53 54 52 20 20 20 20 20 s;...LPWSTR
6950: 20 20 20 6c 70 73 7a 51 75 65 72 79 53 74 72 69 lpszQueryStri
6960: 6e 67 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 ng;...DWORD
6970: 20 20 20 20 64 77 4e 75 6d 62 65 72 4f 66 43 73 dwNumberOfCs
6980: 41 64 64 72 73 3b 0d 0a 09 4c 50 43 53 41 44 44 Addrs;...LPCSADD
6990: 52 5f 49 4e 46 4f 20 6c 70 63 73 61 42 75 66 66 R_INFO lpcsaBuff
69a0: 65 72 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 er;...DWORD
69b0: 20 20 20 20 64 77 4f 75 74 70 75 74 46 6c 61 67 dwOutputFlag
69c0: 73 3b 0d 0a 09 4c 50 42 4c 4f 42 20 20 20 20 20 s;...LPBLOB
69d0: 20 20 20 6c 70 42 6c 6f 62 3b 0d 0a 7d 0d 0a 0d lpBlob;..}...
69e0: 0a 0d 0a 61 6c 69 61 73 20 57 53 41 51 55 45 52 ...alias WSAQUER
69f0: 59 53 45 54 57 2a 20 50 57 53 41 51 55 45 52 59 YSETW* PWSAQUERY
6a00: 53 45 54 57 2c 20 4c 50 57 53 41 51 55 45 52 59 SETW, LPWSAQUERY
6a10: 53 45 54 57 3b 0d 0a 0d 0a 76 65 72 73 69 6f 6e SETW;....version
6a20: 28 55 6e 69 63 6f 64 65 29 20 7b 0d 0a 09 61 6c (Unicode) {...al
6a30: 69 61 73 20 57 53 41 51 55 45 52 59 53 45 54 57 ias WSAQUERYSETW
6a40: 20 57 53 41 51 55 45 52 59 53 45 54 3b 0d 0a 09 WSAQUERYSET;...
6a50: 61 6c 69 61 73 20 50 57 53 41 51 55 45 52 59 53 alias PWSAQUERYS
6a60: 45 54 57 20 50 57 53 41 51 55 45 52 59 53 45 54 ETW PWSAQUERYSET
6a70: 3b 0d 0a 09 61 6c 69 61 73 20 4c 50 57 53 41 51 ;...alias LPWSAQ
6a80: 55 45 52 59 53 45 54 57 20 4c 50 57 53 41 51 55 UERYSETW LPWSAQU
6a90: 45 52 59 53 45 54 3b 0d 0a 7d 20 65 6c 73 65 20 ERYSET;..} else
6aa0: 7b 0d 0a 09 61 6c 69 61 73 20 57 53 41 51 55 45 {...alias WSAQUE
6ab0: 52 59 53 45 54 41 20 57 53 41 51 55 45 52 59 53 RYSETA WSAQUERYS
6ac0: 45 54 3b 0d 0a 09 61 6c 69 61 73 20 50 57 53 41 ET;...alias PWSA
6ad0: 51 55 45 52 59 53 45 54 41 20 50 57 53 41 51 55 QUERYSETA PWSAQU
6ae0: 45 52 59 53 45 54 3b 0d 0a 09 61 6c 69 61 73 20 ERYSET;...alias
6af0: 4c 50 57 53 41 51 55 45 52 59 53 45 54 41 20 4c LPWSAQUERYSETA L
6b00: 50 57 53 41 51 55 45 52 59 53 45 54 3b 0d 0a 7d PWSAQUERYSET;..}
6b10: 0d 0a 0d 0a 63 6f 6e 73 74 20 69 6e 74 0d 0a 09 ....const int...
6b20: 4c 55 50 5f 44 45 45 50 20 20 20 20 20 20 20 20 LUP_DEEP
6b30: 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 31 = 0x0001
6b40: 2c 0d 0a 09 4c 55 50 5f 43 4f 4e 54 41 49 4e 45 ,...LUP_CONTAINE
6b50: 52 53 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 RS = 0x
6b60: 30 30 30 32 2c 0d 0a 09 4c 55 50 5f 4e 4f 43 4f 0002,...LUP_NOCO
6b70: 4e 54 41 49 4e 45 52 53 20 20 20 20 20 20 20 20 NTAINERS
6b80: 3d 20 30 78 30 30 30 34 2c 0d 0a 09 4c 55 50 5f = 0x0004,...LUP_
6b90: 4e 45 41 52 45 53 54 20 20 20 20 20 20 20 20 20 NEAREST
6ba0: 20 20 20 20 3d 20 30 78 30 30 30 38 2c 0d 0a 09 = 0x0008,...
6bb0: 4c 55 50 5f 52 45 54 55 52 4e 5f 4e 41 4d 45 20 LUP_RETURN_NAME
6bc0: 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 31 30 = 0x0010
6bd0: 2c 0d 0a 09 4c 55 50 5f 52 45 54 55 52 4e 5f 54 ,...LUP_RETURN_T
6be0: 59 50 45 20 20 20 20 20 20 20 20 20 3d 20 30 78 YPE = 0x
6bf0: 30 30 32 30 2c 0d 0a 09 4c 55 50 5f 52 45 54 55 0020,...LUP_RETU
6c00: 52 4e 5f 56 45 52 53 49 4f 4e 20 20 20 20 20 20 RN_VERSION
6c10: 3d 20 30 78 30 30 34 30 2c 0d 0a 09 4c 55 50 5f = 0x0040,...LUP_
6c20: 52 45 54 55 52 4e 5f 43 4f 4d 4d 45 4e 54 20 20 RETURN_COMMENT
6c30: 20 20 20 20 3d 20 30 78 30 30 38 30 2c 0d 0a 09 = 0x0080,...
6c40: 4c 55 50 5f 52 45 54 55 52 4e 5f 41 44 44 52 20 LUP_RETURN_ADDR
6c50: 20 20 20 20 20 20 20 20 3d 20 30 78 30 31 30 30 = 0x0100
6c60: 2c 0d 0a 09 4c 55 50 5f 52 45 54 55 52 4e 5f 42 ,...LUP_RETURN_B
6c70: 4c 4f 42 20 20 20 20 20 20 20 20 20 3d 20 30 78 LOB = 0x
6c80: 30 32 30 30 2c 0d 0a 09 4c 55 50 5f 52 45 54 55 0200,...LUP_RETU
6c90: 52 4e 5f 41 4c 49 41 53 45 53 20 20 20 20 20 20 RN_ALIASES
6ca0: 3d 20 30 78 30 34 30 30 2c 0d 0a 09 4c 55 50 5f = 0x0400,...LUP_
6cb0: 52 45 54 55 52 4e 5f 51 55 45 52 59 5f 53 54 52 RETURN_QUERY_STR
6cc0: 49 4e 47 20 3d 20 30 78 30 38 30 30 2c 0d 0a 09 ING = 0x0800,...
6cd0: 4c 55 50 5f 52 45 54 55 52 4e 5f 41 4c 4c 20 20 LUP_RETURN_ALL
6ce0: 20 20 20 20 20 20 20 20 3d 20 30 78 30 46 46 30 = 0x0FF0
6cf0: 2c 0d 0a 09 4c 55 50 5f 52 45 53 5f 53 45 52 56 ,...LUP_RES_SERV
6d00: 49 43 45 20 20 20 20 20 20 20 20 20 3d 20 30 78 ICE = 0x
6d10: 38 30 30 30 2c 0d 0a 09 4c 55 50 5f 46 4c 55 53 8000,...LUP_FLUS
6d20: 48 43 41 43 48 45 20 20 20 20 20 20 20 20 20 20 HCACHE
6d30: 3d 20 30 78 31 30 30 30 2c 0d 0a 09 4c 55 50 5f = 0x1000,...LUP_
6d40: 46 4c 55 53 48 50 52 45 56 49 4f 55 53 20 20 20 FLUSHPREVIOUS
6d50: 20 20 20 20 3d 20 30 78 32 30 30 30 3b 0d 0a 0d = 0x2000;...
6d60: 0a 73 74 72 75 63 74 20 57 53 41 4e 53 43 4c 41 .struct WSANSCLA
6d70: 53 53 49 4e 46 4f 41 0d 0a 7b 0d 0a 09 4c 50 53 SSINFOA..{...LPS
6d80: 54 52 20 20 6c 70 73 7a 4e 61 6d 65 3b 0d 0a 09 TR lpszName;...
6d90: 44 57 4f 52 44 20 20 64 77 4e 61 6d 65 53 70 61 DWORD dwNameSpa
6da0: 63 65 3b 0d 0a 09 44 57 4f 52 44 20 20 64 77 56 ce;...DWORD dwV
6db0: 61 6c 75 65 54 79 70 65 3b 0d 0a 09 44 57 4f 52 alueType;...DWOR
6dc0: 44 20 20 64 77 56 61 6c 75 65 53 69 7a 65 3b 0d D dwValueSize;.
6dd0: 0a 09 4c 50 56 4f 49 44 20 6c 70 56 61 6c 75 65 ..LPVOID lpValue
6de0: 3b 0d 0a 7d 0d 0a 0d 0a 61 6c 69 61 73 20 57 53 ;..}....alias WS
6df0: 41 4e 53 43 4c 41 53 53 49 4e 46 4f 41 2a 20 50 ANSCLASSINFOA* P
6e00: 57 53 41 4e 53 43 4c 41 53 53 49 4e 46 4f 41 2c WSANSCLASSINFOA,
6e10: 20 4c 50 57 53 41 4e 53 43 4c 41 53 53 49 4e 46 LPWSANSCLASSINF
6e20: 4f 41 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 57 53 OA;....struct WS
6e30: 41 4e 53 43 4c 41 53 53 49 4e 46 4f 57 0d 0a 7b ANSCLASSINFOW..{
6e40: 0d 0a 09 4c 50 57 53 54 52 20 6c 70 73 7a 4e 61 ...LPWSTR lpszNa
6e50: 6d 65 3b 0d 0a 09 44 57 4f 52 44 20 20 64 77 4e me;...DWORD dwN
6e60: 61 6d 65 53 70 61 63 65 3b 0d 0a 09 44 57 4f 52 ameSpace;...DWOR
6e70: 44 20 20 64 77 56 61 6c 75 65 54 79 70 65 3b 0d D dwValueType;.
6e80: 0a 09 44 57 4f 52 44 20 20 64 77 56 61 6c 75 65 ..DWORD dwValue
6e90: 53 69 7a 65 3b 0d 0a 09 4c 50 56 4f 49 44 20 6c Size;...LPVOID l
6ea0: 70 56 61 6c 75 65 3b 0d 0a 7d 0d 0a 0d 0a 61 6c pValue;..}....al
6eb0: 69 61 73 20 57 53 41 4e 53 43 4c 41 53 53 49 4e ias WSANSCLASSIN
6ec0: 46 4f 57 2a 20 50 57 53 41 4e 53 43 4c 41 53 53 FOW* PWSANSCLASS
6ed0: 49 4e 46 4f 57 2c 20 4c 50 57 53 41 4e 53 43 4c INFOW, LPWSANSCL
6ee0: 41 53 53 49 4e 46 4f 57 3b 0d 0a 0d 0a 76 65 72 ASSINFOW;....ver
6ef0: 73 69 6f 6e 28 55 6e 69 63 6f 64 65 29 20 7b 0d sion(Unicode) {.
6f00: 0a 09 61 6c 69 61 73 20 57 53 41 4e 53 43 4c 41 ..alias WSANSCLA
6f10: 53 53 49 4e 46 4f 57 20 57 53 41 4e 53 43 4c 41 SSINFOW WSANSCLA
6f20: 53 53 49 4e 46 4f 3b 0d 0a 09 61 6c 69 61 73 20 SSINFO;...alias
6f30: 50 57 53 41 4e 53 43 4c 41 53 53 49 4e 46 4f 57 PWSANSCLASSINFOW
6f40: 20 50 57 53 41 4e 53 43 4c 41 53 53 49 4e 46 4f PWSANSCLASSINFO
6f50: 3b 0d 0a 09 61 6c 69 61 73 20 4c 50 57 53 41 4e ;...alias LPWSAN
6f60: 53 43 4c 41 53 53 49 4e 46 4f 57 20 4c 50 57 53 SCLASSINFOW LPWS
6f70: 41 4e 53 43 4c 41 53 53 49 4e 46 4f 3b 0d 0a 7d ANSCLASSINFO;..}
6f80: 20 65 6c 73 65 20 7b 0d 0a 09 61 6c 69 61 73 20 else {...alias
6f90: 57 53 41 4e 53 43 4c 41 53 53 49 4e 46 4f 41 20 WSANSCLASSINFOA
6fa0: 57 53 41 4e 53 43 4c 41 53 53 49 4e 46 4f 3b 0d WSANSCLASSINFO;.
6fb0: 0a 09 61 6c 69 61 73 20 50 57 53 41 4e 53 43 4c ..alias PWSANSCL
6fc0: 41 53 53 49 4e 46 4f 41 20 50 57 53 41 4e 53 43 ASSINFOA PWSANSC
6fd0: 4c 41 53 53 49 4e 46 4f 3b 0d 0a 09 61 6c 69 61 LASSINFO;...alia
6fe0: 73 20 4c 50 57 53 41 4e 53 43 4c 41 53 53 49 4e s LPWSANSCLASSIN
6ff0: 46 4f 41 20 4c 50 57 53 41 4e 53 43 4c 41 53 53 FOA LPWSANSCLASS
7000: 49 4e 46 4f 3b 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 INFO;..}....stru
7010: 63 74 20 57 53 41 53 45 52 56 49 43 45 43 4c 41 ct WSASERVICECLA
7020: 53 53 49 4e 46 4f 41 0d 0a 7b 0d 0a 09 4c 50 47 SSINFOA..{...LPG
7030: 55 49 44 20 20 20 20 20 20 20 20 20 20 20 20 6c UID l
7040: 70 53 65 72 76 69 63 65 43 6c 61 73 73 49 64 3b pServiceClassId;
7050: 0d 0a 09 4c 50 53 54 52 20 20 20 20 20 20 20 20 ...LPSTR
7060: 20 20 20 20 20 6c 70 73 7a 53 65 72 76 69 63 65 lpszService
7070: 43 6c 61 73 73 4e 61 6d 65 3b 0d 0a 09 44 57 4f ClassName;...DWO
7080: 52 44 20 20 20 20 20 20 20 20 20 20 20 20 20 64 RD d
7090: 77 43 6f 75 6e 74 3b 0d 0a 09 4c 50 57 53 41 4e wCount;...LPWSAN
70a0: 53 43 4c 41 53 53 49 4e 46 4f 41 20 6c 70 43 6c SCLASSINFOA lpCl
70b0: 61 73 73 49 6e 66 6f 73 3b 0d 0a 7d 0d 0a 0d 0a assInfos;..}....
70c0: 61 6c 69 61 73 20 57 53 41 53 45 52 56 49 43 45 alias WSASERVICE
70d0: 43 4c 41 53 53 49 4e 46 4f 41 2a 20 50 57 53 41 CLASSINFOA* PWSA
70e0: 53 45 52 56 49 43 45 43 4c 41 53 53 49 4e 46 4f SERVICECLASSINFO
70f0: 41 2c 20 4c 50 57 53 41 53 45 52 56 49 43 45 43 A, LPWSASERVICEC
7100: 4c 41 53 53 49 4e 46 4f 41 3b 0d 0a 0d 0a 73 74 LASSINFOA;....st
7110: 72 75 63 74 20 57 53 41 53 45 52 56 49 43 45 43 ruct WSASERVICEC
7120: 4c 41 53 53 49 4e 46 4f 57 0d 0a 7b 0d 0a 09 4c LASSINFOW..{...L
7130: 50 47 55 49 44 20 20 20 20 20 20 20 20 20 20 20 PGUID
7140: 20 6c 70 53 65 72 76 69 63 65 43 6c 61 73 73 49 lpServiceClassI
7150: 64 3b 0d 0a 09 4c 50 57 53 54 52 20 20 20 20 20 d;...LPWSTR
7160: 20 20 20 20 20 20 20 6c 70 73 7a 53 65 72 76 69 lpszServi
7170: 63 65 43 6c 61 73 73 4e 61 6d 65 3b 0d 0a 09 44 ceClassName;...D
7180: 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 20 WORD
7190: 20 64 77 43 6f 75 6e 74 3b 0d 0a 09 4c 50 57 53 dwCount;...LPWS
71a0: 41 4e 53 43 4c 41 53 53 49 4e 46 4f 57 20 6c 70 ANSCLASSINFOW lp
71b0: 43 6c 61 73 73 49 6e 66 6f 73 3b 0d 0a 7d 0d 0a ClassInfos;..}..
71c0: 0d 0a 61 6c 69 61 73 20 57 53 41 53 45 52 56 49 ..alias WSASERVI
71d0: 43 45 43 4c 41 53 53 49 4e 46 4f 57 2a 20 50 57 CECLASSINFOW* PW
71e0: 53 41 53 45 52 56 49 43 45 43 4c 41 53 53 49 4e SASERVICECLASSIN
71f0: 46 4f 57 2c 20 4c 50 57 53 41 53 45 52 56 49 43 FOW, LPWSASERVIC
7200: 45 43 4c 41 53 53 49 4e 46 4f 57 3b 0d 0a 0d 0a ECLASSINFOW;....
7210: 76 65 72 73 69 6f 6e 28 55 6e 69 63 6f 64 65 29 version(Unicode)
7220: 20 7b 0d 0a 09 61 6c 69 61 73 20 57 53 41 53 45 {...alias WSASE
7230: 52 56 49 43 45 43 4c 41 53 53 49 4e 46 4f 57 20 RVICECLASSINFOW
7240: 57 53 41 53 45 52 56 49 43 45 43 4c 41 53 53 49 WSASERVICECLASSI
7250: 4e 46 4f 3b 0d 0a 09 61 6c 69 61 73 20 50 57 53 NFO;...alias PWS
7260: 41 53 45 52 56 49 43 45 43 4c 41 53 53 49 4e 46 ASERVICECLASSINF
7270: 4f 57 20 50 57 53 41 53 45 52 56 49 43 45 43 4c OW PWSASERVICECL
7280: 41 53 53 49 4e 46 4f 3b 0d 0a 09 61 6c 69 61 73 ASSINFO;...alias
7290: 20 4c 50 57 53 41 53 45 52 56 49 43 45 43 4c 41 LPWSASERVICECLA
72a0: 53 53 49 4e 46 4f 57 20 4c 50 57 53 41 53 45 52 SSINFOW LPWSASER
72b0: 56 49 43 45 43 4c 41 53 53 49 4e 46 4f 3b 0d 0a VICECLASSINFO;..
72c0: 7d 20 65 6c 73 65 20 7b 0d 0a 09 61 6c 69 61 73 } else {...alias
72d0: 20 57 53 41 53 45 52 56 49 43 45 43 4c 41 53 53 WSASERVICECLASS
72e0: 49 4e 46 4f 41 20 57 53 41 53 45 52 56 49 43 45 INFOA WSASERVICE
72f0: 43 4c 41 53 53 49 4e 46 4f 3b 0d 0a 09 61 6c 69 CLASSINFO;...ali
7300: 61 73 20 50 57 53 41 53 45 52 56 49 43 45 43 4c as PWSASERVICECL
7310: 41 53 53 49 4e 46 4f 41 20 50 57 53 41 53 45 52 ASSINFOA PWSASER
7320: 56 49 43 45 43 4c 41 53 53 49 4e 46 4f 3b 0d 0a VICECLASSINFO;..
7330: 09 61 6c 69 61 73 20 4c 50 57 53 41 53 45 52 56 .alias LPWSASERV
7340: 49 43 45 43 4c 41 53 53 49 4e 46 4f 41 20 4c 50 ICECLASSINFOA LP
7350: 57 53 41 53 45 52 56 49 43 45 43 4c 41 53 53 49 WSASERVICECLASSI
7360: 4e 46 4f 3b 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 NFO;..}....struc
7370: 74 20 57 53 41 4e 41 4d 45 53 50 41 43 45 5f 49 t WSANAMESPACE_I
7380: 4e 46 4f 41 20 7b 0d 0a 09 47 55 49 44 20 20 4e NFOA {...GUID N
7390: 53 50 72 6f 76 69 64 65 72 49 64 3b 0d 0a 09 44 SProviderId;...D
73a0: 57 4f 52 44 20 64 77 4e 61 6d 65 53 70 61 63 65 WORD dwNameSpace
73b0: 3b 0d 0a 09 42 4f 4f 4c 20 20 66 41 63 74 69 76 ;...BOOL fActiv
73c0: 65 3b 0d 0a 09 44 57 4f 52 44 20 64 77 56 65 72 e;...DWORD dwVer
73d0: 73 69 6f 6e 3b 0d 0a 09 4c 50 53 54 52 20 6c 70 sion;...LPSTR lp
73e0: 73 7a 49 64 65 6e 74 69 66 69 65 72 3b 0d 0a 7d szIdentifier;..}
73f0: 0d 0a 0d 0a 61 6c 69 61 73 20 57 53 41 4e 41 4d ....alias WSANAM
7400: 45 53 50 41 43 45 5f 49 4e 46 4f 41 2a 20 50 57 ESPACE_INFOA* PW
7410: 53 41 4e 41 4d 45 53 50 41 43 45 5f 49 4e 46 4f SANAMESPACE_INFO
7420: 41 2c 20 4c 50 57 53 41 4e 41 4d 45 53 50 41 43 A, LPWSANAMESPAC
7430: 45 5f 49 4e 46 4f 41 3b 0d 0a 0d 0a 73 74 72 75 E_INFOA;....stru
7440: 63 74 20 57 53 41 4e 41 4d 45 53 50 41 43 45 5f ct WSANAMESPACE_
7450: 49 4e 46 4f 57 20 7b 0d 0a 09 47 55 49 44 20 20 INFOW {...GUID
7460: 20 4e 53 50 72 6f 76 69 64 65 72 49 64 3b 0d 0a NSProviderId;..
7470: 09 44 57 4f 52 44 20 20 64 77 4e 61 6d 65 53 70 .DWORD dwNameSp
7480: 61 63 65 3b 0d 0a 09 42 4f 4f 4c 20 20 20 66 41 ace;...BOOL fA
7490: 63 74 69 76 65 3b 0d 0a 09 44 57 4f 52 44 20 20 ctive;...DWORD
74a0: 64 77 56 65 72 73 69 6f 6e 3b 0d 0a 09 4c 50 57 dwVersion;...LPW
74b0: 53 54 52 20 6c 70 73 7a 49 64 65 6e 74 69 66 69 STR lpszIdentifi
74c0: 65 72 3b 0d 0a 7d 0d 0a 0d 0a 61 6c 69 61 73 20 er;..}....alias
74d0: 57 53 41 4e 41 4d 45 53 50 41 43 45 5f 49 4e 46 WSANAMESPACE_INF
74e0: 4f 57 2a 20 50 57 53 41 4e 41 4d 45 53 50 41 43 OW* PWSANAMESPAC
74f0: 45 5f 49 4e 46 4f 57 2c 20 4c 50 57 53 41 4e 41 E_INFOW, LPWSANA
7500: 4d 45 53 50 41 43 45 5f 49 4e 46 4f 57 3b 0d 0a MESPACE_INFOW;..
7510: 0d 0a 76 65 72 73 69 6f 6e 28 55 6e 69 63 6f 64 ..version(Unicod
7520: 65 29 20 7b 0d 0a 09 61 6c 69 61 73 20 57 53 41 e) {...alias WSA
7530: 4e 41 4d 45 53 50 41 43 45 5f 49 4e 46 4f 57 20 NAMESPACE_INFOW
7540: 57 53 41 4e 41 4d 45 53 50 41 43 45 5f 49 4e 46 WSANAMESPACE_INF
7550: 4f 3b 0d 0a 09 61 6c 69 61 73 20 50 57 53 41 4e O;...alias PWSAN
7560: 41 4d 45 53 50 41 43 45 5f 49 4e 46 4f 57 20 50 AMESPACE_INFOW P
7570: 57 53 41 4e 41 4d 45 53 50 41 43 45 5f 49 4e 46 WSANAMESPACE_INF
7580: 4f 3b 0d 0a 09 61 6c 69 61 73 20 4c 50 57 53 41 O;...alias LPWSA
7590: 4e 41 4d 45 53 50 41 43 45 5f 49 4e 46 4f 57 20 NAMESPACE_INFOW
75a0: 4c 50 57 53 41 4e 41 4d 45 53 50 41 43 45 5f 49 LPWSANAMESPACE_I
75b0: 4e 46 4f 3b 0d 0a 7d 20 65 6c 73 65 20 7b 0d 0a NFO;..} else {..
75c0: 09 61 6c 69 61 73 20 57 53 41 4e 41 4d 45 53 50 .alias WSANAMESP
75d0: 41 43 45 5f 49 4e 46 4f 41 20 57 53 41 4e 41 4d ACE_INFOA WSANAM
75e0: 45 53 50 41 43 45 5f 49 4e 46 4f 3b 0d 0a 09 61 ESPACE_INFO;...a
75f0: 6c 69 61 73 20 50 57 53 41 4e 41 4d 45 53 50 41 lias PWSANAMESPA
7600: 43 45 5f 49 4e 46 4f 41 20 50 57 53 41 4e 41 4d CE_INFOA PWSANAM
7610: 45 53 50 41 43 45 5f 49 4e 46 4f 3b 0d 0a 09 61 ESPACE_INFO;...a
7620: 6c 69 61 73 20 4c 50 57 53 41 4e 41 4d 45 53 50 lias LPWSANAMESP
7630: 41 43 45 5f 49 4e 46 4f 41 20 4c 50 57 53 41 4e ACE_INFOA LPWSAN
7640: 41 4d 45 53 50 41 43 45 5f 49 4e 46 4f 3b 0d 0a AMESPACE_INFO;..
7650: 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 57 53 41 50 }....struct WSAP
7660: 52 4f 54 4f 43 4f 4c 43 48 41 49 4e 20 7b 0d 0a ROTOCOLCHAIN {..
7670: 09 69 6e 74 20 20 20 20 20 20 20 20 20 20 20 20 .int
7680: 20 20 20 20 20 20 20 20 20 20 20 43 68 61 69 6e Chain
7690: 4c 65 6e 3b 0d 0a 09 44 57 4f 52 44 5b 4d 41 58 Len;...DWORD[MAX
76a0: 5f 50 52 4f 54 4f 43 4f 4c 5f 43 48 41 49 4e 5d _PROTOCOL_CHAIN]
76b0: 20 43 68 61 69 6e 45 6e 74 72 69 65 73 3b 0d 0a ChainEntries;..
76c0: 7d 0d 0a 0d 0a 61 6c 69 61 73 20 57 53 41 50 52 }....alias WSAPR
76d0: 4f 54 4f 43 4f 4c 43 48 41 49 4e 2a 20 4c 50 57 OTOCOLCHAIN* LPW
76e0: 53 41 50 52 4f 54 4f 43 4f 4c 43 48 41 49 4e 3b SAPROTOCOLCHAIN;
76f0: 0d 0a 0d 0a 63 6f 6e 73 74 20 57 53 41 50 52 4f ....const WSAPRO
7700: 54 4f 43 4f 4c 5f 4c 45 4e 20 3d 20 32 35 35 3b TOCOL_LEN = 255;
7710: 0d 0a 0d 0a 73 74 72 75 63 74 20 57 53 41 50 52 ....struct WSAPR
7720: 4f 54 4f 43 4f 4c 5f 49 4e 46 4f 41 20 7b 0d 0a OTOCOL_INFOA {..
7730: 09 44 57 4f 52 44 20 64 77 53 65 72 76 69 63 65 .DWORD dwService
7740: 46 6c 61 67 73 31 3b 0d 0a 09 44 57 4f 52 44 20 Flags1;...DWORD
7750: 64 77 53 65 72 76 69 63 65 46 6c 61 67 73 32 3b dwServiceFlags2;
7760: 0d 0a 09 44 57 4f 52 44 20 64 77 53 65 72 76 69 ...DWORD dwServi
7770: 63 65 46 6c 61 67 73 33 3b 0d 0a 09 44 57 4f 52 ceFlags3;...DWOR
7780: 44 20 64 77 53 65 72 76 69 63 65 46 6c 61 67 73 D dwServiceFlags
7790: 34 3b 0d 0a 09 44 57 4f 52 44 20 64 77 50 72 6f 4;...DWORD dwPro
77a0: 76 69 64 65 72 46 6c 61 67 73 3b 0d 0a 09 47 55 viderFlags;...GU
77b0: 49 44 20 50 72 6f 76 69 64 65 72 49 64 3b 0d 0a ID ProviderId;..
77c0: 09 44 57 4f 52 44 20 64 77 43 61 74 61 6c 6f 67 .DWORD dwCatalog
77d0: 45 6e 74 72 79 49 64 3b 0d 0a 09 57 53 41 50 52 EntryId;...WSAPR
77e0: 4f 54 4f 43 4f 4c 43 48 41 49 4e 20 50 72 6f 74 OTOCOLCHAIN Prot
77f0: 6f 63 6f 6c 43 68 61 69 6e 3b 0d 0a 09 69 6e 74 ocolChain;...int
7800: 20 69 56 65 72 73 69 6f 6e 3b 0d 0a 09 69 6e 74 iVersion;...int
7810: 20 69 41 64 64 72 65 73 73 46 61 6d 69 6c 79 3b iAddressFamily;
7820: 0d 0a 09 69 6e 74 20 69 4d 61 78 53 6f 63 6b 41 ...int iMaxSockA
7830: 64 64 72 3b 0d 0a 09 69 6e 74 20 69 4d 69 6e 53 ddr;...int iMinS
7840: 6f 63 6b 41 64 64 72 3b 0d 0a 09 69 6e 74 20 69 ockAddr;...int i
7850: 53 6f 63 6b 65 74 54 79 70 65 3b 0d 0a 09 69 6e SocketType;...in
7860: 74 20 69 50 72 6f 74 6f 63 6f 6c 3b 0d 0a 09 69 t iProtocol;...i
7870: 6e 74 20 69 50 72 6f 74 6f 63 6f 6c 4d 61 78 4f nt iProtocolMaxO
7880: 66 66 73 65 74 3b 0d 0a 09 69 6e 74 20 69 4e 65 ffset;...int iNe
7890: 74 77 6f 72 6b 42 79 74 65 4f 72 64 65 72 3b 0d tworkByteOrder;.
78a0: 0a 09 69 6e 74 20 69 53 65 63 75 72 69 74 79 53 ..int iSecurityS
78b0: 63 68 65 6d 65 3b 0d 0a 09 44 57 4f 52 44 20 64 cheme;...DWORD d
78c0: 77 4d 65 73 73 61 67 65 53 69 7a 65 3b 0d 0a 09 wMessageSize;...
78d0: 44 57 4f 52 44 20 64 77 50 72 6f 76 69 64 65 72 DWORD dwProvider
78e0: 52 65 73 65 72 76 65 64 3b 0d 0a 09 43 48 41 52 Reserved;...CHAR
78f0: 5b 57 53 41 50 52 4f 54 4f 43 4f 4c 5f 4c 45 4e [WSAPROTOCOL_LEN
7900: 2b 31 5d 20 73 7a 50 72 6f 74 6f 63 6f 6c 3b 0d +1] szProtocol;.
7910: 0a 7d 0d 0a 0d 0a 61 6c 69 61 73 20 57 53 41 50 .}....alias WSAP
7920: 52 4f 54 4f 43 4f 4c 5f 49 4e 46 4f 41 2a 20 4c ROTOCOL_INFOA* L
7930: 50 57 53 41 50 52 4f 54 4f 43 4f 4c 5f 49 4e 46 PWSAPROTOCOL_INF
7940: 4f 41 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 57 53 OA;....struct WS
7950: 41 50 52 4f 54 4f 43 4f 4c 5f 49 4e 46 4f 57 20 APROTOCOL_INFOW
7960: 7b 0d 0a 09 44 57 4f 52 44 20 64 77 53 65 72 76 {...DWORD dwServ
7970: 69 63 65 46 6c 61 67 73 31 3b 0d 0a 09 44 57 4f iceFlags1;...DWO
7980: 52 44 20 64 77 53 65 72 76 69 63 65 46 6c 61 67 RD dwServiceFlag
7990: 73 32 3b 0d 0a 09 44 57 4f 52 44 20 64 77 53 65 s2;...DWORD dwSe
79a0: 72 76 69 63 65 46 6c 61 67 73 33 3b 0d 0a 09 44 rviceFlags3;...D
79b0: 57 4f 52 44 20 64 77 53 65 72 76 69 63 65 46 6c WORD dwServiceFl
79c0: 61 67 73 34 3b 0d 0a 09 44 57 4f 52 44 20 64 77 ags4;...DWORD dw
79d0: 50 72 6f 76 69 64 65 72 46 6c 61 67 73 3b 0d 0a ProviderFlags;..
79e0: 09 47 55 49 44 20 50 72 6f 76 69 64 65 72 49 64 .GUID ProviderId
79f0: 3b 0d 0a 09 44 57 4f 52 44 20 64 77 43 61 74 61 ;...DWORD dwCata
7a00: 6c 6f 67 45 6e 74 72 79 49 64 3b 0d 0a 09 57 53 logEntryId;...WS
7a10: 41 50 52 4f 54 4f 43 4f 4c 43 48 41 49 4e 20 50 APROTOCOLCHAIN P
7a20: 72 6f 74 6f 63 6f 6c 43 68 61 69 6e 3b 0d 0a 09 rotocolChain;...
7a30: 69 6e 74 20 69 56 65 72 73 69 6f 6e 3b 0d 0a 09 int iVersion;...
7a40: 69 6e 74 20 69 41 64 64 72 65 73 73 46 61 6d 69 int iAddressFami
7a50: 6c 79 3b 0d 0a 09 69 6e 74 20 69 4d 61 78 53 6f ly;...int iMaxSo
7a60: 63 6b 41 64 64 72 3b 0d 0a 09 69 6e 74 20 69 4d ckAddr;...int iM
7a70: 69 6e 53 6f 63 6b 41 64 64 72 3b 0d 0a 09 69 6e inSockAddr;...in
7a80: 74 20 69 53 6f 63 6b 65 74 54 79 70 65 3b 0d 0a t iSocketType;..
7a90: 09 69 6e 74 20 69 50 72 6f 74 6f 63 6f 6c 3b 0d .int iProtocol;.
7aa0: 0a 09 69 6e 74 20 69 50 72 6f 74 6f 63 6f 6c 4d ..int iProtocolM
7ab0: 61 78 4f 66 66 73 65 74 3b 0d 0a 09 69 6e 74 20 axOffset;...int
7ac0: 69 4e 65 74 77 6f 72 6b 42 79 74 65 4f 72 64 65 iNetworkByteOrde
7ad0: 72 3b 0d 0a 09 69 6e 74 20 69 53 65 63 75 72 69 r;...int iSecuri
7ae0: 74 79 53 63 68 65 6d 65 3b 0d 0a 09 44 57 4f 52 tyScheme;...DWOR
7af0: 44 20 64 77 4d 65 73 73 61 67 65 53 69 7a 65 3b D dwMessageSize;
7b00: 0d 0a 09 44 57 4f 52 44 20 64 77 50 72 6f 76 69 ...DWORD dwProvi
7b10: 64 65 72 52 65 73 65 72 76 65 64 3b 0d 0a 09 57 derReserved;...W
7b20: 43 48 41 52 5b 57 53 41 50 52 4f 54 4f 43 4f 4c CHAR[WSAPROTOCOL
7b30: 5f 4c 45 4e 2b 31 5d 20 73 7a 50 72 6f 74 6f 63 _LEN+1] szProtoc
7b40: 6f 6c 3b 0d 0a 7d 0d 0a 0d 0a 61 6c 69 61 73 20 ol;..}....alias
7b50: 57 53 41 50 52 4f 54 4f 43 4f 4c 5f 49 4e 46 4f WSAPROTOCOL_INFO
7b60: 57 2a 20 4c 50 57 53 41 50 52 4f 54 4f 43 4f 4c W* LPWSAPROTOCOL
7b70: 5f 49 4e 46 4f 57 3b 0d 0a 0d 0a 2f 2f 20 54 4f _INFOW;....// TO
7b80: 44 4f 3a 20 42 65 6c 6f 77 20 66 70 74 72 20 77 DO: Below fptr w
7b90: 61 73 20 64 65 66 69 6e 65 64 20 61 73 20 22 43 as defined as "C
7ba0: 41 4c 4c 42 41 43 4b 22 20 66 6f 72 20 6c 69 6e ALLBACK" for lin
7bb0: 6b 61 67 65 3b 20 69 73 20 74 68 69 73 20 72 69 kage; is this ri
7bc0: 67 68 74 3f 0d 0a 65 78 74 65 72 6e 28 43 29 20 ght?..extern(C)
7bd0: 7b 0d 0a 09 61 6c 69 61 73 20 69 6e 74 20 66 75 {...alias int fu
7be0: 6e 63 74 69 6f 6e 28 4c 50 57 53 41 42 55 46 2c nction(LPWSABUF,
7bf0: 20 4c 50 57 53 41 42 55 46 2c 20 4c 50 51 4f 53 LPWSABUF, LPQOS
7c00: 2c 20 4c 50 51 4f 53 2c 20 4c 50 57 53 41 42 55 , LPQOS, LPWSABU
7c10: 46 2c 20 4c 50 57 53 41 42 55 46 2c 20 47 52 4f F, LPWSABUF, GRO
7c20: 55 50 20 2a 2c 20 44 57 4f 52 44 29 20 4c 50 43 UP *, DWORD) LPC
7c30: 4f 4e 44 49 54 49 4f 4e 50 52 4f 43 3b 0d 0a 7d ONDITIONPROC;..}
7c40: 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f ....extern(Windo
7c50: 77 73 29 20 7b 0d 0a 09 61 6c 69 61 73 20 76 6f ws) {...alias vo
7c60: 69 64 20 66 75 6e 63 74 69 6f 6e 28 44 57 4f 52 id function(DWOR
7c70: 44 2c 20 44 57 4f 52 44 2c 20 4c 50 57 53 41 4f D, DWORD, LPWSAO
7c80: 56 45 52 4c 41 50 50 45 44 2c 20 44 57 4f 52 44 VERLAPPED, DWORD
7c90: 29 20 4c 50 57 53 41 4f 56 45 52 4c 41 50 50 45 ) LPWSAOVERLAPPE
7ca0: 44 5f 43 4f 4d 50 4c 45 54 49 4f 4e 5f 52 4f 55 D_COMPLETION_ROU
7cb0: 54 49 4e 45 3b 0d 0a 7d 0d 0a 0d 0a 76 65 72 73 TINE;..}....vers
7cc0: 69 6f 6e 28 55 6e 69 63 6f 64 65 29 20 7b 0d 0a ion(Unicode) {..
7cd0: 09 61 6c 69 61 73 20 57 53 41 50 52 4f 54 4f 43 .alias WSAPROTOC
7ce0: 4f 4c 5f 49 4e 46 4f 57 20 57 53 41 50 52 4f 54 OL_INFOW WSAPROT
7cf0: 4f 43 4f 4c 5f 49 4e 46 4f 3b 0d 0a 09 61 6c 69 OCOL_INFO;...ali
7d00: 61 73 20 4c 50 57 53 41 50 52 4f 54 4f 43 4f 4c as LPWSAPROTOCOL
7d10: 5f 49 4e 46 4f 57 20 4c 50 57 53 41 50 52 4f 54 _INFOW LPWSAPROT
7d20: 4f 43 4f 4c 5f 49 4e 46 4f 3b 0d 0a 7d 20 65 6c OCOL_INFO;..} el
7d30: 73 65 20 7b 0d 0a 09 61 6c 69 61 73 20 57 53 41 se {...alias WSA
7d40: 50 52 4f 54 4f 43 4f 4c 5f 49 4e 46 4f 41 20 57 PROTOCOL_INFOA W
7d50: 53 41 50 52 4f 54 4f 43 4f 4c 5f 49 4e 46 4f 3b SAPROTOCOL_INFO;
7d60: 0d 0a 09 61 6c 69 61 73 20 4c 50 57 53 41 50 52 ...alias LPWSAPR
7d70: 4f 54 4f 43 4f 4c 5f 49 4e 46 4f 41 20 4c 50 57 OTOCOL_INFOA LPW
7d80: 53 41 50 52 4f 54 4f 43 4f 4c 5f 49 4e 46 4f 3b SAPROTOCOL_INFO;
7d90: 0d 0a 7d 0d 0a 0d 0a 2f 2a 20 4e 65 65 64 65 64 ..}..../* Needed
7da0: 20 66 6f 72 20 58 50 20 26 20 2e 4e 45 54 20 53 for XP & .NET S
7db0: 65 72 76 65 72 20 66 75 6e 63 74 69 6f 6e 20 57 erver function W
7dc0: 53 41 4e 53 50 49 6f 63 74 6c 2e 20 20 2a 2f 0d SANSPIoctl. */.
7dd0: 0a 65 6e 75 6d 20 57 53 41 43 4f 4d 50 4c 45 54 .enum WSACOMPLET
7de0: 49 4f 4e 54 59 50 45 20 7b 0d 0a 20 20 20 20 4e IONTYPE {.. N
7df0: 53 50 5f 4e 4f 54 49 46 59 5f 49 4d 4d 45 44 49 SP_NOTIFY_IMMEDI
7e00: 41 54 45 4c 59 20 3d 20 30 2c 0d 0a 20 20 20 20 ATELY = 0,..
7e10: 4e 53 50 5f 4e 4f 54 49 46 59 5f 48 57 4e 44 2c NSP_NOTIFY_HWND,
7e20: 0d 0a 20 20 20 20 4e 53 50 5f 4e 4f 54 49 46 59 .. NSP_NOTIFY
7e30: 5f 45 56 45 4e 54 2c 0d 0a 20 20 20 20 4e 53 50 _EVENT,.. NSP
7e40: 5f 4e 4f 54 49 46 59 5f 50 4f 52 54 2c 0d 0a 20 _NOTIFY_PORT,..
7e50: 20 20 20 4e 53 50 5f 4e 4f 54 49 46 59 5f 41 50 NSP_NOTIFY_AP
7e60: 43 0d 0a 7d 0d 0a 0d 0a 61 6c 69 61 73 20 57 53 C..}....alias WS
7e70: 41 43 4f 4d 50 4c 45 54 49 4f 4e 54 59 50 45 2a ACOMPLETIONTYPE*
7e80: 20 50 57 53 41 43 4f 4d 50 4c 45 54 49 4f 4e 54 PWSACOMPLETIONT
7e90: 59 50 45 2c 20 4c 50 57 53 41 43 4f 4d 50 4c 45 YPE, LPWSACOMPLE
7ea0: 54 49 4f 4e 54 59 50 45 3b 0d 0a 0d 0a 73 74 72 TIONTYPE;....str
7eb0: 75 63 74 20 57 53 41 43 4f 4d 50 4c 45 54 49 4f uct WSACOMPLETIO
7ec0: 4e 20 7b 0d 0a 20 20 20 20 57 53 41 43 4f 4d 50 N {.. WSACOMP
7ed0: 4c 45 54 49 4f 4e 54 59 50 45 20 54 79 70 65 3b LETIONTYPE Type;
7ee0: 0d 0a 20 20 20 20 75 6e 69 6f 6e 20 57 53 41 43 .. union WSAC
7ef0: 4f 4d 50 4c 45 54 49 4f 4e 5f 50 41 52 41 4d 45 OMPLETION_PARAME
7f00: 54 45 52 53 20 7b 0d 0a 20 20 20 20 20 20 20 20 TERS {..
7f10: 73 74 72 75 63 74 20 57 53 41 43 4f 4d 50 4c 45 struct WSACOMPLE
7f20: 54 49 4f 4e 5f 57 49 4e 44 4f 57 4d 45 53 53 41 TION_WINDOWMESSA
7f30: 47 45 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 GE {..
7f40: 20 20 48 57 4e 44 20 68 57 6e 64 3b 0d 0a 20 20 HWND hWnd;..
7f50: 20 20 20 20 20 20 20 20 20 20 55 49 4e 54 20 75 UINT u
7f60: 4d 73 67 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 Msg;..
7f70: 20 20 57 50 41 52 41 4d 20 63 6f 6e 74 65 78 74 WPARAM context
7f80: 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 09 09 ;.. }....
7f90: 57 53 41 43 4f 4d 50 4c 45 54 49 4f 4e 5f 57 49 WSACOMPLETION_WI
7fa0: 4e 44 4f 57 4d 45 53 53 41 47 45 20 57 69 6e 64 NDOWMESSAGE Wind
7fb0: 6f 77 4d 65 73 73 61 67 65 3b 0d 0a 20 20 20 20 owMessage;..
7fc0: 20 20 20 20 73 74 72 75 63 74 20 57 53 41 43 4f struct WSACO
7fd0: 4d 50 4c 45 54 49 4f 4e 5f 45 56 45 4e 54 20 7b MPLETION_EVENT {
7fe0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 4c 50 .. LP
7ff0: 57 53 41 4f 56 45 52 4c 41 50 50 45 44 20 6c 70 WSAOVERLAPPED lp
8000: 4f 76 65 72 6c 61 70 70 65 64 3b 0d 0a 20 20 20 Overlapped;..
8010: 20 20 20 20 20 7d 0d 0a 09 09 57 53 41 43 4f 4d }....WSACOM
8020: 50 4c 45 54 49 4f 4e 5f 45 56 45 4e 54 20 45 76 PLETION_EVENT Ev
8030: 65 6e 74 3b 0d 0a 20 20 20 20 20 20 20 20 73 74 ent;.. st
8040: 72 75 63 74 20 57 53 41 43 4f 4d 50 4c 45 54 49 ruct WSACOMPLETI
8050: 4f 4e 5f 41 50 43 20 7b 0d 0a 20 20 20 20 20 20 ON_APC {..
8060: 20 20 20 20 20 20 4c 50 57 53 41 4f 56 45 52 4c LPWSAOVERL
8070: 41 50 50 45 44 20 6c 70 4f 76 65 72 6c 61 70 70 APPED lpOverlapp
8080: 65 64 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ed;..
8090: 20 4c 50 57 53 41 4f 56 45 52 4c 41 50 50 45 44 LPWSAOVERLAPPED
80a0: 5f 43 4f 4d 50 4c 45 54 49 4f 4e 5f 52 4f 55 54 _COMPLETION_ROUT
80b0: 49 4e 45 20 6c 70 66 6e 43 6f 6d 70 6c 65 74 69 INE lpfnCompleti
80c0: 6f 6e 50 72 6f 63 3b 0d 0a 20 20 20 20 20 20 20 onProc;..
80d0: 20 7d 0d 0a 09 09 57 53 41 43 4f 4d 50 4c 45 54 }....WSACOMPLET
80e0: 49 4f 4e 5f 41 50 43 20 41 70 63 3b 0d 0a 20 20 ION_APC Apc;..
80f0: 20 20 20 20 20 20 73 74 72 75 63 74 20 57 53 41 struct WSA
8100: 43 4f 4d 50 4c 45 54 49 4f 4e 5f 50 4f 52 54 20 COMPLETION_PORT
8110: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 4c {.. L
8120: 50 57 53 41 4f 56 45 52 4c 41 50 50 45 44 20 6c PWSAOVERLAPPED l
8130: 70 4f 76 65 72 6c 61 70 70 65 64 3b 0d 0a 20 20 pOverlapped;..
8140: 20 20 20 20 20 20 20 20 20 20 48 41 4e 44 4c 45 HANDLE
8150: 20 68 50 6f 72 74 3b 0d 0a 20 20 20 20 20 20 20 hPort;..
8160: 20 20 20 20 20 55 4c 4f 4e 47 5f 50 54 52 20 4b ULONG_PTR K
8170: 65 79 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a ey;.. }..
8180: 09 09 57 53 41 43 4f 4d 50 4c 45 54 49 4f 4e 5f ..WSACOMPLETION_
8190: 50 4f 52 54 20 50 6f 72 74 3b 0d 0a 20 20 20 20 PORT Port;..
81a0: 7d 0d 0a 09 57 53 41 43 4f 4d 50 4c 45 54 49 4f }...WSACOMPLETIO
81b0: 4e 5f 50 41 52 41 4d 45 54 45 52 53 20 50 61 72 N_PARAMETERS Par
81c0: 61 6d 65 74 65 72 73 3b 0d 0a 7d 0d 0a 0d 0a 61 ameters;..}....a
81d0: 6c 69 61 73 20 57 53 41 43 4f 4d 50 4c 45 54 49 lias WSACOMPLETI
81e0: 4f 4e 2a 20 50 57 53 41 43 4f 4d 50 4c 45 54 49 ON* PWSACOMPLETI
81f0: 4f 4e 2c 20 4c 50 57 53 41 43 4f 4d 50 4c 45 54 ON, LPWSACOMPLET
8200: 49 4f 4e 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 69 6e ION;....const in
8210: 74 0d 0a 09 50 46 4c 5f 4d 55 4c 54 49 50 4c 45 t...PFL_MULTIPLE
8220: 5f 50 52 4f 54 4f 5f 45 4e 54 52 49 45 53 20 20 _PROTO_ENTRIES
8230: 3d 20 30 78 30 30 30 30 30 30 30 31 2c 0d 0a 09 = 0x00000001,...
8240: 50 46 4c 5f 52 45 43 4f 4d 4d 45 4e 44 45 44 5f PFL_RECOMMENDED_
8250: 50 52 4f 54 4f 5f 45 4e 54 52 59 20 3d 20 30 78 PROTO_ENTRY = 0x
8260: 30 30 30 30 30 30 30 32 2c 0d 0a 09 50 46 4c 5f 00000002,...PFL_
8270: 48 49 44 44 45 4e 20 20 20 20 20 20 20 20 20 20 HIDDEN
8280: 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 = 0x0000
8290: 30 30 30 34 2c 0d 0a 09 50 46 4c 5f 4d 41 54 43 0004,...PFL_MATC
82a0: 48 45 53 5f 50 52 4f 54 4f 43 4f 4c 5f 5a 45 52 HES_PROTOCOL_ZER
82b0: 4f 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 38 O = 0x00000008
82c0: 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 69 6e 74 0d 0a ;....const int..
82d0: 09 58 50 31 5f 43 4f 4e 4e 45 43 54 49 4f 4e 4c .XP1_CONNECTIONL
82e0: 45 53 53 20 20 20 20 20 20 20 20 20 20 20 3d 20 ESS =
82f0: 30 78 30 30 30 30 30 30 30 31 2c 0d 0a 09 58 50 0x00000001,...XP
8300: 31 5f 47 55 41 52 41 4e 54 45 45 44 5f 44 45 4c 1_GUARANTEED_DEL
8310: 49 56 45 52 59 20 20 20 20 20 20 3d 20 30 78 30 IVERY = 0x0
8320: 30 30 30 30 30 30 32 2c 0d 0a 09 58 50 31 5f 47 0000002,...XP1_G
8330: 55 41 52 41 4e 54 45 45 44 5f 4f 52 44 45 52 20 UARANTEED_ORDER
8340: 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 = 0x0000
8350: 30 30 30 34 2c 0d 0a 09 58 50 31 5f 4d 45 53 53 0004,...XP1_MESS
8360: 41 47 45 5f 4f 52 49 45 4e 54 45 44 20 20 20 20 AGE_ORIENTED
8370: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 = 0x0000000
8380: 38 2c 0d 0a 09 58 50 31 5f 50 53 45 55 44 4f 5f 8,...XP1_PSEUDO_
8390: 53 54 52 45 41 4d 20 20 20 20 20 20 20 20 20 20 STREAM
83a0: 20 20 3d 20 30 78 30 30 30 30 30 30 31 30 2c 0d = 0x00000010,.
83b0: 0a 09 58 50 31 5f 47 52 41 43 45 46 55 4c 5f 43 ..XP1_GRACEFUL_C
83c0: 4c 4f 53 45 20 20 20 20 20 20 20 20 20 20 20 3d LOSE =
83d0: 20 30 78 30 30 30 30 30 30 32 30 2c 0d 0a 09 58 0x00000020,...X
83e0: 50 31 5f 45 58 50 45 44 49 54 45 44 5f 44 41 54 P1_EXPEDITED_DAT
83f0: 41 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 A = 0x
8400: 30 30 30 30 30 30 34 30 2c 0d 0a 09 58 50 31 5f 00000040,...XP1_
8410: 43 4f 4e 4e 45 43 54 5f 44 41 54 41 20 20 20 20 CONNECT_DATA
8420: 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 = 0x000
8430: 30 30 30 38 30 2c 0d 0a 09 58 50 31 5f 44 49 53 00080,...XP1_DIS
8440: 43 4f 4e 4e 45 43 54 5f 44 41 54 41 20 20 20 20 CONNECT_DATA
8450: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 31 = 0x000001
8460: 30 30 2c 0d 0a 09 58 50 31 5f 53 55 50 50 4f 52 00,...XP1_SUPPOR
8470: 54 5f 42 52 4f 41 44 43 41 53 54 20 20 20 20 20 T_BROADCAST
8480: 20 20 20 3d 20 30 78 30 30 30 30 30 32 30 30 2c = 0x00000200,
8490: 0d 0a 09 58 50 31 5f 53 55 50 50 4f 52 54 5f 4d ...XP1_SUPPORT_M
84a0: 55 4c 54 49 50 4f 49 4e 54 20 20 20 20 20 20 20 ULTIPOINT
84b0: 3d 20 30 78 30 30 30 30 30 34 30 30 2c 0d 0a 09 = 0x00000400,...
84c0: 58 50 31 5f 4d 55 4c 54 49 50 4f 49 4e 54 5f 43 XP1_MULTIPOINT_C
84d0: 4f 4e 54 52 4f 4c 5f 50 4c 41 4e 45 20 3d 20 30 ONTROL_PLANE = 0
84e0: 78 30 30 30 30 30 38 30 30 2c 0d 0a 09 58 50 31 x00000800,...XP1
84f0: 5f 4d 55 4c 54 49 50 4f 49 4e 54 5f 44 41 54 41 _MULTIPOINT_DATA
8500: 5f 50 4c 41 4e 45 20 20 20 20 3d 20 30 78 30 30 _PLANE = 0x00
8510: 30 30 31 30 30 30 2c 0d 0a 09 58 50 31 5f 51 4f 001000,...XP1_QO
8520: 53 5f 53 55 50 50 4f 52 54 45 44 20 20 20 20 20 S_SUPPORTED
8530: 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 32 = 0x00002
8540: 30 30 30 2c 0d 0a 09 58 50 31 5f 49 4e 54 45 52 000,...XP1_INTER
8550: 52 55 50 54 20 20 20 20 20 20 20 20 20 20 20 20 RUPT
8560: 20 20 20 20 3d 20 30 78 30 30 30 30 34 30 30 30 = 0x00004000
8570: 2c 0d 0a 09 58 50 31 5f 55 4e 49 5f 53 45 4e 44 ,...XP1_UNI_SEND
8580: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8590: 20 3d 20 30 78 30 30 30 30 38 30 30 30 2c 0d 0a = 0x00008000,..
85a0: 09 58 50 31 5f 55 4e 49 5f 52 45 43 56 20 20 20 .XP1_UNI_RECV
85b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 =
85c0: 30 78 30 30 30 31 30 30 30 30 2c 0d 0a 09 58 50 0x00010000,...XP
85d0: 31 5f 49 46 53 5f 48 41 4e 44 4c 45 53 20 20 20 1_IFS_HANDLES
85e0: 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 = 0x0
85f0: 30 30 32 30 30 30 30 2c 0d 0a 09 58 50 31 5f 50 0020000,...XP1_P
8600: 41 52 54 49 41 4c 5f 4d 45 53 53 41 47 45 20 20 ARTIAL_MESSAGE
8610: 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 34 = 0x0004
8620: 30 30 30 30 3b 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 0000;....enum :
8630: 69 6e 74 20 7b 0d 0a 09 42 49 47 45 4e 44 49 41 int {...BIGENDIA
8640: 4e 20 20 20 20 3d 20 30 78 30 30 30 30 2c 0d 0a N = 0x0000,..
8650: 09 4c 49 54 54 4c 45 45 4e 44 49 41 4e 20 3d 20 .LITTLEENDIAN =
8660: 30 78 30 30 30 31 0d 0a 7d 0d 0a 0d 0a 63 6f 6e 0x0001..}....con
8670: 73 74 20 53 45 43 55 52 49 54 59 5f 50 52 4f 54 st SECURITY_PROT
8680: 4f 43 4f 4c 5f 4e 4f 4e 45 20 3d 20 30 78 30 30 OCOL_NONE = 0x00
8690: 30 30 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 4a 4c 5f 00;....const JL_
86a0: 53 45 4e 44 45 52 5f 4f 4e 4c 59 20 3d 20 30 78 SENDER_ONLY = 0x
86b0: 30 31 3b 0d 0a 63 6f 6e 73 74 20 4a 4c 5f 52 45 01;..const JL_RE
86c0: 43 45 49 56 45 52 5f 4f 4e 4c 59 20 3d 20 30 78 CEIVER_ONLY = 0x
86d0: 30 32 3b 0d 0a 63 6f 6e 73 74 20 4a 4c 5f 42 4f 02;..const JL_BO
86e0: 54 48 20 3d 20 30 78 30 34 3b 0d 0a 0d 0a 63 6f TH = 0x04;....co
86f0: 6e 73 74 20 57 53 41 5f 46 4c 41 47 5f 4f 56 45 nst WSA_FLAG_OVE
8700: 52 4c 41 50 50 45 44 20 3d 20 30 78 30 31 3b 0d RLAPPED = 0x01;.
8710: 0a 63 6f 6e 73 74 20 57 53 41 5f 46 4c 41 47 5f .const WSA_FLAG_
8720: 4d 55 4c 54 49 50 4f 49 4e 54 5f 43 5f 52 4f 4f MULTIPOINT_C_ROO
8730: 54 20 3d 20 30 78 30 32 3b 0d 0a 63 6f 6e 73 74 T = 0x02;..const
8740: 20 57 53 41 5f 46 4c 41 47 5f 4d 55 4c 54 49 50 WSA_FLAG_MULTIP
8750: 4f 49 4e 54 5f 43 5f 4c 45 41 46 20 3d 20 30 78 OINT_C_LEAF = 0x
8760: 30 34 3b 0d 0a 63 6f 6e 73 74 20 57 53 41 5f 46 04;..const WSA_F
8770: 4c 41 47 5f 4d 55 4c 54 49 50 4f 49 4e 54 5f 44 LAG_MULTIPOINT_D
8780: 5f 52 4f 4f 54 20 3d 20 30 78 30 38 3b 0d 0a 63 _ROOT = 0x08;..c
8790: 6f 6e 73 74 20 57 53 41 5f 46 4c 41 47 5f 4d 55 onst WSA_FLAG_MU
87a0: 4c 54 49 50 4f 49 4e 54 5f 44 5f 4c 45 41 46 20 LTIPOINT_D_LEAF
87b0: 3d 20 30 78 31 30 3b 0d 0a 0d 0a 63 6f 6e 73 74 = 0x10;....const
87c0: 20 69 6e 74 20 49 4f 43 5f 55 4e 49 58 20 3d 20 int IOC_UNIX =
87d0: 30 78 30 30 30 30 30 30 30 30 3b 0d 0a 63 6f 6e 0x00000000;..con
87e0: 73 74 20 69 6e 74 20 49 4f 43 5f 57 53 32 20 3d st int IOC_WS2 =
87f0: 20 30 78 30 38 30 30 30 30 30 30 3b 0d 0a 63 6f 0x08000000;..co
8800: 6e 73 74 20 69 6e 74 20 49 4f 43 5f 50 52 4f 54 nst int IOC_PROT
8810: 4f 43 4f 4c 20 3d 20 30 78 31 30 30 30 30 30 30 OCOL = 0x1000000
8820: 30 3b 0d 0a 63 6f 6e 73 74 20 69 6e 74 20 49 4f 0;..const int IO
8830: 43 5f 56 45 4e 44 4f 52 20 3d 20 30 78 31 38 30 C_VENDOR = 0x180
8840: 30 30 30 30 30 3b 0d 0a 0d 0a 74 65 6d 70 6c 61 00000;....templa
8850: 74 65 20 5f 57 53 41 49 4f 28 69 6e 74 20 78 2c te _WSAIO(int x,
8860: 20 69 6e 74 20 79 29 20 7b 20 63 6f 6e 73 74 20 int y) { const
8870: 69 6e 74 20 5f 57 53 41 49 4f 20 3d 20 49 4f 43 int _WSAIO = IOC
8880: 5f 56 4f 49 44 20 7c 20 78 20 7c 20 79 3b 20 7d _VOID | x | y; }
8890: 0d 0a 74 65 6d 70 6c 61 74 65 20 5f 57 53 41 49 ..template _WSAI
88a0: 4f 52 28 69 6e 74 20 78 2c 20 69 6e 74 20 79 29 OR(int x, int y)
88b0: 20 7b 20 63 6f 6e 73 74 20 69 6e 74 20 5f 57 53 { const int _WS
88c0: 41 49 4f 52 20 3d 20 49 4f 43 5f 4f 55 54 20 7c AIOR = IOC_OUT |
88d0: 20 78 20 7c 20 79 3b 20 7d 0d 0a 74 65 6d 70 6c x | y; }..templ
88e0: 61 74 65 20 5f 57 53 41 49 4f 57 28 69 6e 74 20 ate _WSAIOW(int
88f0: 78 2c 20 69 6e 74 20 79 29 20 7b 20 63 6f 6e 73 x, int y) { cons
8900: 74 20 69 6e 74 20 5f 57 53 41 49 4f 57 20 3d 20 t int _WSAIOW =
8910: 49 4f 43 5f 49 4e 20 7c 20 78 20 7c 20 79 3b 20 IOC_IN | x | y;
8920: 7d 0d 0a 74 65 6d 70 6c 61 74 65 20 5f 57 53 41 }..template _WSA
8930: 49 4f 52 57 28 69 6e 74 20 78 2c 20 69 6e 74 20 IORW(int x, int
8940: 79 29 20 7b 20 63 6f 6e 73 74 20 69 6e 74 20 5f y) { const int _
8950: 57 53 41 49 4f 52 57 20 3d 20 49 4f 43 5f 49 4e WSAIORW = IOC_IN
8960: 4f 55 54 20 7c 20 78 20 7c 20 79 3b 20 7d 0d 0a OUT | x | y; }..
8970: 0d 0a 63 6f 6e 73 74 20 69 6e 74 20 53 49 4f 5f ..const int SIO_
8980: 41 53 53 4f 43 49 41 54 45 5f 48 41 4e 44 4c 45 ASSOCIATE_HANDLE
8990: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d =
89a0: 20 5f 57 53 41 49 4f 57 21 28 49 4f 43 5f 57 53 _WSAIOW!(IOC_WS
89b0: 32 2c 31 29 3b 0d 0a 63 6f 6e 73 74 20 69 6e 74 2,1);..const int
89c0: 20 53 49 4f 5f 45 4e 41 42 4c 45 5f 43 49 52 43 SIO_ENABLE_CIRC
89d0: 55 4c 41 52 5f 51 55 45 55 45 49 4e 47 20 20 20 ULAR_QUEUEING
89e0: 20 20 20 20 3d 20 5f 57 53 41 49 4f 21 28 49 4f = _WSAIO!(IO
89f0: 43 5f 57 53 32 2c 32 29 3b 0d 0a 63 6f 6e 73 74 C_WS2,2);..const
8a00: 20 69 6e 74 20 53 49 4f 5f 46 49 4e 44 5f 52 4f int SIO_FIND_RO
8a10: 55 54 45 20 20 20 20 20 20 20 20 20 20 20 20 20 UTE
8a20: 20 20 20 20 20 20 20 20 3d 20 5f 57 53 41 49 4f = _WSAIO
8a30: 52 21 28 49 4f 43 5f 57 53 32 2c 33 29 3b 0d 0a R!(IOC_WS2,3);..
8a40: 63 6f 6e 73 74 20 69 6e 74 20 53 49 4f 5f 46 4c const int SIO_FL
8a50: 55 53 48 20 20 20 20 20 20 20 20 20 20 20 20 20 USH
8a60: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 5f = _
8a70: 57 53 41 49 4f 21 28 49 4f 43 5f 57 53 32 2c 34 WSAIO!(IOC_WS2,4
8a80: 29 3b 0d 0a 63 6f 6e 73 74 20 69 6e 74 20 53 49 );..const int SI
8a90: 4f 5f 47 45 54 5f 42 52 4f 41 44 43 41 53 54 5f O_GET_BROADCAST_
8aa0: 41 44 44 52 45 53 53 20 20 20 20 20 20 20 20 20 ADDRESS
8ab0: 20 3d 20 5f 57 53 41 49 4f 52 21 28 49 4f 43 5f = _WSAIOR!(IOC_
8ac0: 57 53 32 2c 35 29 3b 0d 0a 63 6f 6e 73 74 20 69 WS2,5);..const i
8ad0: 6e 74 20 53 49 4f 5f 47 45 54 5f 45 58 54 45 4e nt SIO_GET_EXTEN
8ae0: 53 49 4f 4e 5f 46 55 4e 43 54 49 4f 4e 5f 50 4f SION_FUNCTION_PO
8af0: 49 4e 54 45 52 20 3d 20 5f 57 53 41 49 4f 52 57 INTER = _WSAIORW
8b00: 21 28 49 4f 43 5f 57 53 32 2c 36 29 3b 0d 0a 63 !(IOC_WS2,6);..c
8b10: 6f 6e 73 74 20 69 6e 74 20 53 49 4f 5f 47 45 54 onst int SIO_GET
8b20: 5f 51 4f 53 20 20 20 20 20 20 20 20 20 20 20 20 _QOS
8b30: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 5f 57 = _W
8b40: 53 41 49 4f 52 57 21 28 49 4f 43 5f 57 53 32 2c SAIORW!(IOC_WS2,
8b50: 37 29 3b 0d 0a 63 6f 6e 73 74 20 69 6e 74 20 53 7);..const int S
8b60: 49 4f 5f 47 45 54 5f 47 52 4f 55 50 5f 51 4f 53 IO_GET_GROUP_QOS
8b70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8b80: 20 20 3d 20 5f 57 53 41 49 4f 52 57 21 28 49 4f = _WSAIORW!(IO
8b90: 43 5f 57 53 32 2c 38 29 3b 0d 0a 63 6f 6e 73 74 C_WS2,8);..const
8ba0: 20 69 6e 74 20 53 49 4f 5f 4d 55 4c 54 49 50 4f int SIO_MULTIPO
8bb0: 49 4e 54 5f 4c 4f 4f 50 42 41 43 4b 20 20 20 20 INT_LOOPBACK
8bc0: 20 20 20 20 20 20 20 20 3d 20 5f 57 53 41 49 4f = _WSAIO
8bd0: 57 21 28 49 4f 43 5f 57 53 32 2c 39 29 3b 0d 0a W!(IOC_WS2,9);..
8be0: 63 6f 6e 73 74 20 69 6e 74 20 53 49 4f 5f 4d 55 const int SIO_MU
8bf0: 4c 54 49 43 41 53 54 5f 53 43 4f 50 45 20 20 20 LTICAST_SCOPE
8c00: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 5f = _
8c10: 57 53 41 49 4f 57 21 28 49 4f 43 5f 57 53 32 2c WSAIOW!(IOC_WS2,
8c20: 31 30 29 3b 0d 0a 63 6f 6e 73 74 20 69 6e 74 20 10);..const int
8c30: 53 49 4f 5f 53 45 54 5f 51 4f 53 20 20 20 20 20 SIO_SET_QOS
8c40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8c50: 20 20 20 3d 20 5f 57 53 41 49 4f 57 21 28 49 4f = _WSAIOW!(IO
8c60: 43 5f 57 53 32 2c 31 31 29 3b 0d 0a 63 6f 6e 73 C_WS2,11);..cons
8c70: 74 20 69 6e 74 20 53 49 4f 5f 53 45 54 5f 47 52 t int SIO_SET_GR
8c80: 4f 55 50 5f 51 4f 53 20 20 20 20 20 20 20 20 20 OUP_QOS
8c90: 20 20 20 20 20 20 20 20 20 3d 20 5f 57 53 41 49 = _WSAI
8ca0: 4f 57 21 28 49 4f 43 5f 57 53 32 2c 31 32 29 3b OW!(IOC_WS2,12);
8cb0: 0d 0a 63 6f 6e 73 74 20 69 6e 74 20 53 49 4f 5f ..const int SIO_
8cc0: 54 52 41 4e 53 4c 41 54 45 5f 48 41 4e 44 4c 45 TRANSLATE_HANDLE
8cd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d =
8ce0: 20 5f 57 53 41 49 4f 52 57 21 28 49 4f 43 5f 57 _WSAIORW!(IOC_W
8cf0: 53 32 2c 31 33 29 3b 0d 0a 63 6f 6e 73 74 20 69 S2,13);..const i
8d00: 6e 74 20 53 49 4f 5f 52 4f 55 54 49 4e 47 5f 49 nt SIO_ROUTING_I
8d10: 4e 54 45 52 46 41 43 45 5f 51 55 45 52 59 20 20 NTERFACE_QUERY
8d20: 20 20 20 20 20 20 3d 20 5f 57 53 41 49 4f 52 57 = _WSAIORW
8d30: 21 28 49 4f 43 5f 57 53 32 2c 32 30 29 3b 0d 0a !(IOC_WS2,20);..
8d40: 63 6f 6e 73 74 20 69 6e 74 20 53 49 4f 5f 52 4f const int SIO_RO
8d50: 55 54 49 4e 47 5f 49 4e 54 45 52 46 41 43 45 5f UTING_INTERFACE_
8d60: 43 48 41 4e 47 45 20 20 20 20 20 20 20 3d 20 5f CHANGE = _
8d70: 57 53 41 49 4f 57 21 28 49 4f 43 5f 57 53 32 2c WSAIOW!(IOC_WS2,
8d80: 32 31 29 3b 0d 0a 63 6f 6e 73 74 20 69 6e 74 20 21);..const int
8d90: 53 49 4f 5f 41 44 44 52 45 53 53 5f 4c 49 53 54 SIO_ADDRESS_LIST
8da0: 5f 51 55 45 52 59 20 20 20 20 20 20 20 20 20 20 _QUERY
8db0: 20 20 20 3d 20 5f 57 53 41 49 4f 52 21 28 49 4f = _WSAIOR!(IO
8dc0: 43 5f 57 53 32 2c 32 32 29 3b 0d 0a 63 6f 6e 73 C_WS2,22);..cons
8dd0: 74 20 69 6e 74 20 53 49 4f 5f 41 44 44 52 45 53 t int SIO_ADDRES
8de0: 53 5f 4c 49 53 54 5f 43 48 41 4e 47 45 20 20 20 S_LIST_CHANGE
8df0: 20 20 20 20 20 20 20 20 20 3d 20 5f 57 53 41 49 = _WSAI
8e00: 4f 21 28 49 4f 43 5f 57 53 32 2c 32 33 29 3b 0d O!(IOC_WS2,23);.
8e10: 0a 63 6f 6e 73 74 20 69 6e 74 20 53 49 4f 5f 51 .const int SIO_Q
8e20: 55 45 52 59 5f 54 41 52 47 45 54 5f 50 4e 50 5f UERY_TARGET_PNP_
8e30: 48 41 4e 44 4c 45 20 20 20 20 20 20 20 20 3d 20 HANDLE =
8e40: 5f 57 53 41 49 4f 52 21 28 49 4f 43 5f 57 53 32 _WSAIOR!(IOC_WS2
8e50: 2c 32 34 29 3b 0d 0a 63 6f 6e 73 74 20 69 6e 74 ,24);..const int
8e60: 20 53 49 4f 5f 4e 53 50 5f 4e 4f 54 49 46 59 5f SIO_NSP_NOTIFY_
8e70: 43 48 41 4e 47 45 20 20 20 20 20 20 20 20 20 20 CHANGE
8e80: 20 20 20 20 3d 20 5f 57 53 41 49 4f 57 21 28 49 = _WSAIOW!(I
8e90: 4f 43 5f 57 53 32 2c 32 35 29 3b 0d 0a 0d 0a 63 OC_WS2,25);....c
8ea0: 6f 6e 73 74 20 69 6e 74 20 54 48 5f 4e 45 54 44 onst int TH_NETD
8eb0: 45 56 20 3d 20 31 3b 0d 0a 63 6f 6e 73 74 20 69 EV = 1;..const i
8ec0: 6e 74 20 54 48 5f 54 41 50 49 20 20 20 3d 20 32 nt TH_TAPI = 2
8ed0: 3b 0d 0a 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 ;......extern(Wi
8ee0: 6e 64 6f 77 73 29 20 7b 0d 0a 09 53 4f 43 4b 45 ndows) {...SOCKE
8ef0: 54 20 57 53 41 41 63 63 65 70 74 28 53 4f 43 4b T WSAAccept(SOCK
8f00: 45 54 2c 20 53 4f 43 4b 41 44 44 52 2a 2c 20 4c ET, SOCKADDR*, L
8f10: 50 49 4e 54 2c 20 4c 50 43 4f 4e 44 49 54 49 4f PINT, LPCONDITIO
8f20: 4e 50 52 4f 43 2c 20 44 57 4f 52 44 29 3b 0d 0a NPROC, DWORD);..
8f30: 09 49 4e 54 20 57 53 41 41 64 64 72 65 73 73 54 .INT WSAAddressT
8f40: 6f 53 74 72 69 6e 67 41 28 4c 50 53 4f 43 4b 41 oStringA(LPSOCKA
8f50: 44 44 52 2c 20 44 57 4f 52 44 2c 20 4c 50 57 53 DDR, DWORD, LPWS
8f60: 41 50 52 4f 54 4f 43 4f 4c 5f 49 4e 46 4f 41 2c APROTOCOL_INFOA,
8f70: 20 4c 50 53 54 52 2c 20 4c 50 44 57 4f 52 44 29 LPSTR, LPDWORD)
8f80: 3b 0d 0a 09 49 4e 54 20 57 53 41 41 64 64 72 65 ;...INT WSAAddre
8f90: 73 73 54 6f 53 74 72 69 6e 67 57 28 4c 50 53 4f ssToStringW(LPSO
8fa0: 43 4b 41 44 44 52 2c 20 44 57 4f 52 44 2c 20 4c CKADDR, DWORD, L
8fb0: 50 57 53 41 50 52 4f 54 4f 43 4f 4c 5f 49 4e 46 PWSAPROTOCOL_INF
8fc0: 4f 57 2c 20 4c 50 57 53 54 52 2c 20 4c 50 44 57 OW, LPWSTR, LPDW
8fd0: 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 57 53 41 ORD);...BOOL WSA
8fe0: 43 6c 6f 73 65 45 76 65 6e 74 28 57 53 41 45 56 CloseEvent(WSAEV
8ff0: 45 4e 54 29 3b 0d 0a 09 69 6e 74 20 57 53 41 43 ENT);...int WSAC
9000: 6f 6e 6e 65 63 74 28 53 4f 43 4b 45 54 2c 20 63 onnect(SOCKET, c
9010: 6f 6e 73 74 28 53 4f 43 4b 41 44 44 52 29 2a 2c onst(SOCKADDR)*,
9020: 20 69 6e 74 2c 20 4c 50 57 53 41 42 55 46 2c 20 int, LPWSABUF,
9030: 4c 50 57 53 41 42 55 46 2c 20 4c 50 51 4f 53 2c LPWSABUF, LPQOS,
9040: 20 4c 50 51 4f 53 29 3b 0d 0a 09 57 53 41 45 56 LPQOS);...WSAEV
9050: 45 4e 54 20 57 53 41 43 72 65 61 74 65 45 76 65 ENT WSACreateEve
9060: 6e 74 28 29 3b 0d 0a 09 69 6e 74 20 57 53 41 44 nt();...int WSAD
9070: 75 70 6c 69 63 61 74 65 53 6f 63 6b 65 74 41 28 uplicateSocketA(
9080: 53 4f 43 4b 45 54 2c 20 44 57 4f 52 44 2c 20 4c SOCKET, DWORD, L
9090: 50 57 53 41 50 52 4f 54 4f 43 4f 4c 5f 49 4e 46 PWSAPROTOCOL_INF
90a0: 4f 41 29 3b 0d 0a 09 69 6e 74 20 57 53 41 44 75 OA);...int WSADu
90b0: 70 6c 69 63 61 74 65 53 6f 63 6b 65 74 57 28 53 plicateSocketW(S
90c0: 4f 43 4b 45 54 2c 20 44 57 4f 52 44 2c 20 4c 50 OCKET, DWORD, LP
90d0: 57 53 41 50 52 4f 54 4f 43 4f 4c 5f 49 4e 46 4f WSAPROTOCOL_INFO
90e0: 57 29 3b 0d 0a 09 49 4e 54 20 57 53 41 45 6e 75 W);...INT WSAEnu
90f0: 6d 4e 61 6d 65 53 70 61 63 65 50 72 6f 76 69 64 mNameSpaceProvid
9100: 65 72 73 41 28 4c 50 44 57 4f 52 44 2c 20 4c 50 ersA(LPDWORD, LP
9110: 57 53 41 4e 41 4d 45 53 50 41 43 45 5f 49 4e 46 WSANAMESPACE_INF
9120: 4f 41 29 3b 0d 0a 09 49 4e 54 20 57 53 41 45 6e OA);...INT WSAEn
9130: 75 6d 4e 61 6d 65 53 70 61 63 65 50 72 6f 76 69 umNameSpaceProvi
9140: 64 65 72 73 57 28 4c 50 44 57 4f 52 44 2c 20 4c dersW(LPDWORD, L
9150: 50 57 53 41 4e 41 4d 45 53 50 41 43 45 5f 49 4e PWSANAMESPACE_IN
9160: 46 4f 57 29 3b 0d 0a 09 69 6e 74 20 57 53 41 45 FOW);...int WSAE
9170: 6e 75 6d 4e 65 74 77 6f 72 6b 45 76 65 6e 74 73 numNetworkEvents
9180: 28 53 4f 43 4b 45 54 2c 20 57 53 41 45 56 45 4e (SOCKET, WSAEVEN
9190: 54 2c 20 4c 50 57 53 41 4e 45 54 57 4f 52 4b 45 T, LPWSANETWORKE
91a0: 56 45 4e 54 53 29 3b 0d 0a 09 69 6e 74 20 57 53 VENTS);...int WS
91b0: 41 45 6e 75 6d 50 72 6f 74 6f 63 6f 6c 73 41 28 AEnumProtocolsA(
91c0: 4c 50 49 4e 54 2c 20 4c 50 57 53 41 50 52 4f 54 LPINT, LPWSAPROT
91d0: 4f 43 4f 4c 5f 49 4e 46 4f 41 2c 20 4c 50 44 57 OCOL_INFOA, LPDW
91e0: 4f 52 44 29 3b 0d 0a 09 69 6e 74 20 57 53 41 45 ORD);...int WSAE
91f0: 6e 75 6d 50 72 6f 74 6f 63 6f 6c 73 57 28 4c 50 numProtocolsW(LP
9200: 49 4e 54 2c 20 4c 50 57 53 41 50 52 4f 54 4f 43 INT, LPWSAPROTOC
9210: 4f 4c 5f 49 4e 46 4f 57 2c 20 4c 50 44 57 4f 52 OL_INFOW, LPDWOR
9220: 44 29 3b 0d 0a 09 69 6e 74 20 57 53 41 45 76 65 D);...int WSAEve
9230: 6e 74 53 65 6c 65 63 74 28 53 4f 43 4b 45 54 2c ntSelect(SOCKET,
9240: 20 57 53 41 45 56 45 4e 54 2c 20 69 6e 74 29 3b WSAEVENT, int);
9250: 0d 0a 09 42 4f 4f 4c 20 57 53 41 47 65 74 4f 76 ...BOOL WSAGetOv
9260: 65 72 6c 61 70 70 65 64 52 65 73 75 6c 74 28 53 erlappedResult(S
9270: 4f 43 4b 45 54 2c 20 4c 50 57 53 41 4f 56 45 52 OCKET, LPWSAOVER
9280: 4c 41 50 50 45 44 2c 20 4c 50 44 57 4f 52 44 2c LAPPED, LPDWORD,
9290: 20 42 4f 4f 4c 2c 20 4c 50 44 57 4f 52 44 29 3b BOOL, LPDWORD);
92a0: 0d 0a 09 42 4f 4f 4c 20 57 53 41 47 65 74 51 4f ...BOOL WSAGetQO
92b0: 53 42 79 4e 61 6d 65 28 53 4f 43 4b 45 54 2c 20 SByName(SOCKET,
92c0: 4c 50 57 53 41 42 55 46 2c 20 4c 50 51 4f 53 29 LPWSABUF, LPQOS)
92d0: 3b 0d 0a 09 49 4e 54 20 57 53 41 47 65 74 53 65 ;...INT WSAGetSe
92e0: 72 76 69 63 65 43 6c 61 73 73 49 6e 66 6f 41 28 rviceClassInfoA(
92f0: 4c 50 47 55 49 44 2c 20 4c 50 47 55 49 44 2c 20 LPGUID, LPGUID,
9300: 4c 50 44 57 4f 52 44 2c 20 4c 50 57 53 41 53 45 LPDWORD, LPWSASE
9310: 52 56 49 43 45 43 4c 41 53 53 49 4e 46 4f 41 29 RVICECLASSINFOA)
9320: 3b 0d 0a 09 49 4e 54 20 57 53 41 47 65 74 53 65 ;...INT WSAGetSe
9330: 72 76 69 63 65 43 6c 61 73 73 49 6e 66 6f 57 28 rviceClassInfoW(
9340: 4c 50 47 55 49 44 2c 20 4c 50 47 55 49 44 2c 20 LPGUID, LPGUID,
9350: 4c 50 44 57 4f 52 44 2c 20 4c 50 57 53 41 53 45 LPDWORD, LPWSASE
9360: 52 56 49 43 45 43 4c 41 53 53 49 4e 46 4f 57 29 RVICECLASSINFOW)
9370: 3b 0d 0a 09 49 4e 54 20 57 53 41 47 65 74 53 65 ;...INT WSAGetSe
9380: 72 76 69 63 65 43 6c 61 73 73 4e 61 6d 65 42 79 rviceClassNameBy
9390: 43 6c 61 73 73 49 64 41 28 4c 50 47 55 49 44 2c ClassIdA(LPGUID,
93a0: 20 4c 50 53 54 52 2c 20 4c 50 44 57 4f 52 44 29 LPSTR, LPDWORD)
93b0: 3b 0d 0a 09 49 4e 54 20 57 53 41 47 65 74 53 65 ;...INT WSAGetSe
93c0: 72 76 69 63 65 43 6c 61 73 73 4e 61 6d 65 42 79 rviceClassNameBy
93d0: 43 6c 61 73 73 49 64 57 28 4c 50 47 55 49 44 2c ClassIdW(LPGUID,
93e0: 20 4c 50 57 53 54 52 2c 20 4c 50 44 57 4f 52 44 LPWSTR, LPDWORD
93f0: 29 3b 0d 0a 09 69 6e 74 20 57 53 41 48 74 6f 6e );...int WSAHton
9400: 6c 28 53 4f 43 4b 45 54 2c 20 75 69 6e 74 2c 20 l(SOCKET, uint,
9410: 75 69 6e 74 2a 29 3b 0d 0a 09 69 6e 74 20 57 53 uint*);...int WS
9420: 41 48 74 6f 6e 73 28 53 4f 43 4b 45 54 2c 20 75 AHtons(SOCKET, u
9430: 73 68 6f 72 74 2c 20 75 73 68 6f 72 74 2a 29 3b short, ushort*);
9440: 0d 0a 09 49 4e 54 20 57 53 41 49 6e 73 74 61 6c ...INT WSAInstal
9450: 6c 53 65 72 76 69 63 65 43 6c 61 73 73 41 28 4c lServiceClassA(L
9460: 50 57 53 41 53 45 52 56 49 43 45 43 4c 41 53 53 PWSASERVICECLASS
9470: 49 4e 46 4f 41 29 3b 0d 0a 09 49 4e 54 20 57 53 INFOA);...INT WS
9480: 41 49 6e 73 74 61 6c 6c 53 65 72 76 69 63 65 43 AInstallServiceC
9490: 6c 61 73 73 57 28 4c 50 57 53 41 53 45 52 56 49 lassW(LPWSASERVI
94a0: 43 45 43 4c 41 53 53 49 4e 46 4f 57 29 3b 0d 0a CECLASSINFOW);..
94b0: 09 69 6e 74 20 57 53 41 49 6f 63 74 6c 28 53 4f .int WSAIoctl(SO
94c0: 43 4b 45 54 2c 20 44 57 4f 52 44 2c 20 4c 50 56 CKET, DWORD, LPV
94d0: 4f 49 44 2c 20 44 57 4f 52 44 2c 20 4c 50 56 4f OID, DWORD, LPVO
94e0: 49 44 2c 20 44 57 4f 52 44 2c 20 4c 50 44 57 4f ID, DWORD, LPDWO
94f0: 52 44 2c 20 4c 50 57 53 41 4f 56 45 52 4c 41 50 RD, LPWSAOVERLAP
9500: 50 45 44 2c 20 4c 50 57 53 41 4f 56 45 52 4c 41 PED, LPWSAOVERLA
9510: 50 50 45 44 5f 43 4f 4d 50 4c 45 54 49 4f 4e 5f PPED_COMPLETION_
9520: 52 4f 55 54 49 4e 45 29 3b 0d 0a 09 53 4f 43 4b ROUTINE);...SOCK
9530: 45 54 20 57 53 41 4a 6f 69 6e 4c 65 61 66 28 53 ET WSAJoinLeaf(S
9540: 4f 43 4b 45 54 2c 20 63 6f 6e 73 74 28 53 4f 43 OCKET, const(SOC
9550: 4b 41 44 44 52 29 2a 2c 20 69 6e 74 2c 20 4c 50 KADDR)*, int, LP
9560: 57 53 41 42 55 46 2c 20 4c 50 57 53 41 42 55 46 WSABUF, LPWSABUF
9570: 2c 20 4c 50 51 4f 53 2c 20 4c 50 51 4f 53 2c 20 , LPQOS, LPQOS,
9580: 44 57 4f 52 44 29 3b 0d 0a 09 49 4e 54 20 57 53 DWORD);...INT WS
9590: 41 4c 6f 6f 6b 75 70 53 65 72 76 69 63 65 42 65 ALookupServiceBe
95a0: 67 69 6e 41 28 4c 50 57 53 41 51 55 45 52 59 53 ginA(LPWSAQUERYS
95b0: 45 54 41 2c 20 44 57 4f 52 44 2c 20 4c 50 48 41 ETA, DWORD, LPHA
95c0: 4e 44 4c 45 29 3b 0d 0a 09 49 4e 54 20 57 53 41 NDLE);...INT WSA
95d0: 4c 6f 6f 6b 75 70 53 65 72 76 69 63 65 42 65 67 LookupServiceBeg
95e0: 69 6e 57 28 4c 50 57 53 41 51 55 45 52 59 53 45 inW(LPWSAQUERYSE
95f0: 54 57 20 6c 70 71 73 52 65 73 74 72 69 63 74 69 TW lpqsRestricti
9600: 6f 6e 73 2c 20 44 57 4f 52 44 2c 20 4c 50 48 41 ons, DWORD, LPHA
9610: 4e 44 4c 45 29 3b 0d 0a 09 49 4e 54 20 57 53 41 NDLE);...INT WSA
9620: 4c 6f 6f 6b 75 70 53 65 72 76 69 63 65 4e 65 78 LookupServiceNex
9630: 74 41 28 48 41 4e 44 4c 45 2c 20 44 57 4f 52 44 tA(HANDLE, DWORD
9640: 2c 20 4c 50 44 57 4f 52 44 2c 20 4c 50 57 53 41 , LPDWORD, LPWSA
9650: 51 55 45 52 59 53 45 54 41 29 3b 0d 0a 09 49 4e QUERYSETA);...IN
9660: 54 20 57 53 41 4c 6f 6f 6b 75 70 53 65 72 76 69 T WSALookupServi
9670: 63 65 4e 65 78 74 57 28 48 41 4e 44 4c 45 2c 20 ceNextW(HANDLE,
9680: 44 57 4f 52 44 2c 20 4c 50 44 57 4f 52 44 2c 20 DWORD, LPDWORD,
9690: 4c 50 57 53 41 51 55 45 52 59 53 45 54 57 29 3b LPWSAQUERYSETW);
96a0: 0d 0a 09 49 4e 54 20 57 53 41 4c 6f 6f 6b 75 70 ...INT WSALookup
96b0: 53 65 72 76 69 63 65 45 6e 64 28 48 41 4e 44 4c ServiceEnd(HANDL
96c0: 45 29 3b 0d 0a 09 69 6e 74 20 57 53 41 4e 53 50 E);...int WSANSP
96d0: 49 6f 63 74 6c 28 48 41 4e 44 4c 45 2c 44 57 4f Ioctl(HANDLE,DWO
96e0: 52 44 2c 4c 50 56 4f 49 44 2c 44 57 4f 52 44 2c RD,LPVOID,DWORD,
96f0: 4c 50 56 4f 49 44 2c 44 57 4f 52 44 2c 4c 50 44 LPVOID,DWORD,LPD
9700: 57 4f 52 44 2c 4c 50 57 53 41 43 4f 4d 50 4c 45 WORD,LPWSACOMPLE
9710: 54 49 4f 4e 29 3b 20 2f 2a 20 58 50 20 6f 72 20 TION); /* XP or
9720: 2e 4e 45 54 20 53 65 72 76 65 72 20 2a 2f 0d 0a .NET Server */..
9730: 09 69 6e 74 20 57 53 41 4e 74 6f 68 6c 28 53 4f .int WSANtohl(SO
9740: 43 4b 45 54 2c 20 75 69 6e 74 2c 20 75 69 6e 74 CKET, uint, uint
9750: 2a 29 3b 0d 0a 09 69 6e 74 20 57 53 41 4e 74 6f *);...int WSANto
9760: 68 73 28 53 4f 43 4b 45 54 2c 20 75 73 68 6f 72 hs(SOCKET, ushor
9770: 74 2c 20 75 73 68 6f 72 74 2a 29 3b 0d 0a 09 69 t, ushort*);...i
9780: 6e 74 20 57 53 41 52 65 63 76 28 53 4f 43 4b 45 nt WSARecv(SOCKE
9790: 54 2c 20 4c 50 57 53 41 42 55 46 2c 20 44 57 4f T, LPWSABUF, DWO
97a0: 52 44 2c 20 4c 50 44 57 4f 52 44 2c 20 4c 50 44 RD, LPDWORD, LPD
97b0: 57 4f 52 44 2c 20 4c 50 57 53 41 4f 56 45 52 4c WORD, LPWSAOVERL
97c0: 41 50 50 45 44 2c 20 4c 50 57 53 41 4f 56 45 52 APPED, LPWSAOVER
97d0: 4c 41 50 50 45 44 5f 43 4f 4d 50 4c 45 54 49 4f LAPPED_COMPLETIO
97e0: 4e 5f 52 4f 55 54 49 4e 45 29 3b 0d 0a 09 69 6e N_ROUTINE);...in
97f0: 74 20 57 53 41 52 65 63 76 44 69 73 63 6f 6e 6e t WSARecvDisconn
9800: 65 63 74 28 53 4f 43 4b 45 54 2c 20 4c 50 57 53 ect(SOCKET, LPWS
9810: 41 42 55 46 29 3b 0d 0a 09 69 6e 74 20 57 53 41 ABUF);...int WSA
9820: 52 65 63 76 46 72 6f 6d 28 53 4f 43 4b 45 54 2c RecvFrom(SOCKET,
9830: 20 4c 50 57 53 41 42 55 46 2c 20 44 57 4f 52 44 LPWSABUF, DWORD
9840: 2c 20 4c 50 44 57 4f 52 44 2c 20 4c 50 44 57 4f , LPDWORD, LPDWO
9850: 52 44 2c 20 53 4f 43 4b 41 44 44 52 2a 2c 20 4c RD, SOCKADDR*, L
9860: 50 49 4e 54 2c 20 4c 50 57 53 41 4f 56 45 52 4c PINT, LPWSAOVERL
9870: 41 50 50 45 44 2c 20 4c 50 57 53 41 4f 56 45 52 APPED, LPWSAOVER
9880: 4c 41 50 50 45 44 5f 43 4f 4d 50 4c 45 54 49 4f LAPPED_COMPLETIO
9890: 4e 5f 52 4f 55 54 49 4e 45 29 3b 0d 0a 09 49 4e N_ROUTINE);...IN
98a0: 54 20 57 53 41 52 65 6d 6f 76 65 53 65 72 76 69 T WSARemoveServi
98b0: 63 65 43 6c 61 73 73 28 4c 50 47 55 49 44 29 3b ceClass(LPGUID);
98c0: 0d 0a 09 42 4f 4f 4c 20 57 53 41 52 65 73 65 74 ...BOOL WSAReset
98d0: 45 76 65 6e 74 28 57 53 41 45 56 45 4e 54 29 3b Event(WSAEVENT);
98e0: 0d 0a 09 69 6e 74 20 57 53 41 53 65 6e 64 28 53 ...int WSASend(S
98f0: 4f 43 4b 45 54 2c 20 4c 50 57 53 41 42 55 46 2c OCKET, LPWSABUF,
9900: 20 44 57 4f 52 44 2c 20 4c 50 44 57 4f 52 44 2c DWORD, LPDWORD,
9910: 20 44 57 4f 52 44 2c 20 4c 50 57 53 41 4f 56 45 DWORD, LPWSAOVE
9920: 52 4c 41 50 50 45 44 2c 20 4c 50 57 53 41 4f 56 RLAPPED, LPWSAOV
9930: 45 52 4c 41 50 50 45 44 5f 43 4f 4d 50 4c 45 54 ERLAPPED_COMPLET
9940: 49 4f 4e 5f 52 4f 55 54 49 4e 45 29 3b 0d 0a 09 ION_ROUTINE);...
9950: 69 6e 74 20 57 53 41 53 65 6e 64 44 69 73 63 6f int WSASendDisco
9960: 6e 6e 65 63 74 28 53 4f 43 4b 45 54 2c 20 4c 50 nnect(SOCKET, LP
9970: 57 53 41 42 55 46 29 3b 0d 0a 09 69 6e 74 20 57 WSABUF);...int W
9980: 53 41 53 65 6e 64 54 6f 28 53 4f 43 4b 45 54 2c SASendTo(SOCKET,
9990: 20 4c 50 57 53 41 42 55 46 2c 20 44 57 4f 52 44 LPWSABUF, DWORD
99a0: 2c 20 4c 50 44 57 4f 52 44 2c 20 44 57 4f 52 44 , LPDWORD, DWORD
99b0: 2c 20 63 6f 6e 73 74 28 53 4f 43 4b 41 44 44 52 , const(SOCKADDR
99c0: 29 2a 2c 20 69 6e 74 2c 20 4c 50 57 53 41 4f 56 )*, int, LPWSAOV
99d0: 45 52 4c 41 50 50 45 44 2c 20 4c 50 57 53 41 4f ERLAPPED, LPWSAO
99e0: 56 45 52 4c 41 50 50 45 44 5f 43 4f 4d 50 4c 45 VERLAPPED_COMPLE
99f0: 54 49 4f 4e 5f 52 4f 55 54 49 4e 45 29 3b 0d 0a TION_ROUTINE);..
9a00: 09 42 4f 4f 4c 20 57 53 41 53 65 74 45 76 65 6e .BOOL WSASetEven
9a10: 74 28 57 53 41 45 56 45 4e 54 29 3b 0d 0a 09 49 t(WSAEVENT);...I
9a20: 4e 54 20 57 53 41 53 65 74 53 65 72 76 69 63 65 NT WSASetService
9a30: 41 28 4c 50 57 53 41 51 55 45 52 59 53 45 54 41 A(LPWSAQUERYSETA
9a40: 2c 20 57 53 41 45 53 45 54 53 45 52 56 49 43 45 , WSAESETSERVICE
9a50: 4f 50 2c 20 44 57 4f 52 44 29 3b 20 2f 2f 20 4e OP, DWORD); // N
9a60: 42 3a 20 77 61 73 20 64 65 63 6c 61 72 65 64 20 B: was declared
9a70: 77 69 74 68 20 22 57 53 41 41 50 49 22 20 6c 69 with "WSAAPI" li
9a80: 6e 6b 61 67 65 0d 0a 09 49 4e 54 20 57 53 41 53 nkage...INT WSAS
9a90: 65 74 53 65 72 76 69 63 65 57 28 4c 50 57 53 41 etServiceW(LPWSA
9aa0: 51 55 45 52 59 53 45 54 57 2c 20 57 53 41 45 53 QUERYSETW, WSAES
9ab0: 45 54 53 45 52 56 49 43 45 4f 50 2c 20 44 57 4f ETSERVICEOP, DWO
9ac0: 52 44 29 3b 0d 0a 09 53 4f 43 4b 45 54 20 57 53 RD);...SOCKET WS
9ad0: 41 53 6f 63 6b 65 74 41 28 69 6e 74 2c 20 69 6e ASocketA(int, in
9ae0: 74 2c 20 69 6e 74 2c 20 4c 50 57 53 41 50 52 4f t, int, LPWSAPRO
9af0: 54 4f 43 4f 4c 5f 49 4e 46 4f 41 2c 20 47 52 4f TOCOL_INFOA, GRO
9b00: 55 50 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 53 4f UP, DWORD);...SO
9b10: 43 4b 45 54 20 57 53 41 53 6f 63 6b 65 74 57 28 CKET WSASocketW(
9b20: 69 6e 74 2c 20 69 6e 74 2c 20 69 6e 74 2c 20 4c int, int, int, L
9b30: 50 57 53 41 50 52 4f 54 4f 43 4f 4c 5f 49 4e 46 PWSAPROTOCOL_INF
9b40: 4f 57 2c 20 47 52 4f 55 50 2c 20 44 57 4f 52 44 OW, GROUP, DWORD
9b50: 29 3b 0d 0a 09 49 4e 54 20 57 53 41 53 74 72 69 );...INT WSAStri
9b60: 6e 67 54 6f 41 64 64 72 65 73 73 41 28 4c 50 53 ngToAddressA(LPS
9b70: 54 52 2c 20 49 4e 54 2c 20 4c 50 57 53 41 50 52 TR, INT, LPWSAPR
9b80: 4f 54 4f 43 4f 4c 5f 49 4e 46 4f 41 2c 20 4c 50 OTOCOL_INFOA, LP
9b90: 53 4f 43 4b 41 44 44 52 2c 20 4c 50 49 4e 54 29 SOCKADDR, LPINT)
9ba0: 3b 0d 0a 09 49 4e 54 20 57 53 41 53 74 72 69 6e ;...INT WSAStrin
9bb0: 67 54 6f 41 64 64 72 65 73 73 57 28 4c 50 57 53 gToAddressW(LPWS
9bc0: 54 52 2c 20 49 4e 54 2c 20 4c 50 57 53 41 50 52 TR, INT, LPWSAPR
9bd0: 4f 54 4f 43 4f 4c 5f 49 4e 46 4f 57 2c 20 4c 50 OTOCOL_INFOW, LP
9be0: 53 4f 43 4b 41 44 44 52 2c 20 4c 50 49 4e 54 29 SOCKADDR, LPINT)
9bf0: 3b 0d 0a 09 44 57 4f 52 44 20 57 53 41 57 61 69 ;...DWORD WSAWai
9c00: 74 46 6f 72 4d 75 6c 74 69 70 6c 65 45 76 65 6e tForMultipleEven
9c10: 74 73 28 44 57 4f 52 44 2c 20 63 6f 6e 73 74 28 ts(DWORD, const(
9c20: 57 53 41 45 56 45 4e 54 29 2a 2c 20 42 4f 4f 4c WSAEVENT)*, BOOL
9c30: 2c 20 44 57 4f 52 44 2c 20 42 4f 4f 4c 29 3b 0d , DWORD, BOOL);.
9c40: 0a 0d 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 ....alias typeof
9c50: 28 26 57 53 41 41 63 63 65 70 74 29 20 4c 50 46 (&WSAAccept) LPF
9c60: 4e 5f 57 53 41 41 43 43 45 50 54 3b 0d 0a 09 61 N_WSAACCEPT;...a
9c70: 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 lias typeof(&WSA
9c80: 41 64 64 72 65 73 73 54 6f 53 74 72 69 6e 67 41 AddressToStringA
9c90: 29 20 4c 50 46 4e 5f 57 53 41 41 44 44 52 45 53 ) LPFN_WSAADDRES
9ca0: 53 54 4f 53 54 52 49 4e 47 41 3b 0d 0a 09 61 6c STOSTRINGA;...al
9cb0: 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 41 ias typeof(&WSAA
9cc0: 64 64 72 65 73 73 54 6f 53 74 72 69 6e 67 57 29 ddressToStringW)
9cd0: 20 4c 50 46 4e 5f 57 53 41 41 44 44 52 45 53 53 LPFN_WSAADDRESS
9ce0: 54 4f 53 54 52 49 4e 47 57 3b 0d 0a 09 61 6c 69 TOSTRINGW;...ali
9cf0: 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 43 6c as typeof(&WSACl
9d00: 6f 73 65 45 76 65 6e 74 29 20 4c 50 46 4e 5f 57 oseEvent) LPFN_W
9d10: 53 41 43 4c 4f 53 45 45 56 45 4e 54 3b 0d 0a 09 SACLOSEEVENT;...
9d20: 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 alias typeof(&WS
9d30: 41 43 6f 6e 6e 65 63 74 29 20 4c 50 46 4e 5f 57 AConnect) LPFN_W
9d40: 53 41 43 4f 4e 4e 45 43 54 3b 0d 0a 09 61 6c 69 SACONNECT;...ali
9d50: 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 43 72 as typeof(&WSACr
9d60: 65 61 74 65 45 76 65 6e 74 29 20 4c 50 46 4e 5f eateEvent) LPFN_
9d70: 57 53 41 43 52 45 41 54 45 45 56 45 4e 54 3b 0d WSACREATEEVENT;.
9d80: 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 ..alias typeof(&
9d90: 57 53 41 44 75 70 6c 69 63 61 74 65 53 6f 63 6b WSADuplicateSock
9da0: 65 74 41 29 20 4c 50 46 4e 5f 57 53 41 44 55 50 etA) LPFN_WSADUP
9db0: 4c 49 43 41 54 45 53 4f 43 4b 45 54 41 3b 0d 0a LICATESOCKETA;..
9dc0: 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 .alias typeof(&W
9dd0: 53 41 44 75 70 6c 69 63 61 74 65 53 6f 63 6b 65 SADuplicateSocke
9de0: 74 57 29 20 4c 50 46 4e 5f 57 53 41 44 55 50 4c tW) LPFN_WSADUPL
9df0: 49 43 41 54 45 53 4f 43 4b 45 54 57 3b 0d 0a 09 ICATESOCKETW;...
9e00: 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 alias typeof(&WS
9e10: 41 45 6e 75 6d 4e 61 6d 65 53 70 61 63 65 50 72 AEnumNameSpacePr
9e20: 6f 76 69 64 65 72 73 41 29 20 4c 50 46 4e 5f 57 ovidersA) LPFN_W
9e30: 53 41 45 4e 55 4d 4e 41 4d 45 53 50 41 43 45 50 SAENUMNAMESPACEP
9e40: 52 4f 56 49 44 45 52 53 41 3b 0d 0a 09 61 6c 69 ROVIDERSA;...ali
9e50: 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 45 6e as typeof(&WSAEn
9e60: 75 6d 4e 61 6d 65 53 70 61 63 65 50 72 6f 76 69 umNameSpaceProvi
9e70: 64 65 72 73 57 29 20 4c 50 46 4e 5f 57 53 41 45 dersW) LPFN_WSAE
9e80: 4e 55 4d 4e 41 4d 45 53 50 41 43 45 50 52 4f 56 NUMNAMESPACEPROV
9e90: 49 44 45 52 53 57 3b 0d 0a 09 61 6c 69 61 73 20 IDERSW;...alias
9ea0: 74 79 70 65 6f 66 28 26 57 53 41 45 6e 75 6d 4e typeof(&WSAEnumN
9eb0: 65 74 77 6f 72 6b 45 76 65 6e 74 73 29 20 4c 50 etworkEvents) LP
9ec0: 46 4e 5f 57 53 41 45 4e 55 4d 4e 45 54 57 4f 52 FN_WSAENUMNETWOR
9ed0: 4b 45 56 45 4e 54 53 3b 0d 0a 09 61 6c 69 61 73 KEVENTS;...alias
9ee0: 20 74 79 70 65 6f 66 28 26 57 53 41 45 6e 75 6d typeof(&WSAEnum
9ef0: 50 72 6f 74 6f 63 6f 6c 73 41 29 20 4c 50 46 4e ProtocolsA) LPFN
9f00: 5f 57 53 41 45 4e 55 4d 50 52 4f 54 4f 43 4f 4c _WSAENUMPROTOCOL
9f10: 53 41 3b 0d 0a 09 61 6c 69 61 73 20 74 79 70 65 SA;...alias type
9f20: 6f 66 28 26 57 53 41 45 6e 75 6d 50 72 6f 74 6f of(&WSAEnumProto
9f30: 63 6f 6c 73 57 29 20 4c 50 46 4e 5f 57 53 41 45 colsW) LPFN_WSAE
9f40: 4e 55 4d 50 52 4f 54 4f 43 4f 4c 53 57 3b 0d 0a NUMPROTOCOLSW;..
9f50: 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 .alias typeof(&W
9f60: 53 41 45 76 65 6e 74 53 65 6c 65 63 74 29 20 4c SAEventSelect) L
9f70: 50 46 4e 5f 57 53 41 45 56 45 4e 54 53 45 4c 45 PFN_WSAEVENTSELE
9f80: 43 54 3b 0d 0a 09 61 6c 69 61 73 20 74 79 70 65 CT;...alias type
9f90: 6f 66 28 26 57 53 41 47 65 74 4f 76 65 72 6c 61 of(&WSAGetOverla
9fa0: 70 70 65 64 52 65 73 75 6c 74 29 20 4c 50 46 4e ppedResult) LPFN
9fb0: 5f 57 53 41 47 45 54 4f 56 45 52 4c 41 50 50 45 _WSAGETOVERLAPPE
9fc0: 44 52 45 53 55 4c 54 3b 0d 0a 09 61 6c 69 61 73 DRESULT;...alias
9fd0: 20 74 79 70 65 6f 66 28 26 57 53 41 47 65 74 51 typeof(&WSAGetQ
9fe0: 4f 53 42 79 4e 61 6d 65 29 20 4c 50 46 4e 5f 57 OSByName) LPFN_W
9ff0: 53 41 47 45 54 51 4f 53 42 59 4e 41 4d 45 3b 0d SAGETQOSBYNAME;.
a000: 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 ..alias typeof(&
a010: 57 53 41 47 65 74 53 65 72 76 69 63 65 43 6c 61 WSAGetServiceCla
a020: 73 73 49 6e 66 6f 41 29 20 4c 50 46 4e 5f 57 53 ssInfoA) LPFN_WS
a030: 41 47 45 54 53 45 52 56 49 43 45 43 4c 41 53 53 AGETSERVICECLASS
a040: 49 4e 46 4f 41 3b 0d 0a 09 61 6c 69 61 73 20 74 INFOA;...alias t
a050: 79 70 65 6f 66 28 26 57 53 41 47 65 74 53 65 72 ypeof(&WSAGetSer
a060: 76 69 63 65 43 6c 61 73 73 49 6e 66 6f 57 29 20 viceClassInfoW)
a070: 4c 50 46 4e 5f 57 53 41 47 45 54 53 45 52 56 49 LPFN_WSAGETSERVI
a080: 43 45 43 4c 41 53 53 49 4e 46 4f 57 3b 0d 0a 09 CECLASSINFOW;...
a090: 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 alias typeof(&WS
a0a0: 41 47 65 74 53 65 72 76 69 63 65 43 6c 61 73 73 AGetServiceClass
a0b0: 4e 61 6d 65 42 79 43 6c 61 73 73 49 64 41 29 20 NameByClassIdA)
a0c0: 4c 50 46 4e 5f 57 53 41 47 45 54 53 45 52 56 49 LPFN_WSAGETSERVI
a0d0: 43 45 43 4c 41 53 53 4e 41 4d 45 42 59 43 4c 41 CECLASSNAMEBYCLA
a0e0: 53 53 49 44 41 3b 0d 0a 09 61 6c 69 61 73 20 74 SSIDA;...alias t
a0f0: 79 70 65 6f 66 28 26 57 53 41 47 65 74 53 65 72 ypeof(&WSAGetSer
a100: 76 69 63 65 43 6c 61 73 73 4e 61 6d 65 42 79 43 viceClassNameByC
a110: 6c 61 73 73 49 64 57 29 20 4c 50 46 4e 5f 57 53 lassIdW) LPFN_WS
a120: 41 47 45 54 53 45 52 56 49 43 45 43 4c 41 53 53 AGETSERVICECLASS
a130: 4e 41 4d 45 42 59 43 4c 41 53 53 49 44 57 3b 0d NAMEBYCLASSIDW;.
a140: 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 ..alias typeof(&
a150: 57 53 41 48 74 6f 6e 6c 29 20 4c 50 46 4e 5f 57 WSAHtonl) LPFN_W
a160: 53 41 48 54 4f 4e 4c 3b 0d 0a 09 61 6c 69 61 73 SAHTONL;...alias
a170: 20 74 79 70 65 6f 66 28 26 57 53 41 48 74 6f 6e typeof(&WSAHton
a180: 73 29 20 4c 50 46 4e 5f 57 53 41 48 54 4f 4e 53 s) LPFN_WSAHTONS
a190: 3b 0d 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 ;...alias typeof
a1a0: 28 26 57 53 41 49 6e 73 74 61 6c 6c 53 65 72 76 (&WSAInstallServ
a1b0: 69 63 65 43 6c 61 73 73 41 29 20 4c 50 46 4e 5f iceClassA) LPFN_
a1c0: 57 53 41 49 4e 53 54 41 4c 4c 53 45 52 56 49 43 WSAINSTALLSERVIC
a1d0: 45 43 4c 41 53 53 41 3b 0d 0a 09 61 6c 69 61 73 ECLASSA;...alias
a1e0: 20 74 79 70 65 6f 66 28 26 57 53 41 49 6e 73 74 typeof(&WSAInst
a1f0: 61 6c 6c 53 65 72 76 69 63 65 43 6c 61 73 73 57 allServiceClassW
a200: 29 20 4c 50 46 4e 5f 57 53 41 49 4e 53 54 41 4c ) LPFN_WSAINSTAL
a210: 4c 53 45 52 56 49 43 45 43 4c 41 53 53 57 3b 0d LSERVICECLASSW;.
a220: 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 ..alias typeof(&
a230: 57 53 41 49 6f 63 74 6c 29 20 4c 50 46 4e 5f 57 WSAIoctl) LPFN_W
a240: 53 41 49 4f 43 54 4c 3b 0d 0a 09 61 6c 69 61 73 SAIOCTL;...alias
a250: 20 74 79 70 65 6f 66 28 26 57 53 41 4a 6f 69 6e typeof(&WSAJoin
a260: 4c 65 61 66 29 20 4c 50 46 4e 5f 57 53 41 4a 4f Leaf) LPFN_WSAJO
a270: 49 4e 4c 45 41 46 3b 0d 0a 09 61 6c 69 61 73 20 INLEAF;...alias
a280: 74 79 70 65 6f 66 28 26 57 53 41 4c 6f 6f 6b 75 typeof(&WSALooku
a290: 70 53 65 72 76 69 63 65 42 65 67 69 6e 41 29 20 pServiceBeginA)
a2a0: 4c 50 46 4e 5f 57 53 41 4c 4f 4f 4b 55 50 53 45 LPFN_WSALOOKUPSE
a2b0: 52 56 49 43 45 42 45 47 49 4e 41 3b 0d 0a 09 61 RVICEBEGINA;...a
a2c0: 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 lias typeof(&WSA
a2d0: 4c 6f 6f 6b 75 70 53 65 72 76 69 63 65 42 65 67 LookupServiceBeg
a2e0: 69 6e 57 29 20 4c 50 46 4e 5f 57 53 41 4c 4f 4f inW) LPFN_WSALOO
a2f0: 4b 55 50 53 45 52 56 49 43 45 42 45 47 49 4e 57 KUPSERVICEBEGINW
a300: 3b 0d 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 ;...alias typeof
a310: 28 26 57 53 41 4c 6f 6f 6b 75 70 53 65 72 76 69 (&WSALookupServi
a320: 63 65 4e 65 78 74 41 29 20 4c 50 46 4e 5f 57 53 ceNextA) LPFN_WS
a330: 41 4c 4f 4f 4b 55 50 53 45 52 56 49 43 45 4e 45 ALOOKUPSERVICENE
a340: 58 54 41 3b 0d 0a 09 61 6c 69 61 73 20 74 79 70 XTA;...alias typ
a350: 65 6f 66 28 26 57 53 41 4c 6f 6f 6b 75 70 53 65 eof(&WSALookupSe
a360: 72 76 69 63 65 4e 65 78 74 57 29 20 4c 50 46 4e rviceNextW) LPFN
a370: 5f 57 53 41 4c 4f 4f 4b 55 50 53 45 52 56 49 43 _WSALOOKUPSERVIC
a380: 45 4e 45 58 54 57 3b 0d 0a 09 61 6c 69 61 73 20 ENEXTW;...alias
a390: 74 79 70 65 6f 66 28 26 57 53 41 4c 6f 6f 6b 75 typeof(&WSALooku
a3a0: 70 53 65 72 76 69 63 65 45 6e 64 29 20 4c 50 46 pServiceEnd) LPF
a3b0: 4e 5f 57 53 41 4c 4f 4f 4b 55 50 53 45 52 56 49 N_WSALOOKUPSERVI
a3c0: 43 45 45 4e 44 3b 0d 0a 09 61 6c 69 61 73 20 74 CEEND;...alias t
a3d0: 79 70 65 6f 66 28 26 57 53 41 4e 53 50 49 6f 63 ypeof(&WSANSPIoc
a3e0: 74 6c 29 20 4c 50 46 4e 5f 57 53 41 4e 53 50 49 tl) LPFN_WSANSPI
a3f0: 6f 63 74 6c 3b 0d 0a 09 61 6c 69 61 73 20 74 79 octl;...alias ty
a400: 70 65 6f 66 28 26 57 53 41 4e 74 6f 68 6c 29 20 peof(&WSANtohl)
a410: 4c 50 46 4e 5f 57 53 41 4e 54 4f 48 4c 3b 0d 0a LPFN_WSANTOHL;..
a420: 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 .alias typeof(&W
a430: 53 41 4e 74 6f 68 73 29 20 4c 50 46 4e 5f 57 53 SANtohs) LPFN_WS
a440: 41 4e 54 4f 48 53 3b 0d 0a 09 61 6c 69 61 73 20 ANTOHS;...alias
a450: 74 79 70 65 6f 66 28 26 57 53 41 52 65 63 76 29 typeof(&WSARecv)
a460: 20 4c 50 46 4e 5f 57 53 41 52 45 43 56 3b 0d 0a LPFN_WSARECV;..
a470: 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 .alias typeof(&W
a480: 53 41 52 65 63 76 44 69 73 63 6f 6e 6e 65 63 74 SARecvDisconnect
a490: 29 20 4c 50 46 4e 5f 57 53 41 52 45 43 56 44 49 ) LPFN_WSARECVDI
a4a0: 53 43 4f 4e 4e 45 43 54 3b 0d 0a 09 61 6c 69 61 SCONNECT;...alia
a4b0: 73 20 74 79 70 65 6f 66 28 26 57 53 41 52 65 63 s typeof(&WSARec
a4c0: 76 46 72 6f 6d 29 20 4c 50 46 4e 5f 57 53 41 52 vFrom) LPFN_WSAR
a4d0: 45 43 56 46 52 4f 4d 3b 0d 0a 09 61 6c 69 61 73 ECVFROM;...alias
a4e0: 20 74 79 70 65 6f 66 28 26 57 53 41 52 65 6d 6f typeof(&WSARemo
a4f0: 76 65 53 65 72 76 69 63 65 43 6c 61 73 73 29 20 veServiceClass)
a500: 4c 50 46 4e 5f 57 53 41 52 45 4d 4f 56 45 53 45 LPFN_WSAREMOVESE
a510: 52 56 49 43 45 43 4c 41 53 53 3b 0d 0a 09 61 6c RVICECLASS;...al
a520: 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 52 ias typeof(&WSAR
a530: 65 73 65 74 45 76 65 6e 74 29 20 4c 50 46 4e 5f esetEvent) LPFN_
a540: 57 53 41 52 45 53 45 54 45 56 45 4e 54 3b 0d 0a WSARESETEVENT;..
a550: 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 .alias typeof(&W
a560: 53 41 53 65 6e 64 29 20 4c 50 46 4e 5f 57 53 41 SASend) LPFN_WSA
a570: 53 45 4e 44 3b 0d 0a 09 61 6c 69 61 73 20 74 79 SEND;...alias ty
a580: 70 65 6f 66 28 26 57 53 41 53 65 6e 64 44 69 73 peof(&WSASendDis
a590: 63 6f 6e 6e 65 63 74 29 20 4c 50 46 4e 5f 57 53 connect) LPFN_WS
a5a0: 41 53 45 4e 44 44 49 53 43 4f 4e 4e 45 43 54 3b ASENDDISCONNECT;
a5b0: 0d 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 ...alias typeof(
a5c0: 26 57 53 41 53 65 6e 64 54 6f 29 20 4c 50 46 4e &WSASendTo) LPFN
a5d0: 5f 57 53 41 53 45 4e 44 54 4f 3b 0d 0a 09 61 6c _WSASENDTO;...al
a5e0: 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 53 ias typeof(&WSAS
a5f0: 65 74 45 76 65 6e 74 29 20 4c 50 46 4e 5f 57 53 etEvent) LPFN_WS
a600: 41 53 45 54 45 56 45 4e 54 3b 0d 0a 09 61 6c 69 ASETEVENT;...ali
a610: 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 53 65 as typeof(&WSASe
a620: 74 53 65 72 76 69 63 65 41 29 20 4c 50 46 4e 5f tServiceA) LPFN_
a630: 57 53 41 53 45 54 53 45 52 56 49 43 45 41 3b 0d WSASETSERVICEA;.
a640: 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 ..alias typeof(&
a650: 57 53 41 53 65 74 53 65 72 76 69 63 65 57 29 20 WSASetServiceW)
a660: 4c 50 46 4e 5f 57 53 41 53 45 54 53 45 52 56 49 LPFN_WSASETSERVI
a670: 43 45 57 3b 0d 0a 09 61 6c 69 61 73 20 74 79 70 CEW;...alias typ
a680: 65 6f 66 28 26 57 53 41 53 6f 63 6b 65 74 41 29 eof(&WSASocketA)
a690: 20 4c 50 46 4e 5f 57 53 41 53 4f 43 4b 45 54 41 LPFN_WSASOCKETA
a6a0: 3b 0d 0a 09 61 6c 69 61 73 20 74 79 70 65 6f 66 ;...alias typeof
a6b0: 28 26 57 53 41 53 6f 63 6b 65 74 57 29 20 4c 50 (&WSASocketW) LP
a6c0: 46 4e 5f 57 53 41 53 4f 43 4b 45 54 57 3b 0d 0a FN_WSASOCKETW;..
a6d0: 09 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 .alias typeof(&W
a6e0: 53 41 53 74 72 69 6e 67 54 6f 41 64 64 72 65 73 SAStringToAddres
a6f0: 73 41 29 20 4c 50 46 4e 5f 57 53 41 53 54 52 49 sA) LPFN_WSASTRI
a700: 4e 47 54 4f 41 44 44 52 45 53 53 41 3b 0d 0a 09 NGTOADDRESSA;...
a710: 61 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 alias typeof(&WS
a720: 41 53 74 72 69 6e 67 54 6f 41 64 64 72 65 73 73 AStringToAddress
a730: 57 29 20 4c 50 46 4e 5f 57 53 41 53 54 52 49 4e W) LPFN_WSASTRIN
a740: 47 54 4f 41 44 44 52 45 53 53 57 3b 0d 0a 09 61 GTOADDRESSW;...a
a750: 6c 69 61 73 20 74 79 70 65 6f 66 28 26 57 53 41 lias typeof(&WSA
a760: 57 61 69 74 46 6f 72 4d 75 6c 74 69 70 6c 65 45 WaitForMultipleE
a770: 76 65 6e 74 73 29 20 4c 50 46 4e 5f 57 53 41 57 vents) LPFN_WSAW
a780: 41 49 54 46 4f 52 4d 55 4c 54 49 50 4c 45 45 56 AITFORMULTIPLEEV
a790: 45 4e 54 53 3b 0d 0a 7d 0d 0a 0d 0a 76 65 72 73 ENTS;..}....vers
a7a0: 69 6f 6e 28 55 6e 69 63 6f 64 65 29 20 7b 0d 0a ion(Unicode) {..
a7b0: 09 61 6c 69 61 73 20 4c 50 46 4e 5f 57 53 41 41 .alias LPFN_WSAA
a7c0: 44 44 52 45 53 53 54 4f 53 54 52 49 4e 47 57 20 DDRESSTOSTRINGW
a7d0: 4c 50 46 4e 5f 57 53 41 41 44 44 52 45 53 53 54 LPFN_WSAADDRESST
a7e0: 4f 53 54 52 49 4e 47 3b 0d 0a 09 61 6c 69 61 73 OSTRING;...alias
a7f0: 20 4c 50 46 4e 5f 57 53 41 44 55 50 4c 49 43 41 LPFN_WSADUPLICA
a800: 54 45 53 4f 43 4b 45 54 57 20 4c 50 46 4e 5f 57 TESOCKETW LPFN_W
a810: 53 41 44 55 50 4c 49 43 41 54 45 53 4f 43 4b 45 SADUPLICATESOCKE
a820: 54 3b 0d 0a 09 61 6c 69 61 73 20 4c 50 46 4e 5f T;...alias LPFN_
a830: 57 53 41 45 4e 55 4d 4e 41 4d 45 53 50 41 43 45 WSAENUMNAMESPACE
a840: 50 52 4f 56 49 44 45 52 53 57 20 4c 50 46 4e 5f PROVIDERSW LPFN_
a850: 57 53 41 45 4e 55 4d 4e 41 4d 45 53 50 41 43 45 WSAENUMNAMESPACE
a860: 50 52 4f 56 49 44 45 52 53 3b 0d 0a 09 61 6c 69 PROVIDERS;...ali
a870: 61 73 20 4c 50 46 4e 5f 57 53 41 45 4e 55 4d 50 as LPFN_WSAENUMP
a880: 52 4f 54 4f 43 4f 4c 53 57 20 4c 50 46 4e 5f 57 ROTOCOLSW LPFN_W
a890: 53 41 45 4e 55 4d 50 52 4f 54 4f 43 4f 4c 53 3b SAENUMPROTOCOLS;
a8a0: 0d 0a 09 61 6c 69 61 73 20 4c 50 46 4e 5f 57 53 ...alias LPFN_WS
a8b0: 41 47 45 54 53 45 52 56 49 43 45 43 4c 41 53 53 AGETSERVICECLASS
a8c0: 49 4e 46 4f 57 20 4c 50 46 4e 5f 57 53 41 47 45 INFOW LPFN_WSAGE
a8d0: 54 53 45 52 56 49 43 45 43 4c 41 53 53 49 4e 46 TSERVICECLASSINF
a8e0: 4f 3b 0d 0a 09 61 6c 69 61 73 20 4c 50 46 4e 5f O;...alias LPFN_
a8f0: 57 53 41 47 45 54 53 45 52 56 49 43 45 43 4c 41 WSAGETSERVICECLA
a900: 53 53 4e 41 4d 45 42 59 43 4c 41 53 53 49 44 57 SSNAMEBYCLASSIDW
a910: 20 4c 50 46 4e 5f 57 53 41 47 45 54 53 45 52 56 LPFN_WSAGETSERV
a920: 49 43 45 43 4c 41 53 53 4e 41 4d 45 42 59 43 4c ICECLASSNAMEBYCL
a930: 41 53 53 49 44 3b 0d 0a 09 61 6c 69 61 73 20 4c ASSID;...alias L
a940: 50 46 4e 5f 57 53 41 49 4e 53 54 41 4c 4c 53 45 PFN_WSAINSTALLSE
a950: 52 56 49 43 45 43 4c 41 53 53 57 20 4c 50 46 4e RVICECLASSW LPFN
a960: 5f 57 53 41 49 4e 53 54 41 4c 4c 53 45 52 56 49 _WSAINSTALLSERVI
a970: 43 45 43 4c 41 53 53 3b 0d 0a 09 61 6c 69 61 73 CECLASS;...alias
a980: 20 4c 50 46 4e 5f 57 53 41 4c 4f 4f 4b 55 50 53 LPFN_WSALOOKUPS
a990: 45 52 56 49 43 45 42 45 47 49 4e 57 20 4c 50 46 ERVICEBEGINW LPF
a9a0: 4e 5f 57 53 41 4c 4f 4f 4b 55 50 53 45 52 56 49 N_WSALOOKUPSERVI
a9b0: 43 45 42 45 47 49 4e 3b 0d 0a 09 61 6c 69 61 73 CEBEGIN;...alias
a9c0: 20 4c 50 46 4e 5f 57 53 41 4c 4f 4f 4b 55 50 53 LPFN_WSALOOKUPS
a9d0: 45 52 56 49 43 45 4e 45 58 54 57 20 4c 50 46 4e ERVICENEXTW LPFN
a9e0: 5f 57 53 41 4c 4f 4f 4b 55 50 53 45 52 56 49 43 _WSALOOKUPSERVIC
a9f0: 45 4e 45 58 54 3b 0d 0a 09 61 6c 69 61 73 20 4c ENEXT;...alias L
aa00: 50 46 4e 5f 57 53 41 53 45 54 53 45 52 56 49 43 PFN_WSASETSERVIC
aa10: 45 57 20 4c 50 46 4e 5f 57 53 41 53 45 54 53 45 EW LPFN_WSASETSE
aa20: 52 56 49 43 45 3b 0d 0a 09 61 6c 69 61 73 20 4c RVICE;...alias L
aa30: 50 46 4e 5f 57 53 41 53 4f 43 4b 45 54 57 20 4c PFN_WSASOCKETW L
aa40: 50 46 4e 5f 57 53 41 53 4f 43 4b 45 54 3b 0d 0a PFN_WSASOCKET;..
aa50: 09 61 6c 69 61 73 20 4c 50 46 4e 5f 57 53 41 53 .alias LPFN_WSAS
aa60: 54 52 49 4e 47 54 4f 41 44 44 52 45 53 53 57 20 TRINGTOADDRESSW
aa70: 4c 50 46 4e 5f 57 53 41 53 54 52 49 4e 47 54 4f LPFN_WSASTRINGTO
aa80: 41 44 44 52 45 53 53 3b 0d 0a 09 61 6c 69 61 73 ADDRESS;...alias
aa90: 20 57 53 41 41 64 64 72 65 73 73 54 6f 53 74 72 WSAAddressToStr
aaa0: 69 6e 67 57 20 57 53 41 41 64 64 72 65 73 73 54 ingW WSAAddressT
aab0: 6f 53 74 72 69 6e 67 3b 0d 0a 09 61 6c 69 61 73 oString;...alias
aac0: 20 57 53 41 44 75 70 6c 69 63 61 74 65 53 6f 63 WSADuplicateSoc
aad0: 6b 65 74 57 20 57 53 41 44 75 70 6c 69 63 61 74 ketW WSADuplicat
aae0: 65 53 6f 63 6b 65 74 3b 0d 0a 09 61 6c 69 61 73 eSocket;...alias
aaf0: 20 57 53 41 45 6e 75 6d 4e 61 6d 65 53 70 61 63 WSAEnumNameSpac
ab00: 65 50 72 6f 76 69 64 65 72 73 57 20 57 53 41 45 eProvidersW WSAE
ab10: 6e 75 6d 4e 61 6d 65 53 70 61 63 65 50 72 6f 76 numNameSpaceProv
ab20: 69 64 65 72 73 3b 0d 0a 09 61 6c 69 61 73 20 57 iders;...alias W
ab30: 53 41 45 6e 75 6d 50 72 6f 74 6f 63 6f 6c 73 57 SAEnumProtocolsW
ab40: 20 57 53 41 45 6e 75 6d 50 72 6f 74 6f 63 6f 6c WSAEnumProtocol
ab50: 73 3b 0d 0a 09 61 6c 69 61 73 20 57 53 41 47 65 s;...alias WSAGe
ab60: 74 53 65 72 76 69 63 65 43 6c 61 73 73 49 6e 66 tServiceClassInf
ab70: 6f 57 20 57 53 41 47 65 74 53 65 72 76 69 63 65 oW WSAGetService
ab80: 43 6c 61 73 73 49 6e 66 6f 3b 0d 0a 09 61 6c 69 ClassInfo;...ali
ab90: 61 73 20 57 53 41 47 65 74 53 65 72 76 69 63 65 as WSAGetService
aba0: 43 6c 61 73 73 4e 61 6d 65 42 79 43 6c 61 73 73 ClassNameByClass
abb0: 49 64 57 20 57 53 41 47 65 74 53 65 72 76 69 63 IdW WSAGetServic
abc0: 65 43 6c 61 73 73 4e 61 6d 65 42 79 43 6c 61 73 eClassNameByClas
abd0: 73 49 64 3b 0d 0a 09 61 6c 69 61 73 20 57 53 41 sId;...alias WSA
abe0: 53 65 74 53 65 72 76 69 63 65 57 20 57 53 41 53 SetServiceW WSAS
abf0: 65 74 53 65 72 76 69 63 65 3b 0d 0a 09 61 6c 69 etService;...ali
ac00: 61 73 20 57 53 41 53 6f 63 6b 65 74 57 20 57 53 as WSASocketW WS
ac10: 41 53 6f 63 6b 65 74 3b 0d 0a 09 61 6c 69 61 73 ASocket;...alias
ac20: 20 57 53 41 53 74 72 69 6e 67 54 6f 41 64 64 72 WSAStringToAddr
ac30: 65 73 73 57 20 57 53 41 53 74 72 69 6e 67 54 6f essW WSAStringTo
ac40: 41 64 64 72 65 73 73 3b 0d 0a 09 61 6c 69 61 73 Address;...alias
ac50: 20 57 53 41 4c 6f 6f 6b 75 70 53 65 72 76 69 63 WSALookupServic
ac60: 65 42 65 67 69 6e 57 20 57 53 41 4c 6f 6f 6b 75 eBeginW WSALooku
ac70: 70 53 65 72 76 69 63 65 42 65 67 69 6e 3b 0d 0a pServiceBegin;..
ac80: 09 61 6c 69 61 73 20 57 53 41 4c 6f 6f 6b 75 70 .alias WSALookup
ac90: 53 65 72 76 69 63 65 4e 65 78 74 57 20 57 53 41 ServiceNextW WSA
aca0: 4c 6f 6f 6b 75 70 53 65 72 76 69 63 65 4e 65 78 LookupServiceNex
acb0: 74 3b 0d 0a 09 61 6c 69 61 73 20 57 53 41 49 6e t;...alias WSAIn
acc0: 73 74 61 6c 6c 53 65 72 76 69 63 65 43 6c 61 73 stallServiceClas
acd0: 73 57 20 57 53 41 49 6e 73 74 61 6c 6c 53 65 72 sW WSAInstallSer
ace0: 76 69 63 65 43 6c 61 73 73 3b 0d 0a 7d 20 65 6c viceClass;..} el
acf0: 73 65 20 7b 0d 0a 09 61 6c 69 61 73 20 4c 50 46 se {...alias LPF
ad00: 4e 5f 57 53 41 41 44 44 52 45 53 53 54 4f 53 54 N_WSAADDRESSTOST
ad10: 52 49 4e 47 41 20 4c 50 46 4e 5f 57 53 41 41 44 RINGA LPFN_WSAAD
ad20: 44 52 45 53 53 54 4f 53 54 52 49 4e 47 3b 0d 0a DRESSTOSTRING;..
ad30: 09 61 6c 69 61 73 20 4c 50 46 4e 5f 57 53 41 44 .alias LPFN_WSAD
ad40: 55 50 4c 49 43 41 54 45 53 4f 43 4b 45 54 57 20 UPLICATESOCKETW
ad50: 4c 50 46 4e 5f 57 53 41 44 55 50 4c 49 43 41 54 LPFN_WSADUPLICAT
ad60: 45 53 4f 43 4b 45 54 3b 0d 0a 09 61 6c 69 61 73 ESOCKET;...alias
ad70: 20 4c 50 46 4e 5f 57 53 41 45 4e 55 4d 4e 41 4d LPFN_WSAENUMNAM
ad80: 45 53 50 41 43 45 50 52 4f 56 49 44 45 52 53 41 ESPACEPROVIDERSA
ad90: 20 4c 50 46 4e 5f 57 53 41 45 4e 55 4d 4e 41 4d LPFN_WSAENUMNAM
ada0: 45 53 50 41 43 45 50 52 4f 56 49 44 45 52 53 3b ESPACEPROVIDERS;
adb0: 0d 0a 09 61 6c 69 61 73 20 4c 50 46 4e 5f 57 53 ...alias LPFN_WS
adc0: 41 45 4e 55 4d 50 52 4f 54 4f 43 4f 4c 53 41 20 AENUMPROTOCOLSA
add0: 4c 50 46 4e 5f 57 53 41 45 4e 55 4d 50 52 4f 54 LPFN_WSAENUMPROT
ade0: 4f 43 4f 4c 53 3b 0d 0a 09 61 6c 69 61 73 20 4c OCOLS;...alias L
adf0: 50 46 4e 5f 57 53 41 47 45 54 53 45 52 56 49 43 PFN_WSAGETSERVIC
ae00: 45 43 4c 41 53 53 49 4e 46 4f 41 20 4c 50 46 4e ECLASSINFOA LPFN
ae10: 5f 57 53 41 47 45 54 53 45 52 56 49 43 45 43 4c _WSAGETSERVICECL
ae20: 41 53 53 49 4e 46 4f 3b 0d 0a 09 61 6c 69 61 73 ASSINFO;...alias
ae30: 20 4c 50 46 4e 5f 57 53 41 47 45 54 53 45 52 56 LPFN_WSAGETSERV
ae40: 49 43 45 43 4c 41 53 53 4e 41 4d 45 42 59 43 4c ICECLASSNAMEBYCL
ae50: 41 53 53 49 44 41 20 4c 50 46 4e 5f 57 53 41 47 ASSIDA LPFN_WSAG
ae60: 45 54 53 45 52 56 49 43 45 43 4c 41 53 53 4e 41 ETSERVICECLASSNA
ae70: 4d 45 42 59 43 4c 41 53 53 49 44 3b 0d 0a 09 61 MEBYCLASSID;...a
ae80: 6c 69 61 73 20 4c 50 46 4e 5f 57 53 41 49 4e 53 lias LPFN_WSAINS
ae90: 54 41 4c 4c 53 45 52 56 49 43 45 43 4c 41 53 53 TALLSERVICECLASS
aea0: 41 20 4c 50 46 4e 5f 57 53 41 49 4e 53 54 41 4c A LPFN_WSAINSTAL
aeb0: 4c 53 45 52 56 49 43 45 43 4c 41 53 53 3b 0d 0a LSERVICECLASS;..
aec0: 09 61 6c 69 61 73 20 4c 50 46 4e 5f 57 53 41 4c .alias LPFN_WSAL
aed0: 4f 4f 4b 55 50 53 45 52 56 49 43 45 42 45 47 49 OOKUPSERVICEBEGI
aee0: 4e 41 20 4c 50 46 4e 5f 57 53 41 4c 4f 4f 4b 55 NA LPFN_WSALOOKU
aef0: 50 53 45 52 56 49 43 45 42 45 47 49 4e 3b 0d 0a PSERVICEBEGIN;..
af00: 09 61 6c 69 61 73 20 4c 50 46 4e 5f 57 53 41 4c .alias LPFN_WSAL
af10: 4f 4f 4b 55 50 53 45 52 56 49 43 45 4e 45 58 54 OOKUPSERVICENEXT
af20: 41 20 4c 50 46 4e 5f 57 53 41 4c 4f 4f 4b 55 50 A LPFN_WSALOOKUP
af30: 53 45 52 56 49 43 45 4e 45 58 54 3b 0d 0a 09 61 SERVICENEXT;...a
af40: 6c 69 61 73 20 4c 50 46 4e 5f 57 53 41 53 45 54 lias LPFN_WSASET
af50: 53 45 52 56 49 43 45 41 20 4c 50 46 4e 5f 57 53 SERVICEA LPFN_WS
af60: 41 53 45 54 53 45 52 56 49 43 45 3b 0d 0a 09 61 ASETSERVICE;...a
af70: 6c 69 61 73 20 4c 50 46 4e 5f 57 53 41 53 4f 43 lias LPFN_WSASOC
af80: 4b 45 54 41 20 4c 50 46 4e 5f 57 53 41 53 4f 43 KETA LPFN_WSASOC
af90: 4b 45 54 3b 0d 0a 09 61 6c 69 61 73 20 4c 50 46 KET;...alias LPF
afa0: 4e 5f 57 53 41 53 54 52 49 4e 47 54 4f 41 44 44 N_WSASTRINGTOADD
afb0: 52 45 53 53 41 20 4c 50 46 4e 5f 57 53 41 53 54 RESSA LPFN_WSAST
afc0: 52 49 4e 47 54 4f 41 44 44 52 45 53 53 3b 0d 0a RINGTOADDRESS;..
afd0: 09 61 6c 69 61 73 20 57 53 41 41 64 64 72 65 73 .alias WSAAddres
afe0: 73 54 6f 53 74 72 69 6e 67 41 20 57 53 41 41 64 sToStringA WSAAd
aff0: 64 72 65 73 73 54 6f 53 74 72 69 6e 67 3b 0d 0a dressToString;..
b000: 09 61 6c 69 61 73 20 57 53 41 44 75 70 6c 69 63 .alias WSADuplic
b010: 61 74 65 53 6f 63 6b 65 74 41 20 57 53 41 44 75 ateSocketA WSADu
b020: 70 6c 69 63 61 74 65 53 6f 63 6b 65 74 3b 0d 0a plicateSocket;..
b030: 09 61 6c 69 61 73 20 57 53 41 45 6e 75 6d 4e 61 .alias WSAEnumNa
b040: 6d 65 53 70 61 63 65 50 72 6f 76 69 64 65 72 73 meSpaceProviders
b050: 41 20 57 53 41 45 6e 75 6d 4e 61 6d 65 53 70 61 A WSAEnumNameSpa
b060: 63 65 50 72 6f 76 69 64 65 72 73 3b 0d 0a 09 61 ceProviders;...a
b070: 6c 69 61 73 20 57 53 41 45 6e 75 6d 50 72 6f 74 lias WSAEnumProt
b080: 6f 63 6f 6c 73 41 20 57 53 41 45 6e 75 6d 50 72 ocolsA WSAEnumPr
b090: 6f 74 6f 63 6f 6c 73 3b 0d 0a 09 61 6c 69 61 73 otocols;...alias
b0a0: 20 57 53 41 47 65 74 53 65 72 76 69 63 65 43 6c WSAGetServiceCl
b0b0: 61 73 73 49 6e 66 6f 41 20 57 53 41 47 65 74 53 assInfoA WSAGetS
b0c0: 65 72 76 69 63 65 43 6c 61 73 73 49 6e 66 6f 3b erviceClassInfo;
b0d0: 0d 0a 09 61 6c 69 61 73 20 57 53 41 47 65 74 53 ...alias WSAGetS
b0e0: 65 72 76 69 63 65 43 6c 61 73 73 4e 61 6d 65 42 erviceClassNameB
b0f0: 79 43 6c 61 73 73 49 64 41 20 57 53 41 47 65 74 yClassIdA WSAGet
b100: 53 65 72 76 69 63 65 43 6c 61 73 73 4e 61 6d 65 ServiceClassName
b110: 42 79 43 6c 61 73 73 49 64 3b 0d 0a 09 61 6c 69 ByClassId;...ali
b120: 61 73 20 57 53 41 49 6e 73 74 61 6c 6c 53 65 72 as WSAInstallSer
b130: 76 69 63 65 43 6c 61 73 73 41 20 57 53 41 49 6e viceClassA WSAIn
b140: 73 74 61 6c 6c 53 65 72 76 69 63 65 43 6c 61 73 stallServiceClas
b150: 73 3b 0d 0a 09 61 6c 69 61 73 20 57 53 41 4c 6f s;...alias WSALo
b160: 6f 6b 75 70 53 65 72 76 69 63 65 42 65 67 69 6e okupServiceBegin
b170: 41 20 57 53 41 4c 6f 6f 6b 75 70 53 65 72 76 69 A WSALookupServi
b180: 63 65 42 65 67 69 6e 3b 0d 0a 09 61 6c 69 61 73 ceBegin;...alias
b190: 20 57 53 41 4c 6f 6f 6b 75 70 53 65 72 76 69 63 WSALookupServic
b1a0: 65 4e 65 78 74 41 20 57 53 41 4c 6f 6f 6b 75 70 eNextA WSALookup
b1b0: 53 65 72 76 69 63 65 4e 65 78 74 3b 0d 0a 09 61 ServiceNext;...a
b1c0: 6c 69 61 73 20 57 53 41 53 6f 63 6b 65 74 41 20 lias WSASocketA
b1d0: 57 53 41 53 6f 63 6b 65 74 3b 0d 0a 09 61 6c 69 WSASocket;...ali
b1e0: 61 73 20 57 53 41 53 74 72 69 6e 67 54 6f 41 64 as WSAStringToAd
b1f0: 64 72 65 73 73 41 20 57 53 41 53 74 72 69 6e 67 dressA WSAString
b200: 54 6f 41 64 64 72 65 73 73 3b 0d 0a 09 61 6c 69 ToAddress;...ali
b210: 61 73 20 57 53 41 53 65 74 53 65 72 76 69 63 65 as WSASetService
b220: 41 20 57 53 41 53 65 74 53 65 72 76 69 63 65 3b A WSASetService;
b230: 0d 0a 7d 0d 0a ..}..