3 #if !(defined _WINSOCK2API_ || defined _WINSOCK_H)
5 #define _WINSOCKAPI_ /* to prevent later inclusion of winsock.h */
7 #define _GNU_H_WINDOWS32_SOCKETS
9 #if (!defined(_WIN64) && !defined(WIN32))
14 #ifndef INCL_WINSOCK_API_PROTOTYPES
15 #define INCL_WINSOCK_API_PROTOTYPES 1
18 #ifndef INCL_WINSOCK_API_TYPEDEFS
19 #define INCL_WINSOCK_API_TYPEDEFS 0
26 #if !defined(MAKEWORD)
27 #define MAKEWORD(low,high) ((WORD)(((BYTE)(low)) | ((WORD)((BYTE)(high))) << 8))
30 #ifndef WINSOCK_VERSION
31 #define WINSOCK_VERSION MAKEWORD(2,2)
34 #ifndef WINSOCK_API_LINKAGE
35 #ifdef DECLSPEC_IMPORT
36 #define WINSOCK_API_LINKAGE DECLSPEC_IMPORT
38 #define WINSOCK_API_LINKAGE
43 #if !defined(__ROS_LONG64__)
45 #define __ROS_LONG64__
54 /* Names common to Winsock1.1 and Winsock2 */
55 #if !defined ( _BSDTYPES_DEFINED )
56 /* also defined in gmon.h and in cygwin's sys/types */
57 typedef unsigned char u_char
;
58 typedef unsigned short u_short
;
59 typedef unsigned int u_int
;
60 #ifndef __ROS_LONG64__
61 typedef unsigned long u_long
;
63 typedef unsigned int u_long
;
65 #define _BSDTYPES_DEFINED
66 #endif /* ! def _BSDTYPES_DEFINED */
68 #if(_WIN32_WINNT >= 0x0501)
69 typedef unsigned __int64 u_int64
;
70 #endif /* (_WIN32_WINNT >= 0x0501) */
74 typedef UINT_PTR SOCKET
;
80 #ifndef _SYS_TYPES_FD_SET
82 /* fd_set may be defined by the newlib <sys/types.h>
83 * if __USE_W32_SOCKETS not defined.
89 typedef struct fd_set
{
91 SOCKET fd_array
[FD_SETSIZE
];
94 extern int PASCAL FAR
__WSAFDIsSet(SOCKET
,fd_set FAR
*);
97 #define FD_CLR(fd, set) do { \
99 for (__i = 0; __i < ((fd_set FAR*)(set))->fd_count ; __i++) { \
100 if (((fd_set FAR*)(set))->fd_array[__i] == fd) { \
101 while (__i < ((fd_set FAR*)(set))->fd_count-1) { \
102 ((fd_set FAR*)(set))->fd_array[__i] = \
103 ((fd_set FAR*)(set))->fd_array[__i+1]; \
106 ((fd_set FAR*)(set))->fd_count--; \
114 /* this differs from the define in winsock.h and in cygwin sys/types.h */
115 #define FD_SET(fd, set) do { \
117 for (__i = 0; __i < ((fd_set FAR *)(set))->fd_count; __i++) { \
118 if (((fd_set FAR *)(set))->fd_array[__i] == (fd)) { \
122 if (__i == ((fd_set FAR *)(set))->fd_count) { \
123 if (((fd_set FAR *)(set))->fd_count < FD_SETSIZE) { \
124 ((fd_set FAR *)(set))->fd_array[__i] = (fd); \
125 ((fd_set FAR *)(set))->fd_count++; \
132 #define FD_ZERO(set) (((fd_set FAR*)(set))->fd_count=0)
136 #define FD_ISSET(fd, set) __WSAFDIsSet((SOCKET)(fd), (fd_set FAR*)(set))
139 #elif !defined (USE_SYS_TYPES_FD_SET)
140 #warning "fd_set and associated macros have been defined in sys/types. \
141 This may cause runtime problems with W32 sockets"
142 #endif /* ndef _SYS_TYPES_FD_SET */
144 #if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
146 #ifndef _TIMEVAL_DEFINED
148 /* also in sys/time.h */
149 #define _TIMEVAL_DEFINED
150 #define _STRUCT_TIMEVAL
156 #define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec)
158 #define timercmp(tvp, uvp, cmp) \
159 (((tvp)->tv_sec != (uvp)->tv_sec) ? \
160 ((tvp)->tv_sec cmp (uvp)->tv_sec) : \
161 ((tvp)->tv_usec cmp (uvp)->tv_usec))
163 #define timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0
165 #endif /* _TIMEVAL_DEFINED */
167 #define h_addr h_addr_list[0]
182 #define _IO(x,y) (IOC_VOID|((x)<<8)|(y))
183 #define _IOR(x,y,t) (IOC_OUT|(((LONG)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
184 #define _IOW(x,y,t) (IOC_IN|(((LONG)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
185 #define FIONBIO _IOW('f', 126, u_long)
211 #define SO_CONDITIONAL_ACCEPT 0x3002
213 #define SOMAXCONN 0x7fffffff
216 #define MSG_DONTROUTE 4
217 #if(_WIN32_WINNT >= 0x0502)
218 #define MSG_WAITALL 8
221 #define h_errno WSAGetLastError()
222 #define HOST_NOT_FOUND WSAHOST_NOT_FOUND
223 #define TRY_AGAIN WSATRY_AGAIN
224 #define NO_RECOVERY WSANO_RECOVERY
225 #define NO_DATA WSANO_DATA
226 #define NO_ADDRESS WSANO_ADDRESS
228 #endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
230 #define IOCPARM_MASK 0x7f
231 #define IOC_VOID 0x20000000
232 #define IOC_OUT 0x40000000
233 #define IOC_IN 0x80000000
234 #define IOC_INOUT (IOC_IN|IOC_OUT)
236 #define FIONREAD _IOR('f', 127, u_long)
237 #define FIOASYNC _IOW('f', 125, u_long)
238 #define SIOCSHIWAT _IOW('s', 0, u_long)
239 #define SIOCGHIWAT _IOR('s', 1, u_long)
240 #define SIOCSLOWAT _IOW('s', 2, u_long)
241 #define SIOCGLOWAT _IOR('s', 3, u_long)
242 #define SIOCATMARK _IOR('s', 7, u_long)
244 #define IPPORT_ECHO 7
245 #define IPPORT_DISCARD 9
246 #define IPPORT_SYSTAT 11
247 #define IPPORT_DAYTIME 13
248 #define IPPORT_NETSTAT 15
249 #define IPPORT_FTP 21
250 #define IPPORT_TELNET 23
251 #define IPPORT_SMTP 25
252 #define IPPORT_TIMESERVER 37
253 #define IPPORT_NAMESERVER 42
254 #define IPPORT_WHOIS 43
255 #define IPPORT_MTP 57
256 #define IPPORT_TFTP 69
257 #define IPPORT_RJE 77
258 #define IPPORT_FINGER 79
259 #define IPPORT_TTYLINK 87
260 #define IPPORT_SUPDUP 95
261 #define IPPORT_EXECSERVER 512
262 #define IPPORT_LOGINSERVER 513
263 #define IPPORT_CMDSERVER 514
264 #define IPPORT_EFSSERVER 520
265 #define IPPORT_BIFFUDP 512
266 #define IPPORT_WHOSERVER 513
267 #define IPPORT_ROUTESERVER 520
268 #define IPPORT_RESERVED 1024
269 #define IMPLINK_IP 155
270 #define IMPLINK_LOWEXPER 156
271 #define IMPLINK_HIGHEXPER 158
273 #define ADDR_ANY INADDR_ANY
275 #define WSADESCRIPTION_LEN 256
276 #define WSASYS_STATUS_LEN 128
278 #define INVALID_SOCKET (SOCKET)(~0)
280 #define SOCKET_ERROR (-1)
282 #define FROM_PROTOCOL_INFO (-1)
284 #define SOCK_STREAM 1
288 #define SOCK_SEQPACKET 5
291 #define SO_ACCEPTCONN 2
292 #define SO_REUSEADDR 4
293 #define SO_KEEPALIVE 8
294 #define SO_DONTROUTE 16
295 #define SO_BROADCAST 32
296 #define SO_USELOOPBACK 64
297 #define SO_LINGER 128
298 #define SO_OOBINLINE 256
299 #define SO_DONTLINGER (int)(~SO_LINGER)
300 #define SO_EXCLUSIVEADDRUSE ((int)(~SO_REUSEADDR))
302 #define SO_SNDBUF 0x1001
303 #define SO_RCVBUF 0x1002
304 #define SO_SNDLOWAT 0x1003
305 #define SO_RCVLOWAT 0x1004
306 #define SO_SNDTIMEO 0x1005
307 #define SO_RCVTIMEO 0x1006
308 #define SO_ERROR 0x1007
309 #define SO_TYPE 0x1008
311 #define SO_GROUP_ID 0x2001
312 #define SO_GROUP_PRIORITY 0x2002
313 #define SO_MAX_MSG_SIZE 0x2003
314 #define SO_PROTOCOL_INFOA 0x2004
315 #define SO_PROTOCOL_INFOW 0x2005
317 #define SO_PROTOCOL_INFO SO_PROTOCOL_INFOW
319 #define SO_PROTOCOL_INFO SO_PROTOCOL_INFOA
321 #define PVD_CONFIG 0x3001
323 #define PF_UNSPEC AF_UNSPEC
324 #define PF_UNIX AF_UNIX
325 #define PF_INET AF_INET
326 #define PF_IMPLINK AF_IMPLINK
327 #define PF_PUP AF_PUP
328 #define PF_CHAOS AF_CHAOS
330 #define PF_IPX AF_IPX
331 #define PF_ISO AF_ISO
332 #define PF_OSI AF_OSI
333 #define PF_ECMA AF_ECMA
334 #define PF_DATAKIT AF_DATAKIT
335 #define PF_CCITT AF_CCITT
336 #define PF_SNA AF_SNA
337 #define PF_DECnet AF_DECnet
338 #define PF_DLI AF_DLI
339 #define PF_LAT AF_LAT
340 #define PF_HYLINK AF_HYLINK
341 #define PF_APPLETALK AF_APPLETALK
342 #define PF_VOICEVIEW AF_VOICEVIEW
343 #define PF_FIREFOX AF_FIREFOX
344 #define PF_UNKNOWN1 AF_UNKNOWN1
345 #define PF_BAN AF_BAN
346 #define PF_ATM AF_ATM
347 #define PF_INET6 AF_INET6
348 #if(_WIN32_WINNT >= 0x0600)
349 #define PF_BTH AF_BTH
351 #define PF_MAX AF_MAX
353 #define SOL_SOCKET 0xffff
355 #define MSG_PARTIAL 0x8000
356 #define MSG_INTERRUPT 0x10
357 #define MSG_MAXIOVLEN 16
359 #define MAXGETHOSTSTRUCT 1024
361 #define FD_READ_BIT 0
362 #define FD_READ (1 << FD_READ_BIT)
363 #define FD_WRITE_BIT 1
364 #define FD_WRITE (1 << FD_WRITE_BIT)
366 #define FD_OOB (1 << FD_OOB_BIT)
367 #define FD_ACCEPT_BIT 3
368 #define FD_ACCEPT (1 << FD_ACCEPT_BIT)
369 #define FD_CONNECT_BIT 4
370 #define FD_CONNECT (1 << FD_CONNECT_BIT)
371 #define FD_CLOSE_BIT 5
372 #define FD_CLOSE (1 << FD_CLOSE_BIT)
374 #define FD_QOS (1 << FD_QOS_BIT)
375 #define FD_GROUP_QOS_BIT 7
376 #define FD_GROUP_QOS (1 << FD_GROUP_QOS_BIT)
377 #define FD_ROUTING_INTERFACE_CHANGE_BIT 8
378 #define FD_ROUTING_INTERFACE_CHANGE (1 << FD_ROUTING_INTERFACE_CHANGE_BIT)
379 #define FD_ADDRESS_LIST_CHANGE_BIT 9
380 #define FD_ADDRESS_LIST_CHANGE (1 << FD_ADDRESS_LIST_CHANGE_BIT)
381 #define FD_MAX_EVENTS 10
382 #define FD_ALL_EVENTS ((1 << FD_MAX_EVENTS) - 1)
386 #define WSABASEERR 10000
387 #define WSAEINTR (WSABASEERR+4)
388 #define WSAEBADF (WSABASEERR+9)
389 #define WSAEACCES (WSABASEERR+13)
390 #define WSAEFAULT (WSABASEERR+14)
391 #define WSAEINVAL (WSABASEERR+22)
392 #define WSAEMFILE (WSABASEERR+24)
393 #define WSAEWOULDBLOCK (WSABASEERR+35)
394 #define WSAEINPROGRESS (WSABASEERR+36)
395 #define WSAEALREADY (WSABASEERR+37)
396 #define WSAENOTSOCK (WSABASEERR+38)
397 #define WSAEDESTADDRREQ (WSABASEERR+39)
398 #define WSAEMSGSIZE (WSABASEERR+40)
399 #define WSAEPROTOTYPE (WSABASEERR+41)
400 #define WSAENOPROTOOPT (WSABASEERR+42)
401 #define WSAEPROTONOSUPPORT (WSABASEERR+43)
402 #define WSAESOCKTNOSUPPORT (WSABASEERR+44)
403 #define WSAEOPNOTSUPP (WSABASEERR+45)
404 #define WSAEPFNOSUPPORT (WSABASEERR+46)
405 #define WSAEAFNOSUPPORT (WSABASEERR+47)
406 #define WSAEADDRINUSE (WSABASEERR+48)
407 #define WSAEADDRNOTAVAIL (WSABASEERR+49)
408 #define WSAENETDOWN (WSABASEERR+50)
409 #define WSAENETUNREACH (WSABASEERR+51)
410 #define WSAENETRESET (WSABASEERR+52)
411 #define WSAECONNABORTED (WSABASEERR+53)
412 #define WSAECONNRESET (WSABASEERR+54)
413 #define WSAENOBUFS (WSABASEERR+55)
414 #define WSAEISCONN (WSABASEERR+56)
415 #define WSAENOTCONN (WSABASEERR+57)
416 #define WSAESHUTDOWN (WSABASEERR+58)
417 #define WSAETOOMANYREFS (WSABASEERR+59)
418 #define WSAETIMEDOUT (WSABASEERR+60)
419 #define WSAECONNREFUSED (WSABASEERR+61)
420 #define WSAELOOP (WSABASEERR+62)
421 #define WSAENAMETOOLONG (WSABASEERR+63)
422 #define WSAEHOSTDOWN (WSABASEERR+64)
423 #define WSAEHOSTUNREACH (WSABASEERR+65)
424 #define WSAENOTEMPTY (WSABASEERR+66)
425 #define WSAEPROCLIM (WSABASEERR+67)
426 #define WSAEUSERS (WSABASEERR+68)
427 #define WSAEDQUOT (WSABASEERR+69)
428 #define WSAESTALE (WSABASEERR+70)
429 #define WSAEREMOTE (WSABASEERR+71)
430 #define WSASYSNOTREADY (WSABASEERR+91)
431 #define WSAVERNOTSUPPORTED (WSABASEERR+92)
432 #define WSANOTINITIALISED (WSABASEERR+93)
433 #define WSAEDISCON (WSABASEERR+101)
434 #define WSAENOMORE (WSABASEERR+102)
435 #define WSAECANCELLED (WSABASEERR+103)
436 #define WSAEINVALIDPROCTABLE (WSABASEERR+104)
437 #define WSAEINVALIDPROVIDER (WSABASEERR+105)
438 #define WSAEPROVIDERFAILEDINIT (WSABASEERR+106)
439 #define WSASYSCALLFAILURE (WSABASEERR+107)
440 #define WSASERVICE_NOT_FOUND (WSABASEERR+108)
441 #define WSATYPE_NOT_FOUND (WSABASEERR+109)
442 #define WSA_E_NO_MORE (WSABASEERR+110)
443 #define WSA_E_CANCELLED (WSABASEERR+111)
444 #define WSAEREFUSED (WSABASEERR+112)
445 #define WSAHOST_NOT_FOUND (WSABASEERR+1001)
446 #define WSATRY_AGAIN (WSABASEERR+1002)
447 #define WSANO_RECOVERY (WSABASEERR+1003)
448 #define WSANO_DATA (WSABASEERR+1004)
449 #define WSA_QOS_RECEIVERS (WSABASEERR + 1005)
450 #define WSA_QOS_SENDERS (WSABASEERR + 1006)
451 #define WSA_QOS_NO_SENDERS (WSABASEERR + 1007)
452 #define WSA_QOS_NO_RECEIVERS (WSABASEERR + 1008)
453 #define WSA_QOS_REQUEST_CONFIRMED (WSABASEERR + 1009)
454 #define WSA_QOS_ADMISSION_FAILURE (WSABASEERR + 1010)
455 #define WSA_QOS_POLICY_FAILURE (WSABASEERR + 1011)
456 #define WSA_QOS_BAD_STYLE (WSABASEERR + 1012)
457 #define WSA_QOS_BAD_OBJECT (WSABASEERR + 1013)
458 #define WSA_QOS_TRAFFIC_CTRL_ERROR (WSABASEERR + 1014)
459 #define WSA_QOS_GENERIC_ERROR (WSABASEERR + 1015)
460 #define WSA_QOS_ESERVICETYPE (WSABASEERR + 1016)
461 #define WSA_QOS_EFLOWSPEC (WSABASEERR + 1017)
462 #define WSA_QOS_EPROVSPECBUF (WSABASEERR + 1018)
463 #define WSA_QOS_EFILTERSTYLE (WSABASEERR + 1019)
464 #define WSA_QOS_EFILTERTYPE (WSABASEERR + 1020)
465 #define WSA_QOS_EFILTERCOUNT (WSABASEERR + 1021)
466 #define WSA_QOS_EOBJLENGTH (WSABASEERR + 1022)
467 #define WSA_QOS_EFLOWCOUNT (WSABASEERR + 1023)
468 #define WSA_QOS_EUNKOWNPSOBJ (WSABASEERR + 1024)
469 #define WSA_QOS_EPOLICYOBJ (WSABASEERR + 1025)
470 #define WSA_QOS_EFLOWDESC (WSABASEERR + 1026)
471 #define WSA_QOS_EPSFLOWSPEC (WSABASEERR + 1027)
472 #define WSA_QOS_EPSFILTERSPEC (WSABASEERR + 1028)
473 #define WSA_QOS_ESDMODEOBJ (WSABASEERR + 1029)
474 #define WSA_QOS_ESHAPERATEOBJ (WSABASEERR + 1030)
475 #define WSA_QOS_RESERVED_PETYPE (WSABASEERR + 1031)
477 #endif /* !WSABASEERR */
479 #define CF_ACCEPT 0x0000
480 #define CF_REJECT 0x0001
481 #define CF_DEFER 0x0002
482 #define SD_RECEIVE 0x00
486 #define SG_UNCONSTRAINED_GROUP 0x01
487 #define SG_CONSTRAINED_GROUP 0x02
489 #define MAX_PROTOCOL_CHAIN 7
491 #define BASE_PROTOCOL 1
492 #define LAYERED_PROTOCOL 0
494 #define WSAPROTOCOL_LEN 255
496 #define PFL_MULTIPLE_PROTO_ENTRIES 0x00000001
497 #define PFL_RECOMMENDED_PROTO_ENTRY 0x00000002
498 #define PFL_HIDDEN 0x00000004
499 #define PFL_MATCHES_PROTOCOL_ZERO 0x00000008
500 #define PFL_NETWORKDIRECT_PROVIDER 0x00000010
502 #define XP1_CONNECTIONLESS 0x00000001
503 #define XP1_GUARANTEED_DELIVERY 0x00000002
504 #define XP1_GUARANTEED_ORDER 0x00000004
505 #define XP1_MESSAGE_ORIENTED 0x00000008
506 #define XP1_PSEUDO_STREAM 0x00000010
507 #define XP1_GRACEFUL_CLOSE 0x00000020
508 #define XP1_EXPEDITED_DATA 0x00000040
509 #define XP1_CONNECT_DATA 0x00000080
510 #define XP1_DISCONNECT_DATA 0x00000100
511 #define XP1_SUPPORT_BROADCAST 0x00000200
512 #define XP1_SUPPORT_MULTIPOINT 0x00000400
513 #define XP1_MULTIPOINT_CONTROL_PLANE 0x00000800
514 #define XP1_MULTIPOINT_DATA_PLANE 0x00001000
515 #define XP1_QOS_SUPPORTED 0x00002000
516 #define XP1_INTERRUPT 0x00004000
517 #define XP1_UNI_SEND 0x00008000
518 #define XP1_UNI_RECV 0x00010000
519 #define XP1_IFS_HANDLES 0x00020000
520 #define XP1_PARTIAL_MESSAGE 0x00040000
521 #define XP1_SAN_SUPPORT_SDP 0x00080000
523 #define BIGENDIAN 0x0000
524 #define LITTLEENDIAN 0x0001
526 #define SECURITY_PROTOCOL_NONE 0x0000
528 #define JL_SENDER_ONLY 0x01
529 #define JL_RECEIVER_ONLY 0x02
532 #define WSA_FLAG_OVERLAPPED 0x01
533 #define WSA_FLAG_MULTIPOINT_C_ROOT 0x02
534 #define WSA_FLAG_MULTIPOINT_C_LEAF 0x04
535 #define WSA_FLAG_MULTIPOINT_D_ROOT 0x08
536 #define WSA_FLAG_MULTIPOINT_D_LEAF 0x10
537 #define WSA_FLAG_ACCESS_SYSTEM_SECURITY 0x40
539 #define TH_NETDEV 0x00000001
540 #define TH_TAPI 0x00000002
542 #define SERVICE_MULTIPLE 0x00000001
547 #define NS_PEER_BROWSE 3
550 #define NS_TCPIP_LOCAL 10
551 #define NS_TCPIP_HOSTS 11
555 #if(_WIN32_WINNT >= 0x0501)
558 #if(_WIN32_WINNT >= 0x0600)
565 #if(_WIN32_WINNT >= 0x0600)
567 #define NS_PNRPNAME 38
568 #define NS_PNRPCLOUD 39
572 #define NS_NISPLUS 42
576 #define RES_UNUSED_1 0x00000001
577 #define RES_FLUSH_CACHE 0x00000002
579 #define RES_SERVICE 0x00000004
582 #define SERVICE_TYPE_VALUE_IPXPORTA "IpxSocket"
583 #define SERVICE_TYPE_VALUE_IPXPORTW L"IpxSocket"
584 #define SERVICE_TYPE_VALUE_SAPIDA "SapId"
585 #define SERVICE_TYPE_VALUE_SAPIDW L"SapId"
587 #define SERVICE_TYPE_VALUE_TCPPORTA "TcpPort"
588 #define SERVICE_TYPE_VALUE_TCPPORTW L"TcpPort"
590 #define SERVICE_TYPE_VALUE_UDPPORTA "UdpPort"
591 #define SERVICE_TYPE_VALUE_UDPPORTW L"UdpPort"
593 #define SERVICE_TYPE_VALUE_OBJECTIDA "ObjectId"
594 #define SERVICE_TYPE_VALUE_OBJECTIDW L"ObjectId"
597 #define SERVICE_TYPE_VALUE_SAPID SERVICE_TYPE_VALUE_SAPIDW
598 #define SERVICE_TYPE_VALUE_TCPPORT SERVICE_TYPE_VALUE_TCPPORTW
599 #define SERVICE_TYPE_VALUE_UDPPORT SERVICE_TYPE_VALUE_UDPPORTW
600 #define SERVICE_TYPE_VALUE_OBJECTID SERVICE_TYPE_VALUE_OBJECTIDW
602 #define SERVICE_TYPE_VALUE_SAPID SERVICE_TYPE_VALUE_SAPIDA
603 #define SERVICE_TYPE_VALUE_TCPPORT SERVICE_TYPE_VALUE_TCPPORTA
604 #define SERVICE_TYPE_VALUE_UDPPORT SERVICE_TYPE_VALUE_UDPPORTA
605 #define SERVICE_TYPE_VALUE_OBJECTID SERVICE_TYPE_VALUE_OBJECTIDA
608 #define LUP_DEEP 0x0001
609 #define LUP_CONTAINERS 0x0002
610 #define LUP_NOCONTAINERS 0x0004
611 #define LUP_NEAREST 0x0008
612 #define LUP_RETURN_NAME 0x0010
613 #define LUP_RETURN_TYPE 0x0020
614 #define LUP_RETURN_VERSION 0x0040
615 #define LUP_RETURN_COMMENT 0x0080
616 #define LUP_RETURN_ADDR 0x0100
617 #define LUP_RETURN_BLOB 0x0200
618 #define LUP_RETURN_ALIASES 0x0400
619 #define LUP_RETURN_QUERY_STRING 0x0800
620 #define LUP_RETURN_ALL 0x0FF0
621 #define LUP_RES_SERVICE 0x8000
622 #define LUP_FLUSHCACHE 0x1000
623 #define LUP_FLUSHPREVIOUS 0x2000
624 #define LUP_NON_AUTHORITATIVE 0x4000
625 #define LUP_SECURE 0x8000
626 #define LUP_RETURN_PREFERRED_NAMES 0x10000
627 #define LUP_ADDRCONFIG 0x00100000
628 #define LUP_DUAL_ADDR 0x00200000
629 #define LUP_FILESERVER 0x00400000
631 #define RESULT_IS_ALIAS 0x0001
632 #if(_WIN32_WINNT >= 0x0501)
633 #define RESULT_IS_ADDED 0x0010
634 #define RESULT_IS_CHANGED 0x0020
635 #define RESULT_IS_DELETED 0x0040
645 #define s_addr S_un.S_addr
646 #define s_host S_un.S_un_b.s_b2
647 #define s_net S_un.S_un_b.s_b1
648 #define s_imp S_un.S_un_w.s_w2
649 #define s_impno S_un.S_un_b.s_b4
650 #define s_lh S_un.S_un_b.s_b3
652 typedef struct in_addr
{
654 struct { u_char s_b1
,s_b2
,s_b3
,s_b4
; } S_un_b
;
655 struct { u_short s_w1
,s_w2
; } S_un_w
;
658 } IN_ADDR
, *PIN_ADDR
;
662 typedef struct WSAData
{
666 unsigned short iMaxSockets
;
667 unsigned short iMaxUdpDg
;
669 char szDescription
[WSADESCRIPTION_LEN
+1];
670 char szSystemStatus
[WSASYS_STATUS_LEN
+1];
672 char szDescription
[WSADESCRIPTION_LEN
+1];
673 char szSystemStatus
[WSASYS_STATUS_LEN
+1];
674 unsigned short iMaxSockets
;
675 unsigned short iMaxUdpDg
;
677 } WSADATA
, FAR
*LPWSADATA
;
686 #define WSAAPI FAR PASCAL
687 #define WSAEVENT HANDLE
688 #define LPWSAEVENT LPHANDLE
689 #define WSAOVERLAPPED OVERLAPPED
690 typedef struct _OVERLAPPED
*LPWSAOVERLAPPED
;
691 #define WSA_IO_PENDING (ERROR_IO_PENDING)
692 #define WSA_IO_INCOMPLETE (ERROR_IO_INCOMPLETE)
693 #define WSA_INVALID_HANDLE (ERROR_INVALID_HANDLE)
694 #define WSA_INVALID_PARAMETER (ERROR_INVALID_PARAMETER)
695 #define WSA_NOT_ENOUGH_MEMORY (ERROR_NOT_ENOUGH_MEMORY)
696 #define WSA_OPERATION_ABORTED (ERROR_OPERATION_ABORTED)
697 #define WSA_INVALID_EVENT ((WSAEVENT)NULL)
698 #define WSA_MAXIMUM_WAIT_EVENTS (MAXIMUM_WAIT_OBJECTS)
699 #define WSA_WAIT_FAILED ((DWORD)-1L)
700 #define WSA_WAIT_EVENT_0 (WAIT_OBJECT_0)
701 #define WSA_WAIT_IO_COMPLETION (WAIT_IO_COMPLETION)
702 #define WSA_WAIT_TIMEOUT (WAIT_TIMEOUT)
703 #define WSA_INFINITE (INFINITE)
707 #define WSAAPI FAR PASCAL
708 typedef DWORD WSAEVENT
, FAR
* LPWSAEVENT
;
710 typedef struct _WSAOVERLAPPED
{
716 } WSAOVERLAPPED
, FAR
* LPWSAOVERLAPPED
;
718 #define WSA_IO_PENDING (WSAEWOULDBLOCK)
719 #define WSA_IO_INCOMPLETE (WSAEWOULDBLOCK)
720 #define WSA_INVALID_HANDLE (WSAENOTSOCK)
721 #define WSA_INVALID_PARAMETER (WSAEINVAL)
722 #define WSA_NOT_ENOUGH_MEMORY (WSAENOBUFS)
723 #define WSA_OPERATION_ABORTED (WSAEINTR)
725 #define WSA_INVALID_EVENT ((WSAEVENT)NULL)
726 #define WSA_MAXIMUM_WAIT_EVENTS (MAXIMUM_WAIT_OBJECTS)
727 #define WSA_WAIT_FAILED ((DWORD)-1L)
728 #define WSA_WAIT_EVENT_0 ((DWORD)0)
729 #define WSA_WAIT_TIMEOUT ((DWORD)0x102L)
730 #define WSA_INFINITE ((DWORD)-1L)
736 typedef struct _QualityOfService
{
737 FLOWSPEC SendingFlowspec
;
738 FLOWSPEC ReceivingFlowspec
;
739 WSABUF ProviderSpecific
;
742 typedef unsigned int GROUP
;
744 typedef struct _WSANETWORKEVENTS
{
746 int iErrorCode
[FD_MAX_EVENTS
];
747 } WSANETWORKEVENTS
, *LPWSANETWORKEVENTS
;
753 typedef struct _WSAPROTOCOLCHAIN
{
755 DWORD ChainEntries
[MAX_PROTOCOL_CHAIN
];
756 } WSAPROTOCOLCHAIN
, *LPWSAPROTOCOLCHAIN
;
758 typedef struct _WSAPROTOCOL_INFOA
{
759 DWORD dwServiceFlags1
;
760 DWORD dwServiceFlags2
;
761 DWORD dwServiceFlags3
;
762 DWORD dwServiceFlags4
;
763 DWORD dwProviderFlags
;
765 DWORD dwCatalogEntryId
;
766 WSAPROTOCOLCHAIN ProtocolChain
;
773 int iProtocolMaxOffset
;
774 int iNetworkByteOrder
;
777 DWORD dwProviderReserved
;
778 CHAR szProtocol
[WSAPROTOCOL_LEN
+1];
779 } WSAPROTOCOL_INFOA
, *LPWSAPROTOCOL_INFOA
;
781 typedef struct _WSAPROTOCOL_INFOW
{
782 DWORD dwServiceFlags1
;
783 DWORD dwServiceFlags2
;
784 DWORD dwServiceFlags3
;
785 DWORD dwServiceFlags4
;
786 DWORD dwProviderFlags
;
788 DWORD dwCatalogEntryId
;
789 WSAPROTOCOLCHAIN ProtocolChain
;
796 int iProtocolMaxOffset
;
797 int iNetworkByteOrder
;
800 DWORD dwProviderReserved
;
801 WCHAR szProtocol
[WSAPROTOCOL_LEN
+1];
802 } WSAPROTOCOL_INFOW
, * LPWSAPROTOCOL_INFOW
;
805 typedef WSAPROTOCOL_INFOW WSAPROTOCOL_INFO
;
806 typedef LPWSAPROTOCOL_INFOW LPWSAPROTOCOL_INFO
;
808 typedef WSAPROTOCOL_INFOA WSAPROTOCOL_INFO
;
809 typedef LPWSAPROTOCOL_INFOA LPWSAPROTOCOL_INFO
;
813 (CALLBACK
*LPCONDITIONPROC
)(
814 IN LPWSABUF lpCallerId
,
815 IN LPWSABUF lpCallerData
,
818 IN LPWSABUF lpCalleeId
,
819 IN LPWSABUF lpCalleeData
,
821 IN DWORD_PTR dwCallbackData
);
824 (CALLBACK
*LPWSAOVERLAPPED_COMPLETION_ROUTINE
)(
826 IN DWORD cbTransferred
,
827 IN LPWSAOVERLAPPED lpOverlapped
,
830 #if(_WIN32_WINNT >= 0x0501)
832 #define SIO_NSP_NOTIFY_CHANGE _WSAIOW(IOC_WS2,25)
834 typedef enum _WSACOMPLETIONTYPE
{
835 NSP_NOTIFY_IMMEDIATELY
= 0,
840 } WSACOMPLETIONTYPE
, * PWSACOMPLETIONTYPE
, *LPWSACOMPLETIONTYPE
;
842 typedef struct _WSACOMPLETION
{
843 WSACOMPLETIONTYPE Type
;
851 LPWSAOVERLAPPED lpOverlapped
;
854 LPWSAOVERLAPPED lpOverlapped
;
855 LPWSAOVERLAPPED_COMPLETION_ROUTINE lpfnCompletionProc
;
858 LPWSAOVERLAPPED lpOverlapped
;
863 } WSACOMPLETION
, *PWSACOMPLETION
, *LPWSACOMPLETION
;
865 #endif /* (_WIN32_WINNT >= 0x0501) */
867 #ifndef __BLOB_T_DEFINED /* also in wtypes.h and nspapi.h */
868 #define __BLOB_T_DEFINED
869 /* wine is using a diff define */
870 #ifndef _tagBLOB_DEFINED
871 #define _tagBLOB_DEFINED
872 #define _BLOB_DEFINED
873 #define _LPBLOB_DEFINED
875 typedef struct _BLOB
{
878 } BLOB
,*PBLOB
,*LPBLOB
;
880 #endif /* _tagBLOB_DEFINED */
882 #endif /* __BLOB_T_DEFINED */
884 typedef struct _AFPROTOCOLS
{
887 } AFPROTOCOLS
, *PAFPROTOCOLS
, *LPAFPROTOCOLS
;
889 typedef enum _WSAEcomparator
{
892 } WSAECOMPARATOR
, *PWSAECOMPARATOR
, *LPWSAECOMPARATOR
;
894 typedef struct _WSAVersion
{
896 WSAECOMPARATOR ecHow
;
897 } WSAVERSION
, *PWSAVERSION
, *LPWSAVERSION
;
899 typedef struct _WSAQuerySetA
{
901 LPSTR lpszServiceInstanceName
;
902 LPGUID lpServiceClassId
;
903 LPWSAVERSION lpVersion
;
906 LPGUID lpNSProviderId
;
908 DWORD dwNumberOfProtocols
;
909 LPAFPROTOCOLS lpafpProtocols
;
910 LPSTR lpszQueryString
;
911 DWORD dwNumberOfCsAddrs
;
912 LPCSADDR_INFO lpcsaBuffer
;
915 } WSAQUERYSETA
, *PWSAQUERYSETA
, *LPWSAQUERYSETA
;
917 typedef struct _WSAQuerySetW
{
919 LPWSTR lpszServiceInstanceName
;
920 LPGUID lpServiceClassId
;
921 LPWSAVERSION lpVersion
;
924 LPGUID lpNSProviderId
;
926 DWORD dwNumberOfProtocols
;
927 LPAFPROTOCOLS lpafpProtocols
;
928 LPWSTR lpszQueryString
;
929 DWORD dwNumberOfCsAddrs
;
930 LPCSADDR_INFO lpcsaBuffer
;
933 } WSAQUERYSETW
, *PWSAQUERYSETW
, *LPWSAQUERYSETW
;
935 typedef struct _WSAQuerySet2A
{
937 LPSTR lpszServiceInstanceName
;
938 LPWSAVERSION lpVersion
;
941 LPGUID lpNSProviderId
;
943 DWORD dwNumberOfProtocols
;
944 LPAFPROTOCOLS lpafpProtocols
;
945 LPSTR lpszQueryString
;
946 DWORD dwNumberOfCsAddrs
;
947 LPCSADDR_INFO lpcsaBuffer
;
950 } WSAQUERYSET2A
, *PWSAQUERYSET2A
, *LPWSAQUERYSET2A
;
952 typedef struct _WSAQuerySet2W
{
954 LPWSTR lpszServiceInstanceName
;
955 LPWSAVERSION lpVersion
;
958 LPGUID lpNSProviderId
;
960 DWORD dwNumberOfProtocols
;
961 LPAFPROTOCOLS lpafpProtocols
;
962 LPWSTR lpszQueryString
;
963 DWORD dwNumberOfCsAddrs
;
964 LPCSADDR_INFO lpcsaBuffer
;
967 } WSAQUERYSET2W
, *PWSAQUERYSET2W
, *LPWSAQUERYSET2W
;
970 typedef WSAQUERYSETW WSAQUERYSET
;
971 typedef PWSAQUERYSETW PWSAQUERYSET
;
972 typedef LPWSAQUERYSETW LPWSAQUERYSET
;
973 typedef WSAQUERYSET2W WSAQUERYSET2
;
974 typedef PWSAQUERYSET2W PWSAQUERYSET2
;
975 typedef LPWSAQUERYSET2W LPWSAQUERYSET2
;
977 typedef WSAQUERYSETA WSAQUERYSET
;
978 typedef PWSAQUERYSETA PWSAQUERYSET
;
979 typedef LPWSAQUERYSETA LPWSAQUERYSET
;
980 typedef WSAQUERYSET2A WSAQUERYSET2
;
981 typedef PWSAQUERYSET2A PWSAQUERYSET2
;
982 typedef LPWSAQUERYSET2A LPWSAQUERYSET2
;
985 typedef enum _WSAESETSERVICEOP
{
986 RNRSERVICE_REGISTER
=0,
987 RNRSERVICE_DEREGISTER
,
989 } WSAESETSERVICEOP
, *PWSAESETSERVICEOP
, *LPWSAESETSERVICEOP
;
991 typedef struct _WSANSClassInfoA
{
997 } WSANSCLASSINFOA
, *PWSANSCLASSINFOA
, *LPWSANSCLASSINFOA
;
999 typedef struct _WSANSClassInfoW
{
1005 } WSANSCLASSINFOW
, *PWSANSCLASSINFOW
, *LPWSANSCLASSINFOW
;
1008 typedef WSANSCLASSINFOW WSANSCLASSINFO
;
1009 typedef PWSANSCLASSINFOW PWSANSCLASSINFO
;
1010 typedef LPWSANSCLASSINFOW LPWSANSCLASSINFO
;
1012 typedef WSANSCLASSINFOA WSANSCLASSINFO
;
1013 typedef PWSANSCLASSINFOA PWSANSCLASSINFO
;
1014 typedef LPWSANSCLASSINFOA LPWSANSCLASSINFO
;
1017 typedef struct _WSAServiceClassInfoA
{
1018 LPGUID lpServiceClassId
;
1019 LPSTR lpszServiceClassName
;
1021 LPWSANSCLASSINFOA lpClassInfos
;
1022 } WSASERVICECLASSINFOA
, *PWSASERVICECLASSINFOA
, *LPWSASERVICECLASSINFOA
;
1024 typedef struct _WSAServiceClassInfoW
{
1025 LPGUID lpServiceClassId
;
1026 LPWSTR lpszServiceClassName
;
1028 LPWSANSCLASSINFOW lpClassInfos
;
1029 } WSASERVICECLASSINFOW
, *PWSASERVICECLASSINFOW
, *LPWSASERVICECLASSINFOW
;
1032 typedef WSASERVICECLASSINFOW WSASERVICECLASSINFO
;
1033 typedef PWSASERVICECLASSINFOW PWSASERVICECLASSINFO
;
1034 typedef LPWSASERVICECLASSINFOW LPWSASERVICECLASSINFO
;
1036 typedef WSASERVICECLASSINFOA WSASERVICECLASSINFO
;
1037 typedef PWSASERVICECLASSINFOA PWSASERVICECLASSINFO
;
1038 typedef LPWSASERVICECLASSINFOA LPWSASERVICECLASSINFO
;
1041 typedef struct _WSANAMESPACE_INFOA
{
1046 LPSTR lpszIdentifier
;
1047 } WSANAMESPACE_INFOA
, *PWSANAMESPACE_INFOA
, *LPWSANAMESPACE_INFOA
;
1049 typedef struct _WSANAMESPACE_INFOW
{
1054 LPWSTR lpszIdentifier
;
1055 } WSANAMESPACE_INFOW
, *PWSANAMESPACE_INFOW
, *LPWSANAMESPACE_INFOW
;
1057 typedef struct _WSANAMESPACE_INFOEXA
{
1062 LPSTR lpszIdentifier
;
1063 BLOB ProviderSpecific
;
1064 } WSANAMESPACE_INFOEXA
, *PWSANAMESPACE_INFOEXA
, *LPWSANAMESPACE_INFOEXA
;
1066 typedef struct _WSANAMESPACE_INFOEXW
{
1071 LPWSTR lpszIdentifier
;
1072 BLOB ProviderSpecific
;
1073 } WSANAMESPACE_INFOEXW
, *PWSANAMESPACE_INFOEXW
, *LPWSANAMESPACE_INFOEXW
;
1076 typedef WSANAMESPACE_INFOW WSANAMESPACE_INFO
;
1077 typedef PWSANAMESPACE_INFOW PWSANAMESPACE_INFO
;
1078 typedef LPWSANAMESPACE_INFOW LPWSANAMESPACE_INFO
;
1079 typedef WSANAMESPACE_INFOEXW WSANAMESPACE_INFOEX
;
1080 typedef PWSANAMESPACE_INFOEXW PWSANAMESPACE_INFOEX
;
1081 typedef LPWSANAMESPACE_INFOEXW LPWSANAMESPACE_INFOEX
;
1083 typedef WSANAMESPACE_INFOA WSANAMESPACE_INFO
;
1084 typedef PWSANAMESPACE_INFOA PWSANAMESPACE_INFO
;
1085 typedef LPWSANAMESPACE_INFOA LPWSANAMESPACE_INFO
;
1086 typedef WSANAMESPACE_INFOEXA WSANAMESPACE_INFOEX
;
1087 typedef PWSANAMESPACE_INFOEXA PWSANAMESPACE_INFOEX
;
1088 typedef LPWSANAMESPACE_INFOEXA LPWSANAMESPACE_INFOEX
;
1089 #endif /* UNICODE */
1091 #if(_WIN32_WINNT >= 0x0600)
1093 #define POLLRDNORM 0x0100
1094 #define POLLRDBAND 0x0200
1095 #define POLLIN (POLLRDNORM | POLLRDBAND)
1096 #define POLLPRI 0x0400
1098 #define POLLWRNORM 0x0010
1099 #define POLLOUT (POLLWRNORM)
1100 #define POLLWRBAND 0x0020
1102 #define POLLERR 0x0001
1103 #define POLLHUP 0x0002
1104 #define POLLNVAL 0x0004
1106 typedef struct pollfd
{
1110 } WSAPOLLFD
, *PWSAPOLLFD
, FAR
*LPWSAPOLLFD
;
1112 #endif /* (_WIN32_WINNT >= 0x0600) */
1114 #if INCL_WINSOCK_API_TYPEDEFS
1117 (WSAAPI
*LPFN_ACCEPT
)(
1119 OUT
struct sockaddr FAR
*addr OPTIONAL
,
1120 IN OUT
int FAR
*addrlen OPTIONAL
);
1123 (WSAAPI
*LPFN_BIND
)(
1125 IN
const struct sockaddr FAR
*name
,
1129 (WSAAPI
*LPFN_CLOSESOCKET
)(
1133 (WSAAPI
*LPFN_CONNECT
)(
1135 IN
const struct sockaddr FAR
*name
,
1139 (WSAAPI
*LPFN_IOCTLSOCKET
)(
1142 IN OUT u_long FAR
*argp
);
1145 (WSAAPI
*LPFN_GETPEERNAME
)(
1147 OUT
struct sockaddr FAR
*name
,
1148 IN OUT
int FAR
*namelen
);
1151 (WSAAPI
*LPFN_GETSOCKNAME
)(
1153 OUT
struct sockaddr FAR
*name
,
1154 IN OUT
int FAR
*namelen
);
1157 (WSAAPI
*LPFN_GETSOCKOPT
)(
1161 OUT
char FAR
*optval
,
1162 IN OUT
int FAR
*optlen
);
1165 (WSAAPI
*LPFN_HTONL
)(
1166 IN u_long hostlong
);
1169 (WSAAPI
*LPFN_HTONS
)(
1170 IN u_short hostshort
);
1172 typedef unsigned long
1173 (WSAAPI
*LPFN_INET_ADDR
)(
1174 IN
const char FAR
*cp
);
1177 (WSAAPI
*LPFN_INET_NTOA
)(
1178 IN
struct in_addr in
);
1181 (WSAAPI
*LPFN_LISTEN
)(
1186 (WSAAPI
*LPFN_NTOHL
)(
1190 (WSAAPI
*LPFN_NTOHS
)(
1191 IN u_short netshort
);
1194 (WSAAPI
*LPFN_RECV
)(
1201 (WSAAPI
*LPFN_RECVFROM
)(
1206 OUT
struct sockaddr FAR
*from OPTIONAL
,
1207 IN OUY
int FAR
* fromlen OPTIONAL
);
1210 (WSAAPI
*LPFN_SELECT
)(
1212 IN OUT fd_set FAR
*readfds OPTIONAL
,
1213 IN OUT fd_set FAR
*writefds OPTIONAL
,
1214 IN OUT fd_set FAR
*exceptfds OPTIONAL
,
1215 IN
const struct timeval FAR
*timeout OPTIONAL
);
1218 (WSAAPI
*LPFN_SEND
)(
1220 IN
const char FAR
*buf
,
1225 (WSAAPI
*LPFN_SENDTO
)(
1227 IN
const char FAR
*buf
,
1230 IN
const struct sockaddr FAR
*to OPTIONAL
,
1234 (WSAAPI
*LPFN_SETSOCKOPT
)(
1238 IN
const char FAR
*optval OPTIONAL
,
1242 (WSAAPI
*LPFN_SHUTDOWN
)(
1247 (WSAAPI
*LPFN_SOCKET
)(
1252 typedef struct hostent FAR
*
1253 (WSAAPI
*LPFN_GETHOSTBYADDR
)(
1254 IN
const char FAR
*addr
,
1258 typedef struct hostent FAR
*
1259 (WSAAPI
*LPFN_GETHOSTBYNAME
)(
1260 IN
const char FAR
*name
);
1263 (WSAAPI
*LPFN_GETHOSTNAME
)(
1267 typedef struct servent FAR
*
1268 (WSAAPI
*LPFN_GETSERVBYPORT
)(
1270 IN
const char FAR
*proto
);
1272 typedef struct servent FAR
*
1273 (WSAAPI
*LPFN_GETSERVBYNAME
)(
1274 IN
const char FAR
*name
,
1275 IN
const char FAR
*proto
);
1277 typedef struct protoent FAR
*
1278 (WSAAPI
*LPFN_GETPROTOBYNUMBER
)(
1281 typedef struct protoent FAR
*
1282 (WSAAPI
*LPFN_GETPROTOBYNAME
)(
1283 IN
const char FAR
*name
);
1286 (WSAAPI
*LPFN_WSASTARTUP
)(
1287 IN WORD wVersionRequired
,
1288 OUT LPWSADATA lpWSAData
);
1291 (WSAAPI
*LPFN_WSACLEANUP
)(void);
1294 (WSAAPI
*LPFN_WSASETLASTERROR
)(
1298 (WSAAPI
*LPFN_WSAGETLASTERROR
)(void);
1301 (WSAAPI
*LPFN_WSAISBLOCKING
)(void);
1304 (WSAAPI
*LPFN_WSAUNHOOKBLOCKINGHOOK
)(void);
1307 (WSAAPI
*LPFN_WSASETBLOCKINGHOOK
)(
1308 IN FARPROC lpBlockFunc
);
1311 (WSAAPI
*LPFN_WSACANCELBLOCKINGCALL
)(void);
1314 (WSAAPI
*LPFN_WSAASYNCGETSERVBYNAME
)(
1317 IN
const char FAR
*name
,
1318 IN
const char FAR
*proto
,
1323 (WSAAPI
*LPFN_WSAASYNCGETSERVBYPORT
)(
1327 IN
const char FAR
*proto
,
1332 (WSAAPI
*LPFN_WSAASYNCGETPROTOBYNAME
)(
1335 IN
const char FAR
*name
,
1340 (WSAAPI
*LPFN_WSAASYNCGETPROTOBYNUMBER
)(
1348 (WSAAPI
*LPFN_WSAASYNCGETHOSTBYNAME
)(
1351 IN
const char FAR
*name
,
1356 (WSAAPI
*LPFN_WSAASYNCGETHOSTBYADDR
)(
1359 IN
const char FAR
*addr
,
1366 (WSAAPI
*LPFN_WSACANCELASYNCREQUEST
)(
1367 IN HANDLE hAsyncTaskHandle
);
1370 (WSAAPI
*LPFN_WSAASYNCSELECT
)(
1377 (WSAAPI
*LPFN_WSAACCEPT
)(
1379 OUT
struct sockaddr FAR
*addr OPTIONAL
,
1380 IN OUT LPINT addrlen OPTIONAL
,
1381 IN LPCONDITIONPROC lpfnCondition OPTIONAL
,
1382 IN DWORD_PTR dwCallbackData OPTIONAL
);
1385 (WSAAPI
*LPFN_WSACLOSEEVENT
)(
1386 IN WSAEVENT hEvent
);
1389 (WSAAPI
*LPFN_WSACONNECT
)(
1391 IN
const struct sockaddr FAR
*name
,
1393 IN LPWSABUF lpCallerData OPTIONAL
,
1394 OUT LPWSABUF lpCalleeData OPTIONAL
,
1395 IN LPQOS lpSQOS OPTIONAL
,
1396 IN LPQOS lpGQOS OPTIONAL
);
1399 (WSAAPI
*LPFN_WSACREATEEVENT
)(void);
1402 (WSAAPI
*LPFN_WSADUPLICATESOCKETA
)(
1404 IN DWORD dwProcessId
,
1405 OUT LPWSAPROTOCOL_INFOA lpProtocolInfo
);
1408 (WSAAPI
*LPFN_WSADUPLICATESOCKETW
)(
1410 IN DWORD dwProcessId
,
1411 OUT LPWSAPROTOCOL_INFOW lpProtocolInfo
);
1414 #define LPFN_WSADUPLICATESOCKET LPFN_WSADUPLICATESOCKETW
1416 #define LPFN_WSADUPLICATESOCKET LPFN_WSADUPLICATESOCKETA
1420 (WSAAPI
*LPFN_WSAENUMNETWORKEVENTS
)(
1422 IN WSAEVENT hEventObject
,
1423 OUT LPWSANETWORKEVENTS lpNetworkEvents
);
1426 (WSAAPI
*LPFN_WSAENUMPROTOCOLSA
)(
1427 IN LPINT lpiProtocols OPTIONAL
,
1428 OUT LPWSAPROTOCOL_INFOA lpProtocolBuffer OPTIONAL
,
1429 IN OUT LPDWORD lpdwBufferLength
);
1432 (WSAAPI
*LPFN_WSAENUMPROTOCOLSW
)(
1433 IN LPINT lpiProtocols OPTIONAL
,
1434 OUT LPWSAPROTOCOL_INFOW lpProtocolBuffer OPTIONAL
,
1435 IN OUT LPDWORD lpdwBufferLength
);
1438 #define LPFN_WSAENUMPROTOCOLS LPFN_WSAENUMPROTOCOLSW
1440 #define LPFN_WSAENUMPROTOCOLS LPFN_WSAENUMPROTOCOLSA
1444 (WSAAPI
*LPFN_WSAEVENTSELECT
)(
1446 IN WSAEVENT hEventObject
,
1447 IN
long lNetworkEvents
);
1450 (WSAAPI
*LPFN_WSAGETOVERLAPPEDRESULT
)(
1452 IN LPWSAOVERLAPPED lpOverlapped
,
1453 OUT LPDWORD lpcbTransfer
,
1455 OUT LPDWORD lpdwFlags
);
1458 (WSAAPI
*LPFN_WSAGETQOSBYNAME
)(
1460 IN LPWSABUF lpQOSName
,
1464 (WSAAPI
*LPFN_WSAHTONL
)(
1467 OUT u_long FAR
*lpnetlong
);
1470 (WSAAPI
*LPFN_WSAHTONS
)(
1472 IN u_short hostshort
,
1473 OUT u_short FAR
*lpnetshort
);
1476 (WSAAPI
*LPFN_WSAIOCTL
)(
1478 IN DWORD dwIoControlCode
,
1479 IN LPVOID lpvInBuffer OPTIONAL
,
1480 IN DWORD cbInBuffer
,
1481 OUT LPVOID lpvOutBuffer OPTIONAL
,
1482 IN DWORD cbOutBuffer
,
1483 OUT LPDWORD lpcbBytesReturned
,
1484 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
1485 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
1488 (WSAAPI
*LPFN_WSAJOINLEAF
)(
1490 IN
const struct sockaddr FAR
*name
,
1492 IN LPWSABUF lpCallerData OPTIONAL
,
1493 OUT LPWSABUF lpCalleeData OPTIONAL
,
1494 IN LPQOS lpSQOS OPTIONAL
,
1495 IN LPQOS lpGQOS OPTIONAL
,
1499 (WSAAPI
*LPFN_WSANTOHL
)(
1502 OUT u_long FAR
*lphostlong
);
1505 (WSAAPI
*LPFN_WSANTOHS
)(
1507 IN u_short netshort
,
1508 OUT u_short FAR
*lphostshort
);
1511 (WSAAPI
*LPFN_WSARECV
)(
1513 IN LPWSABUF lpBuffers
,
1514 IN DWORD dwBufferCount
,
1515 OUT LPDWORD lpNumberOfBytesRecvd OPTIONAL
,
1516 IN OUT LPDWORD lpFlags
,
1517 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
1518 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
1521 (WSAAPI
*LPFN_WSARECVDISCONNECT
)(
1523 OUT LPWSABUF lpInboundDisconnectData
);
1526 (WSAAPI
*LPFN_WSARECVFROM
)(
1528 IN LPWSABUF lpBuffers
,
1529 IN DWORD dwBufferCount
,
1530 OUT LPDWORD lpNumberOfBytesRecvd OPTIONAL
,
1531 IN OUT LPDWORD lpFlags
,
1532 OUT
struct sockaddr FAR
*lpFrom OPTIONAL
,
1533 IN OUT LPINT lpFromlen OPTIONAL
,
1534 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
1535 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
1538 (WSAAPI
*LPFN_WSARESETEVENT
)(
1539 IN WSAEVENT hEvent
);
1542 (WSAAPI
*LPFN_WSASEND
)(
1544 IN LPWSABUF lpBuffers
,
1545 IN DWORD dwBufferCount
,
1546 OUT LPDWORD lpNumberOfBytesSent OPTIONAL
,
1548 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
1549 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
1552 (WSAAPI
*LPFN_WSASENDDISCONNECT
)(
1554 IN LPWSABUF lpOutboundDisconnectData OPTIONAL
);
1557 (WSAAPI
*LPFN_WSASENDTO
)(
1559 IN LPWSABUF lpBuffers
,
1560 IN DWORD dwBufferCount
,
1561 OUT LPDWORD lpNumberOfBytesSent OPTIONAL
,
1563 IN
const struct sockaddr FAR
*lpTo
,
1565 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
1566 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
1569 (WSAAPI
*LPFN_WSASETEVENT
)(
1570 IN WSAEVENT hEvent
);
1573 (WSAAPI
*LPFN_WSASOCKETA
)(
1577 IN LPWSAPROTOCOL_INFOA lpProtocolInfo OPTIONAL
,
1582 (WSAAPI
*LPFN_WSASOCKETW
)(
1586 IN LPWSAPROTOCOL_INFOW lpProtocolInfo OPTIONAL
,
1591 #define LPFN_WSASOCKET LPFN_WSASOCKETW
1593 #define LPFN_WSASOCKET LPFN_WSASOCKETA
1597 (WSAAPI
*LPFN_WSAWAITFORMULTIPLEEVENTS
)(
1599 IN
const WSAEVENT FAR
*lphEvents
,
1602 IN BOOL fAlertable
);
1605 (WSAAPI
*LPFN_WSAADDRESSTOSTRINGA
)(
1606 IN LPSOCKADDR lpsaAddress
,
1607 IN DWORD dwAddressLength
,
1608 IN LPWSAPROTOCOL_INFOA lpProtocolInfo OPTIONAL
,
1609 OUT LPSTR lpszAddressString
,
1610 IN OUT LPDWORD lpdwAddressStringLength
);
1613 (WSAAPI
*LPFN_WSAADDRESSTOSTRINGW
)(
1614 IN LPSOCKADDR lpsaAddress
,
1615 IN DWORD dwAddressLength
,
1616 IN LPWSAPROTOCOL_INFOW lpProtocolInfo OPTIONAL
,
1617 OUT LPWSTR lpszAddressString
,
1618 IN OUT LPDWORD lpdwAddressStringLength
);
1621 #define LPFN_WSAADDRESSTOSTRING LPFN_WSAADDRESSTOSTRINGW
1623 #define LPFN_WSAADDRESSTOSTRING LPFN_WSAADDRESSTOSTRINGA
1627 (WSAAPI
*LPFN_WSASTRINGTOADDRESSA
)(
1628 IN LPSTR AddressString
,
1629 IN INT AddressFamily
,
1630 IN LPWSAPROTOCOL_INFOA lpProtocolInfo OPTIONAL
,
1631 OUT LPSOCKADDR lpAddress
,
1632 IN OUT LPINT lpAddressLength
);
1635 (WSAAPI
*LPFN_WSASTRINGTOADDRESSW
)(
1636 IN LPWSTR AddressString
,
1637 IN INT AddressFamily
,
1638 IN LPWSAPROTOCOL_INFOW lpProtocolInfo OPTIONAL
,
1639 OUT LPSOCKADDR lpAddress
,
1640 IN OUT LPINT lpAddressLength
);
1643 #define LPFN_WSASTRINGTOADDRESS LPFN_WSASTRINGTOADDRESSW
1645 #define LPFN_WSASTRINGTOADDRESS LPFN_WSASTRINGTOADDRESSA
1649 (WSAAPI
*LPFN_WSALOOKUPSERVICEBEGINA
)(
1650 IN LPWSAQUERYSETA lpqsRestrictions
,
1651 IN DWORD dwControlFlags
,
1652 OUT LPHANDLE lphLookup
);
1655 (WSAAPI
*LPFN_WSALOOKUPSERVICEBEGINW
)(
1656 IN LPWSAQUERYSETW lpqsRestrictions
,
1657 IN DWORD dwControlFlags
,
1658 OUT LPHANDLE lphLookup
);
1661 #define LPFN_WSALOOKUPSERVICEBEGIN LPFN_WSALOOKUPSERVICEBEGINW
1663 #define LPFN_WSALOOKUPSERVICEBEGIN LPFN_WSALOOKUPSERVICEBEGINA
1667 (WSAAPI
*LPFN_WSALOOKUPSERVICENEXTA
)(
1669 IN DWORD dwControlFlags
,
1670 IN OUT LPDWORD lpdwBufferLength
,
1671 OUT LPWSAQUERYSETA lpqsResults
);
1674 (WSAAPI
*LPFN_WSALOOKUPSERVICENEXTW
)(
1676 IN DWORD dwControlFlags
,
1677 IN OUT LPDWORD lpdwBufferLength
,
1678 OUT LPWSAQUERYSETW lpqsResults OPTIONAL
);
1681 #define LPFN_WSALOOKUPSERVICENEXT LPFN_WSALOOKUPSERVICENEXTW
1683 #define LPFN_WSALOOKUPSERVICENEXT LPFN_WSALOOKUPSERVICENEXTA
1687 (WSAAPI
*LPFN_WSALOOKUPSERVICEEND
)(
1691 (WSAAPI
*LPFN_WSAINSTALLSERVICECLASSA
)(
1692 IN LPWSASERVICECLASSINFOA lpServiceClassInfo
);
1695 (WSAAPI
*LPFN_WSAINSTALLSERVICECLASSW
)(
1696 IN LPWSASERVICECLASSINFOW lpServiceClassInfo
);
1699 #define LPFN_WSAINSTALLSERVICECLASS LPFN_WSAINSTALLSERVICECLASSW
1701 #define LPFN_WSAINSTALLSERVICECLASS LPFN_WSAINSTALLSERVICECLASSA
1705 (WSAAPI
*LPFN_WSAREMOVESERVICECLASS
)(
1706 IN LPGUID lpServiceClassId
);
1709 (WSAAPI
*LPFN_WSAGETSERVICECLASSINFOA
)(
1710 IN LPGUID lpProviderId
,
1711 IN LPGUID lpServiceClassId
,
1712 IN OUT LPDWORD lpdwBufSize
,
1713 OUT LPWSASERVICECLASSINFOA lpServiceClassInfo
);
1716 (WSAAPI
*LPFN_WSAGETSERVICECLASSINFOW
)(
1717 IN LPGUID lpProviderId
,
1718 IN LPGUID lpServiceClassId
,
1719 IN OUT LPDWORD lpdwBufSize
,
1720 OUT LPWSASERVICECLASSINFOW lpServiceClassInfo
);
1723 #define LPFN_WSAGETSERVICECLASSINFO LPFN_WSAGETSERVICECLASSINFOW
1725 #define LPFN_WSAGETSERVICECLASSINFO LPFN_WSAGETSERVICECLASSINFOA
1729 (WSAAPI
*LPFN_WSAENUMNAMESPACEPROVIDERSA
)(
1730 IN OUT LPDWORD lpdwBufferLength
,
1731 OUT LPWSANAMESPACE_INFOA lpnspBuffer
);
1734 (WSAAPI
*LPFN_WSAENUMNAMESPACEPROVIDERSW
)(
1735 IN OUT LPDWORD lpdwBufferLength
,
1736 OUT LPWSANAMESPACE_INFOW lpnspBuffer
);
1739 #define LPFN_WSAENUMNAMESPACEPROVIDERS LPFN_WSAENUMNAMESPACEPROVIDERSW
1741 #define LPFN_WSAENUMNAMESPACEPROVIDERS LPFN_WSAENUMNAMESPACEPROVIDERSA
1745 (WSAAPI
*LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA
)(
1746 IN LPGUID lpServiceClassId
,
1747 OUT LPSTR lpszServiceClassName
,
1748 IN OUT LPDWORD lpdwBufferLength
);
1751 (WSAAPI
*LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW
)(
1752 IN LPGUID lpServiceClassId
,
1753 OUT LPWSTR lpszServiceClassName
,
1754 IN OUT LPDWORD lpdwBufferLength
);
1757 #define LPFN_WSAGETSERVICECLASSNAMEBYCLASSID LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW
1759 #define LPFN_WSAGETSERVICECLASSNAMEBYCLASSID LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA
1763 (WSAAPI
*LPFN_WSASETSERVICEA
)(
1764 IN LPWSAQUERYSETA lpqsRegInfo
,
1765 IN WSAESETSERVICEOP essoperation
,
1766 IN DWORD dwControlFlags
);
1769 (WSAAPI
*LPFN_WSASETSERVICEW
)(
1770 IN LPWSAQUERYSETW lpqsRegInfo
,
1771 IN WSAESETSERVICEOP essoperation
,
1772 IN DWORD dwControlFlags
);
1775 #define LPFN_WSASETSERVICE LPFN_WSASETSERVICEW
1777 #define LPFN_WSASETSERVICE LPFN_WSASETSERVICEA
1781 (WSAAPI
*LPFN_WSAPROVIDERCONFIGCHANGE
)(
1782 IN OUT LPHANDLE lpNotificationHandle OPTIONAL
,
1783 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
1784 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
1786 #if(_WIN32_WINNT >= 0x0501)
1788 (WSAAPI
*LPFN_WSANSPIOCTL
)(
1790 IN DWORD dwControlCode
,
1791 IN LPVOID lpvInBuffer OPTIONAL
,
1792 IN DWORD cbInBuffer
,
1793 OUT LPVOID lpvOutBuffer OPTIONAL
,
1794 IN DWORD cbOutBuffer
,
1795 OUT LPDWORD lpcbBytesReturned
,
1796 IN LPWSACOMPLETION lpCompletion OPTIONAL
);
1797 #endif /* (_WIN32_WINNT >= 0x0501) */
1799 #if (_WIN32_WINNT >= 0x0600)
1802 (WSAAPI
*LPFN_WSAENUMNAMESPACEPROVIDERSEXA
)(
1803 IN OUT LPDWORD lpdwBufferLength
,
1804 OUT LPWSANAMESPACE_INFOEXA lpnspBuffer
);
1807 (WSAAPI
*LPFN_WSAENUMNAMESPACEPROVIDERSEXW
)(
1808 IN OUT LPDWORD lpdwBufferLength
,
1809 OUT LPWSANAMESPACE_INFOEXW lpnspBuffer
);
1812 #define LPFN_WSAENUMNAMESPACEPROVIDERSEX LPFN_WSAENUMNAMESPACEPROVIDERSEXW
1814 #define LPFN_WSAENUMNAMESPACEPROVIDERSEX LPFN_WSAENUMNAMESPACEPROVIDERSEXA
1817 #endif /* (_WIN32_WINNT >= 0x600) */
1819 #endif /* INCL_WINSOCK_API_TYPEDEFS */
1821 #if INCL_WINSOCK_API_PROTOTYPES
1829 OUT
struct sockaddr FAR
*addr OPTIONAL
,
1830 IN OUT
int FAR
*addrlen OPTIONAL
);
1837 IN
const struct sockaddr FAR
*addr
,
1851 IN
const struct sockaddr FAR
*name
,
1860 IN OUT u_long FAR
*argp
);
1867 OUT
struct sockaddr FAR
*name
,
1868 IN OUT
int FAR
*namelen
);
1875 OUT
struct sockaddr FAR
*name
,
1876 IN OUT
int FAR
*namelen
);
1885 OUT
char FAR
*optval
,
1886 IN OUT
int FAR
*optlen
);
1892 IN u_long hostlong
);
1898 IN u_short hostshort
);
1904 IN
const char FAR
*cp
);
1910 IN
struct in_addr in
);
1929 IN u_short netshort
);
1948 OUT
struct sockaddr FAR
*from OPTIONAL
,
1949 IN OUY
int FAR
*fromlen OPTIONAL
);
1956 IN OUT fd_set FAR
*readfds OPTIONAL
,
1957 IN OUT fd_set FAR
*writefds OPTIONAL
,
1958 IN OUT fd_set FAR
*exceptfds OPTIONAL
,
1959 IN
const struct timeval FAR
*timeout OPTIONAL
);
1966 IN
const char FAR
*buf
,
1975 IN
const char FAR
*buf
,
1978 IN
const struct sockaddr FAR
*to OPTIONAL
,
1988 IN
const char FAR
*optval OPTIONAL
,
2007 struct hostent FAR
*
2010 IN
const char FAR
*addr
,
2015 struct hostent FAR
*
2018 IN
const char FAR
*name
);
2028 struct servent FAR
*
2032 IN
const char FAR
*proto
);
2035 struct servent FAR
*
2038 IN
const char FAR
*name
,
2039 IN
const char FAR
*proto
);
2042 struct protoent FAR
*
2048 struct protoent FAR
*
2051 IN
const char FAR
*name
);
2057 IN WORD wVersionRequired
,
2058 OUT LPWSADATA lpWSAData
);
2074 WSAGetLastError(void);
2079 WSAIsBlocking(void);
2084 WSAUnhookBlockingHook(void);
2090 IN FARPROC lpBlockFunc
);
2095 WSACancelBlockingCall(void);
2100 WSAAsyncGetServByName(
2103 IN
const char FAR
*name
,
2104 IN
const char FAR
*proto
,
2111 WSAAsyncGetServByPort(
2115 IN
const char FAR
*proto
,
2122 WSAAsyncGetProtoByName(
2125 IN
const char FAR
*name
,
2132 WSAAsyncGetProtoByNumber(
2142 WSAAsyncGetHostByName(
2145 IN
const char FAR
*name
,
2152 WSAAsyncGetHostByAddr(
2155 IN
const char FAR
*addr
,
2164 WSACancelAsyncRequest(
2165 IN HANDLE hAsyncTaskHandle
);
2181 OUT
struct sockaddr FAR
*addr OPTIONAL
,
2182 IN OUT LPINT addrlen OPTIONAL
,
2183 IN LPCONDITIONPROC lpfnCondition OPTIONAL
,
2184 IN DWORD_PTR dwCallbackData OPTIONAL
);
2190 IN WSAEVENT hEvent
);
2197 IN
const struct sockaddr FAR
*name
,
2199 IN LPWSABUF lpCallerData OPTIONAL
,
2200 OUT LPWSABUF lpCalleeData OPTIONAL
,
2201 IN LPQOS lpSQOS OPTIONAL
,
2202 IN LPQOS lpGQOS OPTIONAL
);
2205 #define WSAConnectByName WSAConnectByNameW
2207 #define WSAConnectByName WSAConnectByNameA
2215 IN LPWSTR servicename
,
2216 IN OUT LPDWORD LocalAddressLength
,
2217 OUT LPSOCKADDR LocalAddress
,
2218 IN OUT LPDWORD RemoteAddressLength
,
2219 OUT LPSOCKADDR RemoteAddress
,
2220 IN
const struct timeval
*timeout
,
2221 IN LPWSAOVERLAPPED Reserved OPTIONAL
);
2228 IN LPCSTR servicename
,
2229 IN OUT LPDWORD LocalAddressLength
,
2230 OUT LPSOCKADDR LocalAddress
,
2231 IN OUT LPDWORD RemoteAddressLength
,
2232 OUT LPSOCKADDR RemoteAddress
,
2233 IN
const struct timeval
*timeout
,
2234 IN LPWSAOVERLAPPED Reserved OPTIONAL
);
2240 IN PSOCKET_ADDRESS_LIST SocketAddress
,
2241 IN OUT LPDWORD LocalAddressLength
,
2242 OUT LPSOCKADDR LocalAddress
,
2243 IN OUT LPDWORD RemoteAddressLength
,
2244 OUT LPSOCKADDR RemoteAddress
,
2245 IN
const struct timeval
*timeout
,
2246 IN LPWSAOVERLAPPED Reserved OPTIONAL
);
2251 WSACreateEvent(void);
2256 WSADuplicateSocketA(
2258 IN DWORD dwProcessId
,
2259 OUT LPWSAPROTOCOL_INFOA lpProtocolInfo
);
2264 WSADuplicateSocketW(
2266 IN DWORD dwProcessId
,
2267 OUT LPWSAPROTOCOL_INFOW lpProtocolInfo
);
2270 #define WSADuplicateSocket WSADuplicateSocketW
2272 #define WSADuplicateSocket WSADuplicateSocketA
2278 WSAEnumNetworkEvents(
2280 IN WSAEVENT hEventObject
,
2281 OUT LPWSANETWORKEVENTS lpNetworkEvents
);
2287 IN LPINT lpiProtocols OPTIONAL
,
2288 OUT LPWSAPROTOCOL_INFOA lpProtocolBuffer OPTIONAL
,
2289 IN OUT LPDWORD lpdwBufferLength
);
2295 IN LPINT lpiProtocols OPTIONAL
,
2296 OUT LPWSAPROTOCOL_INFOW lpProtocolBuffer OPTIONAL
,
2297 IN OUT LPDWORD lpdwBufferLength
);
2300 #define WSAEnumProtocols WSAEnumProtocolsW
2302 #define WSAEnumProtocols WSAEnumProtocolsA
2310 IN WSAEVENT hEventObject
,
2311 IN
long lNetworkEvents
);
2316 WSAGetOverlappedResult(
2318 IN LPWSAOVERLAPPED lpOverlapped
,
2319 OUT LPDWORD lpcbTransfer
,
2321 OUT LPDWORD lpdwFlags
);
2328 IN LPWSABUF lpQOSName
,
2337 OUT u_long FAR
*lpnetlong
);
2344 IN u_short hostshort
,
2345 OUT u_short FAR
*lpnetshort
);
2352 IN DWORD dwIoControlCode
,
2353 IN LPVOID lpvInBuffer OPTIONAL
,
2354 IN DWORD cbInBuffer
,
2355 OUT LPVOID lpvOutBuffer OPTIONAL
,
2356 IN DWORD cbOutBuffer
,
2357 OUT LPDWORD lpcbBytesReturned
,
2358 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
2359 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
2366 IN
const struct sockaddr FAR
*name
,
2368 IN LPWSABUF lpCallerData OPTIONAL
,
2369 OUT LPWSABUF lpCalleeData OPTIONAL
,
2370 IN LPQOS lpSQOS OPTIONAL
,
2371 IN LPQOS lpGQOS OPTIONAL
,
2380 OUT u_long FAR
*lphostlong
);
2387 IN u_short netshort
,
2388 OUT u_short FAR
*lphostshort
);
2395 IN LPWSABUF lpBuffers
,
2396 IN DWORD dwBufferCount
,
2397 OUT LPDWORD lpNumberOfBytesRecvd OPTIONAL
,
2398 IN OUT LPDWORD lpFlags
,
2399 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
2400 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
2407 IN LPWSABUF lpInboundDisconnectData OPTIONAL
);
2414 IN OUT LPWSABUF lpBuffers
,
2415 IN DWORD dwBufferCount
,
2416 OUT LPDWORD lpNumberOfBytesRecvd OPTIONAL
,
2417 IN OUT LPDWORD lpFlags
,
2418 OUT
struct sockaddr FAR
*lpFrom
,
2419 IN OUT LPINT lpFromlen OPTIONAL
,
2420 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
2421 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
2427 IN WSAEVENT hEvent
);
2434 IN LPWSABUF lpOutboundDisconnectData OPTIONAL
);
2441 IN LPWSABUF lpBuffers
,
2442 IN DWORD dwBufferCount
,
2443 OUT LPDWORD lpNumberOfBytesSent OPTIONAL
,
2445 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
2446 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
2453 IN LPWSABUF lpBuffers
,
2454 IN DWORD dwBufferCount
,
2455 OUT LPDWORD lpNumberOfBytesSent OPTIONAL
,
2457 IN
const struct sockaddr FAR
*lpTo OPTIONAL
,
2459 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
2460 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
2466 IN WSAEVENT hEvent
);
2475 IN LPWSAPROTOCOL_INFOA lpProtocolInfo OPTIONAL
,
2486 IN LPWSAPROTOCOL_INFOW lpProtocolInfo OPTIONAL
,
2491 #define WSASocket WSASocketW
2493 #define WSASocket WSASocketA
2499 WSAWaitForMultipleEvents(
2501 IN
const WSAEVENT FAR
*lphEvents
,
2504 IN BOOL fAlertable
);
2509 WSAAddressToStringA(
2510 IN LPSOCKADDR lpsaAddress
,
2511 IN DWORD dwAddressLength
,
2512 IN LPWSAPROTOCOL_INFOA lpProtocolInfo OPTIONAL
,
2513 OUT LPSTR lpszAddressString
,
2514 IN OUT LPDWORD lpdwAddressStringLength
);
2519 WSAAddressToStringW(
2520 IN LPSOCKADDR lpsaAddress
,
2521 IN DWORD dwAddressLength
,
2522 IN LPWSAPROTOCOL_INFOW lpProtocolInfo OPTIONAL
,
2523 OUT LPWSTR lpszAddressString
,
2524 IN OUT LPDWORD lpdwAddressStringLength
);
2527 #define WSAAddressToString WSAAddressToStringW
2529 #define WSAAddressToString WSAAddressToStringA
2535 WSAStringToAddressA(
2536 IN LPSTR AddressString
,
2537 IN INT AddressFamily
,
2538 IN LPWSAPROTOCOL_INFOA lpProtocolInfo OPTIONAL
,
2539 OUT LPSOCKADDR lpAddress
,
2540 IN OUT LPINT lpAddressLength
);
2545 WSAStringToAddressW(
2546 IN LPWSTR AddressString
,
2547 IN INT AddressFamily
,
2548 IN LPWSAPROTOCOL_INFOW lpProtocolInfo OPTIONAL
,
2549 OUT LPSOCKADDR lpAddress
,
2550 IN OUT LPINT lpAddressLength
);
2553 #define WSAStringToAddress WSAStringToAddressW
2555 #define WSAStringToAddress WSAStringToAddressA
2561 WSALookupServiceBeginA(
2562 IN LPWSAQUERYSETA lpqsRestrictions
,
2563 IN DWORD dwControlFlags
,
2564 OUT LPHANDLE lphLookup
);
2569 WSALookupServiceBeginW(
2570 IN LPWSAQUERYSETW lpqsRestrictions
,
2571 IN DWORD dwControlFlags
,
2572 OUT LPHANDLE lphLookup
);
2575 #define WSALookupServiceBegin WSALookupServiceBeginW
2577 #define WSALookupServiceBegin WSALookupServiceBeginA
2583 WSALookupServiceNextA(
2585 IN DWORD dwControlFlags
,
2586 IN OUT LPDWORD lpdwBufferLength
,
2587 OUT LPWSAQUERYSETA lpqsResults
);
2592 WSALookupServiceNextW(
2594 IN DWORD dwControlFlags
,
2595 IN OUT LPDWORD lpdwBufferLength
,
2596 OUT LPWSAQUERYSETW lpqsResults OPTIONAL
);
2599 #define WSALookupServiceNext WSALookupServiceNextW
2601 #define WSALookupServiceNext WSALookupServiceNextA
2607 WSALookupServiceEnd(
2613 WSAInstallServiceClassA(
2614 IN LPWSASERVICECLASSINFOA lpServiceClassInfo
);
2619 WSAInstallServiceClassW(
2620 IN LPWSASERVICECLASSINFOW lpServiceClassInfo
);
2623 #define WSAInstallServiceClass WSAInstallServiceClassW
2625 #define WSAInstallServiceClass WSAInstallServiceClassA
2631 WSARemoveServiceClass(
2632 IN LPGUID lpServiceClassId
);
2637 WSAGetServiceClassInfoA(
2638 IN LPGUID lpProviderId
,
2639 IN LPGUID lpServiceClassId
,
2640 IN OUT LPDWORD lpdwBufSize
,
2641 OUT LPWSASERVICECLASSINFOA lpServiceClassInfo
);
2646 WSAGetServiceClassInfoW(
2647 IN LPGUID lpProviderId
,
2648 IN LPGUID lpServiceClassId
,
2649 IN OUT LPDWORD lpdwBufSize
,
2650 OUT LPWSASERVICECLASSINFOW lpServiceClassInfo
);
2653 #define WSAGetServiceClassInfo WSAGetServiceClassInfoW
2655 #define WSAGetServiceClassInfo WSAGetServiceClassInfoA
2661 WSAEnumNameSpaceProvidersA(
2662 IN OUT LPDWORD lpdwBufferLength
,
2663 OUT LPWSANAMESPACE_INFOA lpnspBuffer
);
2668 WSAEnumNameSpaceProvidersW(
2669 IN OUT LPDWORD lpdwBufferLength
,
2670 OUT LPWSANAMESPACE_INFOW lpnspBuffer
);
2673 #define WSAEnumNameSpaceProviders WSAEnumNameSpaceProvidersW
2675 #define WSAEnumNameSpaceProviders WSAEnumNameSpaceProvidersA
2681 WSAGetServiceClassNameByClassIdA(
2682 IN LPGUID lpServiceClassId
,
2683 OUT LPSTR lpszServiceClassName
,
2684 IN OUT LPDWORD lpdwBufferLength
);
2689 WSAGetServiceClassNameByClassIdW(
2690 IN LPGUID lpServiceClassId
,
2691 OUT LPWSTR lpszServiceClassName
,
2692 IN OUT LPDWORD lpdwBufferLength
);
2695 #define WSAGetServiceClassNameByClassId WSAGetServiceClassNameByClassIdW
2697 #define WSAGetServiceClassNameByClassId WSAGetServiceClassNameByClassIdA
2704 IN LPWSAQUERYSETA lpqsRegInfo
,
2705 IN WSAESETSERVICEOP essoperation
,
2706 IN DWORD dwControlFlags
);
2712 IN LPWSAQUERYSETW lpqsRegInfo
,
2713 IN WSAESETSERVICEOP essoperation
,
2714 IN DWORD dwControlFlags
);
2717 #define WSASetService WSASetServiceW
2719 #define WSASetService WSASetServiceA
2725 WSAProviderConfigChange(
2726 IN OUT LPHANDLE lpNotificationHandle OPTIONAL
,
2727 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
2728 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
2730 #if(_WIN32_WINNT >= 0x0501)
2736 IN DWORD dwControlCode
,
2737 IN LPVOID lpvInBuffer OPTIONAL
,
2738 IN DWORD cbInBuffer
,
2739 OUT LPVOID lpvOutBuffer OPTIONAL
,
2740 IN DWORD cbOutBuffer
,
2741 OUT LPDWORD lpcbBytesReturned
,
2742 IN LPWSACOMPLETION lpCompletion OPTIONAL
);
2743 #endif /* (_WIN32_WINNT >= 0x0501) */
2745 #if(_WIN32_WINNT >= 0x0600)
2754 OUT LPDWORD lpNumberOfBytesSent OPTIONAL
,
2755 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
2756 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
2761 WSAEnumNameSpaceProvidersExA(
2762 IN OUT LPDWORD lpdwBufferLength
,
2763 OUT LPWSANAMESPACE_INFOEXA lpnspBuffer
);
2768 WSAEnumNameSpaceProvidersExW(
2769 IN OUT LPDWORD lpdwBufferLength
,
2770 OUT LPWSANAMESPACE_INFOEXW lpnspBuffer
);
2773 #define WSAEnumNameSpaceProvidersEx WSAEnumNameSpaceProvidersExW
2775 #define WSAEnumNameSpaceProvidersEx WSAEnumNameSpaceProvidersExA
2782 IN OUT LPWSAPOLLFD fdArray
,
2786 #endif /* (_WIN32_WINNT >= 0x0600) */
2788 #endif /* INCL_WINSOCK_API_PROTOTYPES */
2790 typedef struct sockaddr_in FAR
*LPSOCKADDR_IN
;
2791 typedef struct linger LINGER
;
2792 typedef struct linger
*PLINGER
;
2793 typedef struct linger FAR
*LPLINGER
;
2794 typedef struct fd_set FD_SET
;
2795 typedef struct fd_set
*PFD_SET
;
2796 typedef struct fd_set FAR
*LPFD_SET
;
2797 typedef struct hostent HOSTENT
;
2798 typedef struct hostent
*PHOSTENT
;
2799 typedef struct hostent FAR
*LPHOSTENT
;
2800 typedef struct servent SERVENT
;
2801 typedef struct servent
*PSERVENT
;
2802 typedef struct servent FAR
*LPSERVENT
;
2803 typedef struct protoent PROTOENT
;
2804 typedef struct protoent
*PPROTOENT
;
2805 typedef struct protoent FAR
*LPPROTOENT
;
2806 typedef struct timeval TIMEVAL
;
2807 typedef struct timeval
*PTIMEVAL
;
2808 typedef struct timeval FAR
*LPTIMEVAL
;
2810 #define WSAMAKEASYNCREPLY(buflen,error) MAKELONG(buflen,error)
2811 #define WSAMAKESELECTREPLY(event,error) MAKELONG(event,error)
2812 #define WSAGETASYNCBUFLEN(lParam) LOWORD(lParam)
2813 #define WSAGETASYNCERROR(lParam) HIWORD(lParam)
2814 #define WSAGETSELECTEVENT(lParam) LOWORD(lParam)
2815 #define WSAGETSELECTERROR(lParam) HIWORD(lParam)
2821 #ifdef _NEED_POPPACK
2822 #include <poppack.h>
2826 #if(_WIN32_WINNT >= 0x0501)
2828 #include <wsipv6ok.h>