Hex Artifact Content

Not logged in

Artifact 96d84048875125a509f734f9a0ebafa1a43ba9f2:


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                                   ..}..