3 #if !(defined _WINSOCK2API_ || defined _WINSOCKAPI_)
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 FIONBIO _IOW('f', 126, u_long)
193 char FAR
**s_aliases
;
209 #define SOMAXCONN 0x7fffffff
213 #define MSG_DONTROUTE 4
214 #if(_WIN32_WINNT >= 0x0502)
215 #define MSG_WAITALL 8
218 #define h_errno WSAGetLastError()
219 #define HOST_NOT_FOUND WSAHOST_NOT_FOUND
220 #define TRY_AGAIN WSATRY_AGAIN
221 #define NO_RECOVERY WSANO_RECOVERY
222 #define NO_DATA WSANO_DATA
223 #define NO_ADDRESS WSANO_ADDRESS
225 #endif /* !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) */
227 #define FIONREAD _IOR('f', 127, u_long)
228 #define FIOASYNC _IOW('f', 125, u_long)
229 #define SIOCSHIWAT _IOW('s', 0, u_long)
230 #define SIOCGHIWAT _IOR('s', 1, u_long)
231 #define SIOCSLOWAT _IOW('s', 2, u_long)
232 #define SIOCGLOWAT _IOR('s', 3, u_long)
233 #define SIOCATMARK _IOR('s', 7, u_long)
235 #define IMPLINK_IP 155
236 #define IMPLINK_LOWEXPER 156
237 #define IMPLINK_HIGHEXPER 158
239 #define ADDR_ANY INADDR_ANY
241 #define WSADESCRIPTION_LEN 256
242 #define WSASYS_STATUS_LEN 128
244 #define INVALID_SOCKET (SOCKET)(~0)
246 #define SOCKET_ERROR (-1)
248 #define FROM_PROTOCOL_INFO (-1)
250 #define SO_PROTOCOL_INFOA 0x2004
251 #define SO_PROTOCOL_INFOW 0x2005
253 #define SO_PROTOCOL_INFO SO_PROTOCOL_INFOW
255 #define SO_PROTOCOL_INFO SO_PROTOCOL_INFOA
257 #define PVD_CONFIG 0x3001
259 #define PF_UNSPEC AF_UNSPEC
260 #define PF_UNIX AF_UNIX
261 #define PF_INET AF_INET
262 #define PF_IMPLINK AF_IMPLINK
263 #define PF_PUP AF_PUP
264 #define PF_CHAOS AF_CHAOS
266 #define PF_IPX AF_IPX
267 #define PF_ISO AF_ISO
268 #define PF_OSI AF_OSI
269 #define PF_ECMA AF_ECMA
270 #define PF_DATAKIT AF_DATAKIT
271 #define PF_CCITT AF_CCITT
272 #define PF_SNA AF_SNA
273 #define PF_DECnet AF_DECnet
274 #define PF_DLI AF_DLI
275 #define PF_LAT AF_LAT
276 #define PF_HYLINK AF_HYLINK
277 #define PF_APPLETALK AF_APPLETALK
278 #define PF_VOICEVIEW AF_VOICEVIEW
279 #define PF_FIREFOX AF_FIREFOX
280 #define PF_UNKNOWN1 AF_UNKNOWN1
281 #define PF_BAN AF_BAN
282 #define PF_ATM AF_ATM
283 #define PF_INET6 AF_INET6
284 #if(_WIN32_WINNT >= 0x0600)
285 #define PF_BTH AF_BTH
287 #define PF_MAX AF_MAX
289 #define MSG_PARTIAL 0x8000
290 #define MSG_INTERRUPT 0x10
291 #define MSG_MAXIOVLEN 16
293 #define MAXGETHOSTSTRUCT 1024
295 #define FD_READ_BIT 0
296 #define FD_READ (1 << FD_READ_BIT)
297 #define FD_WRITE_BIT 1
298 #define FD_WRITE (1 << FD_WRITE_BIT)
300 #define FD_OOB (1 << FD_OOB_BIT)
301 #define FD_ACCEPT_BIT 3
302 #define FD_ACCEPT (1 << FD_ACCEPT_BIT)
303 #define FD_CONNECT_BIT 4
304 #define FD_CONNECT (1 << FD_CONNECT_BIT)
305 #define FD_CLOSE_BIT 5
306 #define FD_CLOSE (1 << FD_CLOSE_BIT)
308 #define FD_QOS (1 << FD_QOS_BIT)
309 #define FD_GROUP_QOS_BIT 7
310 #define FD_GROUP_QOS (1 << FD_GROUP_QOS_BIT)
311 #define FD_ROUTING_INTERFACE_CHANGE_BIT 8
312 #define FD_ROUTING_INTERFACE_CHANGE (1 << FD_ROUTING_INTERFACE_CHANGE_BIT)
313 #define FD_ADDRESS_LIST_CHANGE_BIT 9
314 #define FD_ADDRESS_LIST_CHANGE (1 << FD_ADDRESS_LIST_CHANGE_BIT)
315 #define FD_MAX_EVENTS 10
316 #define FD_ALL_EVENTS ((1 << FD_MAX_EVENTS) - 1)
320 #define WSABASEERR 10000
321 #define WSAEINTR (WSABASEERR+4)
322 #define WSAEBADF (WSABASEERR+9)
323 #define WSAEACCES (WSABASEERR+13)
324 #define WSAEFAULT (WSABASEERR+14)
325 #define WSAEINVAL (WSABASEERR+22)
326 #define WSAEMFILE (WSABASEERR+24)
327 #define WSAEWOULDBLOCK (WSABASEERR+35)
328 #define WSAEINPROGRESS (WSABASEERR+36)
329 #define WSAEALREADY (WSABASEERR+37)
330 #define WSAENOTSOCK (WSABASEERR+38)
331 #define WSAEDESTADDRREQ (WSABASEERR+39)
332 #define WSAEMSGSIZE (WSABASEERR+40)
333 #define WSAEPROTOTYPE (WSABASEERR+41)
334 #define WSAENOPROTOOPT (WSABASEERR+42)
335 #define WSAEPROTONOSUPPORT (WSABASEERR+43)
336 #define WSAESOCKTNOSUPPORT (WSABASEERR+44)
337 #define WSAEOPNOTSUPP (WSABASEERR+45)
338 #define WSAEPFNOSUPPORT (WSABASEERR+46)
339 #define WSAEAFNOSUPPORT (WSABASEERR+47)
340 #define WSAEADDRINUSE (WSABASEERR+48)
341 #define WSAEADDRNOTAVAIL (WSABASEERR+49)
342 #define WSAENETDOWN (WSABASEERR+50)
343 #define WSAENETUNREACH (WSABASEERR+51)
344 #define WSAENETRESET (WSABASEERR+52)
345 #define WSAECONNABORTED (WSABASEERR+53)
346 #define WSAECONNRESET (WSABASEERR+54)
347 #define WSAENOBUFS (WSABASEERR+55)
348 #define WSAEISCONN (WSABASEERR+56)
349 #define WSAENOTCONN (WSABASEERR+57)
350 #define WSAESHUTDOWN (WSABASEERR+58)
351 #define WSAETOOMANYREFS (WSABASEERR+59)
352 #define WSAETIMEDOUT (WSABASEERR+60)
353 #define WSAECONNREFUSED (WSABASEERR+61)
354 #define WSAELOOP (WSABASEERR+62)
355 #define WSAENAMETOOLONG (WSABASEERR+63)
356 #define WSAEHOSTDOWN (WSABASEERR+64)
357 #define WSAEHOSTUNREACH (WSABASEERR+65)
358 #define WSAENOTEMPTY (WSABASEERR+66)
359 #define WSAEPROCLIM (WSABASEERR+67)
360 #define WSAEUSERS (WSABASEERR+68)
361 #define WSAEDQUOT (WSABASEERR+69)
362 #define WSAESTALE (WSABASEERR+70)
363 #define WSAEREMOTE (WSABASEERR+71)
364 #define WSASYSNOTREADY (WSABASEERR+91)
365 #define WSAVERNOTSUPPORTED (WSABASEERR+92)
366 #define WSANOTINITIALISED (WSABASEERR+93)
367 #define WSAEDISCON (WSABASEERR+101)
368 #define WSAENOMORE (WSABASEERR+102)
369 #define WSAECANCELLED (WSABASEERR+103)
370 #define WSAEINVALIDPROCTABLE (WSABASEERR+104)
371 #define WSAEINVALIDPROVIDER (WSABASEERR+105)
372 #define WSAEPROVIDERFAILEDINIT (WSABASEERR+106)
373 #define WSASYSCALLFAILURE (WSABASEERR+107)
374 #define WSASERVICE_NOT_FOUND (WSABASEERR+108)
375 #define WSATYPE_NOT_FOUND (WSABASEERR+109)
376 #define WSA_E_NO_MORE (WSABASEERR+110)
377 #define WSA_E_CANCELLED (WSABASEERR+111)
378 #define WSAEREFUSED (WSABASEERR+112)
379 #define WSAHOST_NOT_FOUND (WSABASEERR+1001)
380 #define WSATRY_AGAIN (WSABASEERR+1002)
381 #define WSANO_RECOVERY (WSABASEERR+1003)
382 #define WSANO_DATA (WSABASEERR+1004)
383 #define WSA_QOS_RECEIVERS (WSABASEERR + 1005)
384 #define WSA_QOS_SENDERS (WSABASEERR + 1006)
385 #define WSA_QOS_NO_SENDERS (WSABASEERR + 1007)
386 #define WSA_QOS_NO_RECEIVERS (WSABASEERR + 1008)
387 #define WSA_QOS_REQUEST_CONFIRMED (WSABASEERR + 1009)
388 #define WSA_QOS_ADMISSION_FAILURE (WSABASEERR + 1010)
389 #define WSA_QOS_POLICY_FAILURE (WSABASEERR + 1011)
390 #define WSA_QOS_BAD_STYLE (WSABASEERR + 1012)
391 #define WSA_QOS_BAD_OBJECT (WSABASEERR + 1013)
392 #define WSA_QOS_TRAFFIC_CTRL_ERROR (WSABASEERR + 1014)
393 #define WSA_QOS_GENERIC_ERROR (WSABASEERR + 1015)
394 #define WSA_QOS_ESERVICETYPE (WSABASEERR + 1016)
395 #define WSA_QOS_EFLOWSPEC (WSABASEERR + 1017)
396 #define WSA_QOS_EPROVSPECBUF (WSABASEERR + 1018)
397 #define WSA_QOS_EFILTERSTYLE (WSABASEERR + 1019)
398 #define WSA_QOS_EFILTERTYPE (WSABASEERR + 1020)
399 #define WSA_QOS_EFILTERCOUNT (WSABASEERR + 1021)
400 #define WSA_QOS_EOBJLENGTH (WSABASEERR + 1022)
401 #define WSA_QOS_EFLOWCOUNT (WSABASEERR + 1023)
402 #define WSA_QOS_EUNKOWNPSOBJ (WSABASEERR + 1024)
403 #define WSA_QOS_EPOLICYOBJ (WSABASEERR + 1025)
404 #define WSA_QOS_EFLOWDESC (WSABASEERR + 1026)
405 #define WSA_QOS_EPSFLOWSPEC (WSABASEERR + 1027)
406 #define WSA_QOS_EPSFILTERSPEC (WSABASEERR + 1028)
407 #define WSA_QOS_ESDMODEOBJ (WSABASEERR + 1029)
408 #define WSA_QOS_ESHAPERATEOBJ (WSABASEERR + 1030)
409 #define WSA_QOS_RESERVED_PETYPE (WSABASEERR + 1031)
411 #endif /* !WSABASEERR */
413 #define CF_ACCEPT 0x0000
414 #define CF_REJECT 0x0001
415 #define CF_DEFER 0x0002
416 #define SD_RECEIVE 0x00
420 #define SG_UNCONSTRAINED_GROUP 0x01
421 #define SG_CONSTRAINED_GROUP 0x02
423 #define MAX_PROTOCOL_CHAIN 7
425 #define BASE_PROTOCOL 1
426 #define LAYERED_PROTOCOL 0
428 #define WSAPROTOCOL_LEN 255
430 #define PFL_MULTIPLE_PROTO_ENTRIES 0x00000001
431 #define PFL_RECOMMENDED_PROTO_ENTRY 0x00000002
432 #define PFL_HIDDEN 0x00000004
433 #define PFL_MATCHES_PROTOCOL_ZERO 0x00000008
434 #define PFL_NETWORKDIRECT_PROVIDER 0x00000010
436 #define XP1_CONNECTIONLESS 0x00000001
437 #define XP1_GUARANTEED_DELIVERY 0x00000002
438 #define XP1_GUARANTEED_ORDER 0x00000004
439 #define XP1_MESSAGE_ORIENTED 0x00000008
440 #define XP1_PSEUDO_STREAM 0x00000010
441 #define XP1_GRACEFUL_CLOSE 0x00000020
442 #define XP1_EXPEDITED_DATA 0x00000040
443 #define XP1_CONNECT_DATA 0x00000080
444 #define XP1_DISCONNECT_DATA 0x00000100
445 #define XP1_SUPPORT_BROADCAST 0x00000200
446 #define XP1_SUPPORT_MULTIPOINT 0x00000400
447 #define XP1_MULTIPOINT_CONTROL_PLANE 0x00000800
448 #define XP1_MULTIPOINT_DATA_PLANE 0x00001000
449 #define XP1_QOS_SUPPORTED 0x00002000
450 #define XP1_INTERRUPT 0x00004000
451 #define XP1_UNI_SEND 0x00008000
452 #define XP1_UNI_RECV 0x00010000
453 #define XP1_IFS_HANDLES 0x00020000
454 #define XP1_PARTIAL_MESSAGE 0x00040000
455 #define XP1_SAN_SUPPORT_SDP 0x00080000
457 #define BIGENDIAN 0x0000
458 #define LITTLEENDIAN 0x0001
460 #define SECURITY_PROTOCOL_NONE 0x0000
462 #define JL_SENDER_ONLY 0x01
463 #define JL_RECEIVER_ONLY 0x02
466 #define WSA_FLAG_OVERLAPPED 0x01
467 #define WSA_FLAG_MULTIPOINT_C_ROOT 0x02
468 #define WSA_FLAG_MULTIPOINT_C_LEAF 0x04
469 #define WSA_FLAG_MULTIPOINT_D_ROOT 0x08
470 #define WSA_FLAG_MULTIPOINT_D_LEAF 0x10
471 #define WSA_FLAG_ACCESS_SYSTEM_SECURITY 0x40
473 #define TH_NETDEV 0x00000001
474 #define TH_TAPI 0x00000002
476 #define SERVICE_MULTIPLE 0x00000001
478 #define RES_UNUSED_1 0x00000001
479 #define RES_FLUSH_CACHE 0x00000002
481 #define RES_SERVICE 0x00000004
484 #define SERVICE_TYPE_VALUE_IPXPORTA "IpxSocket"
485 #define SERVICE_TYPE_VALUE_IPXPORTW L"IpxSocket"
486 #define SERVICE_TYPE_VALUE_SAPIDA "SapId"
487 #define SERVICE_TYPE_VALUE_SAPIDW L"SapId"
489 #define SERVICE_TYPE_VALUE_TCPPORTA "TcpPort"
490 #define SERVICE_TYPE_VALUE_TCPPORTW L"TcpPort"
492 #define SERVICE_TYPE_VALUE_UDPPORTA "UdpPort"
493 #define SERVICE_TYPE_VALUE_UDPPORTW L"UdpPort"
495 #define SERVICE_TYPE_VALUE_OBJECTIDA "ObjectId"
496 #define SERVICE_TYPE_VALUE_OBJECTIDW L"ObjectId"
499 #define SERVICE_TYPE_VALUE_SAPID SERVICE_TYPE_VALUE_SAPIDW
500 #define SERVICE_TYPE_VALUE_TCPPORT SERVICE_TYPE_VALUE_TCPPORTW
501 #define SERVICE_TYPE_VALUE_UDPPORT SERVICE_TYPE_VALUE_UDPPORTW
502 #define SERVICE_TYPE_VALUE_OBJECTID SERVICE_TYPE_VALUE_OBJECTIDW
504 #define SERVICE_TYPE_VALUE_SAPID SERVICE_TYPE_VALUE_SAPIDA
505 #define SERVICE_TYPE_VALUE_TCPPORT SERVICE_TYPE_VALUE_TCPPORTA
506 #define SERVICE_TYPE_VALUE_UDPPORT SERVICE_TYPE_VALUE_UDPPORTA
507 #define SERVICE_TYPE_VALUE_OBJECTID SERVICE_TYPE_VALUE_OBJECTIDA
510 #define LUP_DEEP 0x0001
511 #define LUP_CONTAINERS 0x0002
512 #define LUP_NOCONTAINERS 0x0004
513 #define LUP_NEAREST 0x0008
514 #define LUP_RETURN_NAME 0x0010
515 #define LUP_RETURN_TYPE 0x0020
516 #define LUP_RETURN_VERSION 0x0040
517 #define LUP_RETURN_COMMENT 0x0080
518 #define LUP_RETURN_ADDR 0x0100
519 #define LUP_RETURN_BLOB 0x0200
520 #define LUP_RETURN_ALIASES 0x0400
521 #define LUP_RETURN_QUERY_STRING 0x0800
522 #define LUP_RETURN_ALL 0x0FF0
523 #define LUP_RES_SERVICE 0x8000
524 #define LUP_FLUSHCACHE 0x1000
525 #define LUP_FLUSHPREVIOUS 0x2000
526 #define LUP_NON_AUTHORITATIVE 0x4000
527 #define LUP_SECURE 0x8000
528 #define LUP_RETURN_PREFERRED_NAMES 0x10000
529 #define LUP_ADDRCONFIG 0x00100000
530 #define LUP_DUAL_ADDR 0x00200000
531 #define LUP_FILESERVER 0x00400000
533 #define RESULT_IS_ALIAS 0x0001
534 #if(_WIN32_WINNT >= 0x0501)
535 #define RESULT_IS_ADDED 0x0010
536 #define RESULT_IS_CHANGED 0x0020
537 #define RESULT_IS_DELETED 0x0040
542 #define s_addr S_un.S_addr
543 #define s_host S_un.S_un_b.s_b2
544 #define s_net S_un.S_un_b.s_b1
545 #define s_imp S_un.S_un_w.s_w2
546 #define s_impno S_un.S_un_b.s_b4
547 #define s_lh S_un.S_un_b.s_b3
549 typedef struct in_addr
{
551 struct { u_char s_b1
,s_b2
,s_b3
,s_b4
; } S_un_b
;
552 struct { u_short s_w1
,s_w2
; } S_un_w
;
555 } IN_ADDR
, *PIN_ADDR
;
559 typedef struct WSAData
{
563 unsigned short iMaxSockets
;
564 unsigned short iMaxUdpDg
;
565 char FAR
*lpVendorInfo
;
566 char szDescription
[WSADESCRIPTION_LEN
+1];
567 char szSystemStatus
[WSASYS_STATUS_LEN
+1];
569 char szDescription
[WSADESCRIPTION_LEN
+1];
570 char szSystemStatus
[WSASYS_STATUS_LEN
+1];
571 unsigned short iMaxSockets
;
572 unsigned short iMaxUdpDg
;
573 char FAR
*lpVendorInfo
;
575 } WSADATA
, FAR
*LPWSADATA
;
584 #define WSAAPI FAR PASCAL
585 #define WSAEVENT HANDLE
586 #define LPWSAEVENT LPHANDLE
587 #define WSAOVERLAPPED OVERLAPPED
588 typedef struct _OVERLAPPED
*LPWSAOVERLAPPED
;
589 #define WSA_IO_PENDING (ERROR_IO_PENDING)
590 #define WSA_IO_INCOMPLETE (ERROR_IO_INCOMPLETE)
591 #define WSA_INVALID_HANDLE (ERROR_INVALID_HANDLE)
592 #define WSA_INVALID_PARAMETER (ERROR_INVALID_PARAMETER)
593 #define WSA_NOT_ENOUGH_MEMORY (ERROR_NOT_ENOUGH_MEMORY)
594 #define WSA_OPERATION_ABORTED (ERROR_OPERATION_ABORTED)
595 #define WSA_INVALID_EVENT ((WSAEVENT)NULL)
596 #define WSA_MAXIMUM_WAIT_EVENTS (MAXIMUM_WAIT_OBJECTS)
597 #define WSA_WAIT_FAILED ((DWORD)-1L)
598 #define WSA_WAIT_EVENT_0 (WAIT_OBJECT_0)
599 #define WSA_WAIT_IO_COMPLETION (WAIT_IO_COMPLETION)
600 #define WSA_WAIT_TIMEOUT (WAIT_TIMEOUT)
601 #define WSA_INFINITE (INFINITE)
605 #define WSAAPI FAR PASCAL
606 typedef DWORD WSAEVENT
, FAR
* LPWSAEVENT
;
608 typedef struct _WSAOVERLAPPED
{
614 } WSAOVERLAPPED
, FAR
* LPWSAOVERLAPPED
;
616 #define WSA_IO_PENDING (WSAEWOULDBLOCK)
617 #define WSA_IO_INCOMPLETE (WSAEWOULDBLOCK)
618 #define WSA_INVALID_HANDLE (WSAENOTSOCK)
619 #define WSA_INVALID_PARAMETER (WSAEINVAL)
620 #define WSA_NOT_ENOUGH_MEMORY (WSAENOBUFS)
621 #define WSA_OPERATION_ABORTED (WSAEINTR)
623 #define WSA_INVALID_EVENT ((WSAEVENT)NULL)
624 #define WSA_MAXIMUM_WAIT_EVENTS (MAXIMUM_WAIT_OBJECTS)
625 #define WSA_WAIT_FAILED ((DWORD)-1L)
626 #define WSA_WAIT_EVENT_0 ((DWORD)0)
627 #define WSA_WAIT_TIMEOUT ((DWORD)0x102L)
628 #define WSA_INFINITE ((DWORD)-1L)
634 typedef struct _QualityOfService
{
635 FLOWSPEC SendingFlowspec
;
636 FLOWSPEC ReceivingFlowspec
;
637 WSABUF ProviderSpecific
;
640 typedef unsigned int GROUP
;
642 typedef struct _WSANETWORKEVENTS
{
644 int iErrorCode
[FD_MAX_EVENTS
];
645 } WSANETWORKEVENTS
, *LPWSANETWORKEVENTS
;
651 typedef struct _WSAPROTOCOLCHAIN
{
653 DWORD ChainEntries
[MAX_PROTOCOL_CHAIN
];
654 } WSAPROTOCOLCHAIN
, *LPWSAPROTOCOLCHAIN
;
656 typedef struct _WSAPROTOCOL_INFOA
{
657 DWORD dwServiceFlags1
;
658 DWORD dwServiceFlags2
;
659 DWORD dwServiceFlags3
;
660 DWORD dwServiceFlags4
;
661 DWORD dwProviderFlags
;
663 DWORD dwCatalogEntryId
;
664 WSAPROTOCOLCHAIN ProtocolChain
;
671 int iProtocolMaxOffset
;
672 int iNetworkByteOrder
;
675 DWORD dwProviderReserved
;
676 CHAR szProtocol
[WSAPROTOCOL_LEN
+1];
677 } WSAPROTOCOL_INFOA
, *LPWSAPROTOCOL_INFOA
;
679 typedef struct _WSAPROTOCOL_INFOW
{
680 DWORD dwServiceFlags1
;
681 DWORD dwServiceFlags2
;
682 DWORD dwServiceFlags3
;
683 DWORD dwServiceFlags4
;
684 DWORD dwProviderFlags
;
686 DWORD dwCatalogEntryId
;
687 WSAPROTOCOLCHAIN ProtocolChain
;
694 int iProtocolMaxOffset
;
695 int iNetworkByteOrder
;
698 DWORD dwProviderReserved
;
699 WCHAR szProtocol
[WSAPROTOCOL_LEN
+1];
700 } WSAPROTOCOL_INFOW
, * LPWSAPROTOCOL_INFOW
;
703 typedef WSAPROTOCOL_INFOW WSAPROTOCOL_INFO
;
704 typedef LPWSAPROTOCOL_INFOW LPWSAPROTOCOL_INFO
;
706 typedef WSAPROTOCOL_INFOA WSAPROTOCOL_INFO
;
707 typedef LPWSAPROTOCOL_INFOA LPWSAPROTOCOL_INFO
;
711 (CALLBACK
*LPCONDITIONPROC
)(
712 IN LPWSABUF lpCallerId
,
713 IN LPWSABUF lpCallerData
,
716 IN LPWSABUF lpCalleeId
,
717 IN LPWSABUF lpCalleeData
,
719 IN DWORD_PTR dwCallbackData
);
722 (CALLBACK
*LPWSAOVERLAPPED_COMPLETION_ROUTINE
)(
724 IN DWORD cbTransferred
,
725 IN LPWSAOVERLAPPED lpOverlapped
,
728 #if(_WIN32_WINNT >= 0x0501)
730 #define SIO_NSP_NOTIFY_CHANGE _WSAIOW(IOC_WS2,25)
732 typedef enum _WSACOMPLETIONTYPE
{
733 NSP_NOTIFY_IMMEDIATELY
= 0,
738 } WSACOMPLETIONTYPE
, * PWSACOMPLETIONTYPE
, *LPWSACOMPLETIONTYPE
;
740 typedef struct _WSACOMPLETION
{
741 WSACOMPLETIONTYPE Type
;
749 LPWSAOVERLAPPED lpOverlapped
;
752 LPWSAOVERLAPPED lpOverlapped
;
753 LPWSAOVERLAPPED_COMPLETION_ROUTINE lpfnCompletionProc
;
756 LPWSAOVERLAPPED lpOverlapped
;
761 } WSACOMPLETION
, *PWSACOMPLETION
, *LPWSACOMPLETION
;
763 #endif /* (_WIN32_WINNT >= 0x0501) */
765 #ifndef __BLOB_T_DEFINED /* also in wtypes.h and nspapi.h */
766 #define __BLOB_T_DEFINED
767 /* wine is using a diff define */
768 #ifndef _tagBLOB_DEFINED
769 #define _tagBLOB_DEFINED
770 #define _BLOB_DEFINED
771 #define _LPBLOB_DEFINED
773 typedef struct _BLOB
{
776 } BLOB
,*PBLOB
,*LPBLOB
;
778 #endif /* _tagBLOB_DEFINED */
780 #endif /* __BLOB_T_DEFINED */
782 typedef struct _AFPROTOCOLS
{
785 } AFPROTOCOLS
, *PAFPROTOCOLS
, *LPAFPROTOCOLS
;
787 typedef enum _WSAEcomparator
{
790 } WSAECOMPARATOR
, *PWSAECOMPARATOR
, *LPWSAECOMPARATOR
;
792 typedef struct _WSAVersion
{
794 WSAECOMPARATOR ecHow
;
795 } WSAVERSION
, *PWSAVERSION
, *LPWSAVERSION
;
797 typedef struct _WSAQuerySetA
{
799 LPSTR lpszServiceInstanceName
;
800 LPGUID lpServiceClassId
;
801 LPWSAVERSION lpVersion
;
804 LPGUID lpNSProviderId
;
806 DWORD dwNumberOfProtocols
;
807 LPAFPROTOCOLS lpafpProtocols
;
808 LPSTR lpszQueryString
;
809 DWORD dwNumberOfCsAddrs
;
810 LPCSADDR_INFO lpcsaBuffer
;
813 } WSAQUERYSETA
, *PWSAQUERYSETA
, *LPWSAQUERYSETA
;
815 typedef struct _WSAQuerySetW
{
817 LPWSTR lpszServiceInstanceName
;
818 LPGUID lpServiceClassId
;
819 LPWSAVERSION lpVersion
;
822 LPGUID lpNSProviderId
;
824 DWORD dwNumberOfProtocols
;
825 LPAFPROTOCOLS lpafpProtocols
;
826 LPWSTR lpszQueryString
;
827 DWORD dwNumberOfCsAddrs
;
828 LPCSADDR_INFO lpcsaBuffer
;
831 } WSAQUERYSETW
, *PWSAQUERYSETW
, *LPWSAQUERYSETW
;
833 typedef struct _WSAQuerySet2A
{
835 LPSTR lpszServiceInstanceName
;
836 LPWSAVERSION lpVersion
;
839 LPGUID lpNSProviderId
;
841 DWORD dwNumberOfProtocols
;
842 LPAFPROTOCOLS lpafpProtocols
;
843 LPSTR lpszQueryString
;
844 DWORD dwNumberOfCsAddrs
;
845 LPCSADDR_INFO lpcsaBuffer
;
848 } WSAQUERYSET2A
, *PWSAQUERYSET2A
, *LPWSAQUERYSET2A
;
850 typedef struct _WSAQuerySet2W
{
852 LPWSTR lpszServiceInstanceName
;
853 LPWSAVERSION lpVersion
;
856 LPGUID lpNSProviderId
;
858 DWORD dwNumberOfProtocols
;
859 LPAFPROTOCOLS lpafpProtocols
;
860 LPWSTR lpszQueryString
;
861 DWORD dwNumberOfCsAddrs
;
862 LPCSADDR_INFO lpcsaBuffer
;
865 } WSAQUERYSET2W
, *PWSAQUERYSET2W
, *LPWSAQUERYSET2W
;
868 typedef WSAQUERYSETW WSAQUERYSET
;
869 typedef PWSAQUERYSETW PWSAQUERYSET
;
870 typedef LPWSAQUERYSETW LPWSAQUERYSET
;
871 typedef WSAQUERYSET2W WSAQUERYSET2
;
872 typedef PWSAQUERYSET2W PWSAQUERYSET2
;
873 typedef LPWSAQUERYSET2W LPWSAQUERYSET2
;
875 typedef WSAQUERYSETA WSAQUERYSET
;
876 typedef PWSAQUERYSETA PWSAQUERYSET
;
877 typedef LPWSAQUERYSETA LPWSAQUERYSET
;
878 typedef WSAQUERYSET2A WSAQUERYSET2
;
879 typedef PWSAQUERYSET2A PWSAQUERYSET2
;
880 typedef LPWSAQUERYSET2A LPWSAQUERYSET2
;
883 typedef enum _WSAESETSERVICEOP
{
884 RNRSERVICE_REGISTER
=0,
885 RNRSERVICE_DEREGISTER
,
887 } WSAESETSERVICEOP
, *PWSAESETSERVICEOP
, *LPWSAESETSERVICEOP
;
889 typedef struct _WSANSClassInfoA
{
895 } WSANSCLASSINFOA
, *PWSANSCLASSINFOA
, *LPWSANSCLASSINFOA
;
897 typedef struct _WSANSClassInfoW
{
903 } WSANSCLASSINFOW
, *PWSANSCLASSINFOW
, *LPWSANSCLASSINFOW
;
906 typedef WSANSCLASSINFOW WSANSCLASSINFO
;
907 typedef PWSANSCLASSINFOW PWSANSCLASSINFO
;
908 typedef LPWSANSCLASSINFOW LPWSANSCLASSINFO
;
910 typedef WSANSCLASSINFOA WSANSCLASSINFO
;
911 typedef PWSANSCLASSINFOA PWSANSCLASSINFO
;
912 typedef LPWSANSCLASSINFOA LPWSANSCLASSINFO
;
915 typedef struct _WSAServiceClassInfoA
{
916 LPGUID lpServiceClassId
;
917 LPSTR lpszServiceClassName
;
919 LPWSANSCLASSINFOA lpClassInfos
;
920 } WSASERVICECLASSINFOA
, *PWSASERVICECLASSINFOA
, *LPWSASERVICECLASSINFOA
;
922 typedef struct _WSAServiceClassInfoW
{
923 LPGUID lpServiceClassId
;
924 LPWSTR lpszServiceClassName
;
926 LPWSANSCLASSINFOW lpClassInfos
;
927 } WSASERVICECLASSINFOW
, *PWSASERVICECLASSINFOW
, *LPWSASERVICECLASSINFOW
;
930 typedef WSASERVICECLASSINFOW WSASERVICECLASSINFO
;
931 typedef PWSASERVICECLASSINFOW PWSASERVICECLASSINFO
;
932 typedef LPWSASERVICECLASSINFOW LPWSASERVICECLASSINFO
;
934 typedef WSASERVICECLASSINFOA WSASERVICECLASSINFO
;
935 typedef PWSASERVICECLASSINFOA PWSASERVICECLASSINFO
;
936 typedef LPWSASERVICECLASSINFOA LPWSASERVICECLASSINFO
;
939 typedef struct _WSANAMESPACE_INFOA
{
944 LPSTR lpszIdentifier
;
945 } WSANAMESPACE_INFOA
, *PWSANAMESPACE_INFOA
, *LPWSANAMESPACE_INFOA
;
947 typedef struct _WSANAMESPACE_INFOW
{
952 LPWSTR lpszIdentifier
;
953 } WSANAMESPACE_INFOW
, *PWSANAMESPACE_INFOW
, *LPWSANAMESPACE_INFOW
;
955 typedef struct _WSANAMESPACE_INFOEXA
{
960 LPSTR lpszIdentifier
;
961 BLOB ProviderSpecific
;
962 } WSANAMESPACE_INFOEXA
, *PWSANAMESPACE_INFOEXA
, *LPWSANAMESPACE_INFOEXA
;
964 typedef struct _WSANAMESPACE_INFOEXW
{
969 LPWSTR lpszIdentifier
;
970 BLOB ProviderSpecific
;
971 } WSANAMESPACE_INFOEXW
, *PWSANAMESPACE_INFOEXW
, *LPWSANAMESPACE_INFOEXW
;
974 typedef WSANAMESPACE_INFOW WSANAMESPACE_INFO
;
975 typedef PWSANAMESPACE_INFOW PWSANAMESPACE_INFO
;
976 typedef LPWSANAMESPACE_INFOW LPWSANAMESPACE_INFO
;
977 typedef WSANAMESPACE_INFOEXW WSANAMESPACE_INFOEX
;
978 typedef PWSANAMESPACE_INFOEXW PWSANAMESPACE_INFOEX
;
979 typedef LPWSANAMESPACE_INFOEXW LPWSANAMESPACE_INFOEX
;
981 typedef WSANAMESPACE_INFOA WSANAMESPACE_INFO
;
982 typedef PWSANAMESPACE_INFOA PWSANAMESPACE_INFO
;
983 typedef LPWSANAMESPACE_INFOA LPWSANAMESPACE_INFO
;
984 typedef WSANAMESPACE_INFOEXA WSANAMESPACE_INFOEX
;
985 typedef PWSANAMESPACE_INFOEXA PWSANAMESPACE_INFOEX
;
986 typedef LPWSANAMESPACE_INFOEXA LPWSANAMESPACE_INFOEX
;
989 #if(_WIN32_WINNT >= 0x0600)
991 #define POLLRDNORM 0x0100
992 #define POLLRDBAND 0x0200
993 #define POLLIN (POLLRDNORM | POLLRDBAND)
994 #define POLLPRI 0x0400
996 #define POLLWRNORM 0x0010
997 #define POLLOUT (POLLWRNORM)
998 #define POLLWRBAND 0x0020
1000 #define POLLERR 0x0001
1001 #define POLLHUP 0x0002
1002 #define POLLNVAL 0x0004
1004 typedef struct pollfd
{
1008 } WSAPOLLFD
, *PWSAPOLLFD
, FAR
*LPWSAPOLLFD
;
1010 #endif /* (_WIN32_WINNT >= 0x0600) */
1012 #if INCL_WINSOCK_API_TYPEDEFS
1015 (WSAAPI
*LPFN_ACCEPT
)(
1017 OUT
struct sockaddr FAR
*addr OPTIONAL
,
1018 IN OUT
int FAR
*addrlen OPTIONAL
);
1021 (WSAAPI
*LPFN_BIND
)(
1023 IN
const struct sockaddr FAR
*name
,
1027 (WSAAPI
*LPFN_CLOSESOCKET
)(
1031 (WSAAPI
*LPFN_CONNECT
)(
1033 IN
const struct sockaddr FAR
*name
,
1037 (WSAAPI
*LPFN_IOCTLSOCKET
)(
1040 IN OUT u_long FAR
*argp
);
1043 (WSAAPI
*LPFN_GETPEERNAME
)(
1045 OUT
struct sockaddr FAR
*name
,
1046 IN OUT
int FAR
*namelen
);
1049 (WSAAPI
*LPFN_GETSOCKNAME
)(
1051 OUT
struct sockaddr FAR
*name
,
1052 IN OUT
int FAR
*namelen
);
1055 (WSAAPI
*LPFN_GETSOCKOPT
)(
1059 OUT
char FAR
*optval
,
1060 IN OUT
int FAR
*optlen
);
1063 (WSAAPI
*LPFN_HTONL
)(
1064 IN u_long hostlong
);
1067 (WSAAPI
*LPFN_HTONS
)(
1068 IN u_short hostshort
);
1070 typedef unsigned long
1071 (WSAAPI
*LPFN_INET_ADDR
)(
1072 IN
const char FAR
*cp
);
1075 (WSAAPI
*LPFN_INET_NTOA
)(
1076 IN
struct in_addr in
);
1079 (WSAAPI
*LPFN_LISTEN
)(
1084 (WSAAPI
*LPFN_NTOHL
)(
1088 (WSAAPI
*LPFN_NTOHS
)(
1089 IN u_short netshort
);
1092 (WSAAPI
*LPFN_RECV
)(
1099 (WSAAPI
*LPFN_RECVFROM
)(
1104 OUT
struct sockaddr FAR
*from OPTIONAL
,
1105 IN OUT
int FAR
* fromlen OPTIONAL
);
1108 (WSAAPI
*LPFN_SELECT
)(
1110 IN OUT fd_set FAR
*readfds OPTIONAL
,
1111 IN OUT fd_set FAR
*writefds OPTIONAL
,
1112 IN OUT fd_set FAR
*exceptfds OPTIONAL
,
1113 IN
const struct timeval FAR
*timeout OPTIONAL
);
1116 (WSAAPI
*LPFN_SEND
)(
1118 IN
const char FAR
*buf
,
1123 (WSAAPI
*LPFN_SENDTO
)(
1125 IN
const char FAR
*buf
,
1128 IN
const struct sockaddr FAR
*to OPTIONAL
,
1132 (WSAAPI
*LPFN_SETSOCKOPT
)(
1136 IN
const char FAR
*optval OPTIONAL
,
1140 (WSAAPI
*LPFN_SHUTDOWN
)(
1145 (WSAAPI
*LPFN_SOCKET
)(
1150 typedef struct hostent FAR
*
1151 (WSAAPI
*LPFN_GETHOSTBYADDR
)(
1152 IN
const char FAR
*addr
,
1156 typedef struct hostent FAR
*
1157 (WSAAPI
*LPFN_GETHOSTBYNAME
)(
1158 IN
const char FAR
*name
);
1161 (WSAAPI
*LPFN_GETHOSTNAME
)(
1165 typedef struct servent FAR
*
1166 (WSAAPI
*LPFN_GETSERVBYPORT
)(
1168 IN
const char FAR
*proto
);
1170 typedef struct servent FAR
*
1171 (WSAAPI
*LPFN_GETSERVBYNAME
)(
1172 IN
const char FAR
*name
,
1173 IN
const char FAR
*proto
);
1175 typedef struct protoent FAR
*
1176 (WSAAPI
*LPFN_GETPROTOBYNUMBER
)(
1179 typedef struct protoent FAR
*
1180 (WSAAPI
*LPFN_GETPROTOBYNAME
)(
1181 IN
const char FAR
*name
);
1184 (WSAAPI
*LPFN_WSASTARTUP
)(
1185 IN WORD wVersionRequired
,
1186 OUT LPWSADATA lpWSAData
);
1189 (WSAAPI
*LPFN_WSACLEANUP
)(void);
1192 (WSAAPI
*LPFN_WSASETLASTERROR
)(
1196 (WSAAPI
*LPFN_WSAGETLASTERROR
)(void);
1199 (WSAAPI
*LPFN_WSAISBLOCKING
)(void);
1202 (WSAAPI
*LPFN_WSAUNHOOKBLOCKINGHOOK
)(void);
1205 (WSAAPI
*LPFN_WSASETBLOCKINGHOOK
)(
1206 IN FARPROC lpBlockFunc
);
1209 (WSAAPI
*LPFN_WSACANCELBLOCKINGCALL
)(void);
1212 (WSAAPI
*LPFN_WSAASYNCGETSERVBYNAME
)(
1215 IN
const char FAR
*name
,
1216 IN
const char FAR
*proto
,
1221 (WSAAPI
*LPFN_WSAASYNCGETSERVBYPORT
)(
1225 IN
const char FAR
*proto
,
1230 (WSAAPI
*LPFN_WSAASYNCGETPROTOBYNAME
)(
1233 IN
const char FAR
*name
,
1238 (WSAAPI
*LPFN_WSAASYNCGETPROTOBYNUMBER
)(
1246 (WSAAPI
*LPFN_WSAASYNCGETHOSTBYNAME
)(
1249 IN
const char FAR
*name
,
1254 (WSAAPI
*LPFN_WSAASYNCGETHOSTBYADDR
)(
1257 IN
const char FAR
*addr
,
1264 (WSAAPI
*LPFN_WSACANCELASYNCREQUEST
)(
1265 IN HANDLE hAsyncTaskHandle
);
1268 (WSAAPI
*LPFN_WSAASYNCSELECT
)(
1275 (WSAAPI
*LPFN_WSAACCEPT
)(
1277 OUT
struct sockaddr FAR
*addr OPTIONAL
,
1278 IN OUT LPINT addrlen OPTIONAL
,
1279 IN LPCONDITIONPROC lpfnCondition OPTIONAL
,
1280 IN DWORD_PTR dwCallbackData OPTIONAL
);
1283 (WSAAPI
*LPFN_WSACLOSEEVENT
)(
1284 IN WSAEVENT hEvent
);
1287 (WSAAPI
*LPFN_WSACONNECT
)(
1289 IN
const struct sockaddr FAR
*name
,
1291 IN LPWSABUF lpCallerData OPTIONAL
,
1292 OUT LPWSABUF lpCalleeData OPTIONAL
,
1293 IN LPQOS lpSQOS OPTIONAL
,
1294 IN LPQOS lpGQOS OPTIONAL
);
1297 (WSAAPI
*LPFN_WSACREATEEVENT
)(void);
1300 (WSAAPI
*LPFN_WSADUPLICATESOCKETA
)(
1302 IN DWORD dwProcessId
,
1303 OUT LPWSAPROTOCOL_INFOA lpProtocolInfo
);
1306 (WSAAPI
*LPFN_WSADUPLICATESOCKETW
)(
1308 IN DWORD dwProcessId
,
1309 OUT LPWSAPROTOCOL_INFOW lpProtocolInfo
);
1312 #define LPFN_WSADUPLICATESOCKET LPFN_WSADUPLICATESOCKETW
1314 #define LPFN_WSADUPLICATESOCKET LPFN_WSADUPLICATESOCKETA
1318 (WSAAPI
*LPFN_WSAENUMNETWORKEVENTS
)(
1320 IN WSAEVENT hEventObject
,
1321 OUT LPWSANETWORKEVENTS lpNetworkEvents
);
1324 (WSAAPI
*LPFN_WSAENUMPROTOCOLSA
)(
1325 IN LPINT lpiProtocols OPTIONAL
,
1326 OUT LPWSAPROTOCOL_INFOA lpProtocolBuffer OPTIONAL
,
1327 IN OUT LPDWORD lpdwBufferLength
);
1330 (WSAAPI
*LPFN_WSAENUMPROTOCOLSW
)(
1331 IN LPINT lpiProtocols OPTIONAL
,
1332 OUT LPWSAPROTOCOL_INFOW lpProtocolBuffer OPTIONAL
,
1333 IN OUT LPDWORD lpdwBufferLength
);
1336 #define LPFN_WSAENUMPROTOCOLS LPFN_WSAENUMPROTOCOLSW
1338 #define LPFN_WSAENUMPROTOCOLS LPFN_WSAENUMPROTOCOLSA
1342 (WSAAPI
*LPFN_WSAEVENTSELECT
)(
1344 IN WSAEVENT hEventObject
,
1345 IN
long lNetworkEvents
);
1348 (WSAAPI
*LPFN_WSAGETOVERLAPPEDRESULT
)(
1350 IN LPWSAOVERLAPPED lpOverlapped
,
1351 OUT LPDWORD lpcbTransfer
,
1353 OUT LPDWORD lpdwFlags
);
1356 (WSAAPI
*LPFN_WSAGETQOSBYNAME
)(
1358 IN LPWSABUF lpQOSName
,
1362 (WSAAPI
*LPFN_WSAHTONL
)(
1365 OUT u_long FAR
*lpnetlong
);
1368 (WSAAPI
*LPFN_WSAHTONS
)(
1370 IN u_short hostshort
,
1371 OUT u_short FAR
*lpnetshort
);
1374 (WSAAPI
*LPFN_WSAIOCTL
)(
1376 IN DWORD dwIoControlCode
,
1377 IN LPVOID lpvInBuffer OPTIONAL
,
1378 IN DWORD cbInBuffer
,
1379 OUT LPVOID lpvOutBuffer OPTIONAL
,
1380 IN DWORD cbOutBuffer
,
1381 OUT LPDWORD lpcbBytesReturned
,
1382 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
1383 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
1386 (WSAAPI
*LPFN_WSAJOINLEAF
)(
1388 IN
const struct sockaddr FAR
*name
,
1390 IN LPWSABUF lpCallerData OPTIONAL
,
1391 OUT LPWSABUF lpCalleeData OPTIONAL
,
1392 IN LPQOS lpSQOS OPTIONAL
,
1393 IN LPQOS lpGQOS OPTIONAL
,
1397 (WSAAPI
*LPFN_WSANTOHL
)(
1400 OUT u_long FAR
*lphostlong
);
1403 (WSAAPI
*LPFN_WSANTOHS
)(
1405 IN u_short netshort
,
1406 OUT u_short FAR
*lphostshort
);
1409 (WSAAPI
*LPFN_WSARECV
)(
1411 IN LPWSABUF lpBuffers
,
1412 IN DWORD dwBufferCount
,
1413 OUT LPDWORD lpNumberOfBytesRecvd OPTIONAL
,
1414 IN OUT LPDWORD lpFlags
,
1415 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
1416 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
1419 (WSAAPI
*LPFN_WSARECVDISCONNECT
)(
1421 OUT LPWSABUF lpInboundDisconnectData
);
1424 (WSAAPI
*LPFN_WSARECVFROM
)(
1426 IN LPWSABUF lpBuffers
,
1427 IN DWORD dwBufferCount
,
1428 OUT LPDWORD lpNumberOfBytesRecvd OPTIONAL
,
1429 IN OUT LPDWORD lpFlags
,
1430 OUT
struct sockaddr FAR
*lpFrom OPTIONAL
,
1431 IN OUT LPINT lpFromlen OPTIONAL
,
1432 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
1433 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
1436 (WSAAPI
*LPFN_WSARESETEVENT
)(
1437 IN WSAEVENT hEvent
);
1440 (WSAAPI
*LPFN_WSASEND
)(
1442 IN LPWSABUF lpBuffers
,
1443 IN DWORD dwBufferCount
,
1444 OUT LPDWORD lpNumberOfBytesSent OPTIONAL
,
1446 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
1447 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
1450 (WSAAPI
*LPFN_WSASENDDISCONNECT
)(
1452 IN LPWSABUF lpOutboundDisconnectData OPTIONAL
);
1455 (WSAAPI
*LPFN_WSASENDTO
)(
1457 IN LPWSABUF lpBuffers
,
1458 IN DWORD dwBufferCount
,
1459 OUT LPDWORD lpNumberOfBytesSent OPTIONAL
,
1461 IN
const struct sockaddr FAR
*lpTo
,
1463 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
1464 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
1467 (WSAAPI
*LPFN_WSASETEVENT
)(
1468 IN WSAEVENT hEvent
);
1471 (WSAAPI
*LPFN_WSASOCKETA
)(
1475 IN LPWSAPROTOCOL_INFOA lpProtocolInfo OPTIONAL
,
1480 (WSAAPI
*LPFN_WSASOCKETW
)(
1484 IN LPWSAPROTOCOL_INFOW lpProtocolInfo OPTIONAL
,
1489 #define LPFN_WSASOCKET LPFN_WSASOCKETW
1491 #define LPFN_WSASOCKET LPFN_WSASOCKETA
1495 (WSAAPI
*LPFN_WSAWAITFORMULTIPLEEVENTS
)(
1497 IN
const WSAEVENT FAR
*lphEvents
,
1500 IN BOOL fAlertable
);
1503 (WSAAPI
*LPFN_WSAADDRESSTOSTRINGA
)(
1504 IN LPSOCKADDR lpsaAddress
,
1505 IN DWORD dwAddressLength
,
1506 IN LPWSAPROTOCOL_INFOA lpProtocolInfo OPTIONAL
,
1507 OUT LPSTR lpszAddressString
,
1508 IN OUT LPDWORD lpdwAddressStringLength
);
1511 (WSAAPI
*LPFN_WSAADDRESSTOSTRINGW
)(
1512 IN LPSOCKADDR lpsaAddress
,
1513 IN DWORD dwAddressLength
,
1514 IN LPWSAPROTOCOL_INFOW lpProtocolInfo OPTIONAL
,
1515 OUT LPWSTR lpszAddressString
,
1516 IN OUT LPDWORD lpdwAddressStringLength
);
1519 #define LPFN_WSAADDRESSTOSTRING LPFN_WSAADDRESSTOSTRINGW
1521 #define LPFN_WSAADDRESSTOSTRING LPFN_WSAADDRESSTOSTRINGA
1525 (WSAAPI
*LPFN_WSASTRINGTOADDRESSA
)(
1526 IN LPSTR AddressString
,
1527 IN INT AddressFamily
,
1528 IN LPWSAPROTOCOL_INFOA lpProtocolInfo OPTIONAL
,
1529 OUT LPSOCKADDR lpAddress
,
1530 IN OUT LPINT lpAddressLength
);
1533 (WSAAPI
*LPFN_WSASTRINGTOADDRESSW
)(
1534 IN LPWSTR AddressString
,
1535 IN INT AddressFamily
,
1536 IN LPWSAPROTOCOL_INFOW lpProtocolInfo OPTIONAL
,
1537 OUT LPSOCKADDR lpAddress
,
1538 IN OUT LPINT lpAddressLength
);
1541 #define LPFN_WSASTRINGTOADDRESS LPFN_WSASTRINGTOADDRESSW
1543 #define LPFN_WSASTRINGTOADDRESS LPFN_WSASTRINGTOADDRESSA
1547 (WSAAPI
*LPFN_WSALOOKUPSERVICEBEGINA
)(
1548 IN LPWSAQUERYSETA lpqsRestrictions
,
1549 IN DWORD dwControlFlags
,
1550 OUT LPHANDLE lphLookup
);
1553 (WSAAPI
*LPFN_WSALOOKUPSERVICEBEGINW
)(
1554 IN LPWSAQUERYSETW lpqsRestrictions
,
1555 IN DWORD dwControlFlags
,
1556 OUT LPHANDLE lphLookup
);
1559 #define LPFN_WSALOOKUPSERVICEBEGIN LPFN_WSALOOKUPSERVICEBEGINW
1561 #define LPFN_WSALOOKUPSERVICEBEGIN LPFN_WSALOOKUPSERVICEBEGINA
1565 (WSAAPI
*LPFN_WSALOOKUPSERVICENEXTA
)(
1567 IN DWORD dwControlFlags
,
1568 IN OUT LPDWORD lpdwBufferLength
,
1569 OUT LPWSAQUERYSETA lpqsResults
);
1572 (WSAAPI
*LPFN_WSALOOKUPSERVICENEXTW
)(
1574 IN DWORD dwControlFlags
,
1575 IN OUT LPDWORD lpdwBufferLength
,
1576 OUT LPWSAQUERYSETW lpqsResults OPTIONAL
);
1579 #define LPFN_WSALOOKUPSERVICENEXT LPFN_WSALOOKUPSERVICENEXTW
1581 #define LPFN_WSALOOKUPSERVICENEXT LPFN_WSALOOKUPSERVICENEXTA
1585 (WSAAPI
*LPFN_WSALOOKUPSERVICEEND
)(
1589 (WSAAPI
*LPFN_WSAINSTALLSERVICECLASSA
)(
1590 IN LPWSASERVICECLASSINFOA lpServiceClassInfo
);
1593 (WSAAPI
*LPFN_WSAINSTALLSERVICECLASSW
)(
1594 IN LPWSASERVICECLASSINFOW lpServiceClassInfo
);
1597 #define LPFN_WSAINSTALLSERVICECLASS LPFN_WSAINSTALLSERVICECLASSW
1599 #define LPFN_WSAINSTALLSERVICECLASS LPFN_WSAINSTALLSERVICECLASSA
1603 (WSAAPI
*LPFN_WSAREMOVESERVICECLASS
)(
1604 IN LPGUID lpServiceClassId
);
1607 (WSAAPI
*LPFN_WSAGETSERVICECLASSINFOA
)(
1608 IN LPGUID lpProviderId
,
1609 IN LPGUID lpServiceClassId
,
1610 IN OUT LPDWORD lpdwBufSize
,
1611 OUT LPWSASERVICECLASSINFOA lpServiceClassInfo
);
1614 (WSAAPI
*LPFN_WSAGETSERVICECLASSINFOW
)(
1615 IN LPGUID lpProviderId
,
1616 IN LPGUID lpServiceClassId
,
1617 IN OUT LPDWORD lpdwBufSize
,
1618 OUT LPWSASERVICECLASSINFOW lpServiceClassInfo
);
1621 #define LPFN_WSAGETSERVICECLASSINFO LPFN_WSAGETSERVICECLASSINFOW
1623 #define LPFN_WSAGETSERVICECLASSINFO LPFN_WSAGETSERVICECLASSINFOA
1627 (WSAAPI
*LPFN_WSAENUMNAMESPACEPROVIDERSA
)(
1628 IN OUT LPDWORD lpdwBufferLength
,
1629 OUT LPWSANAMESPACE_INFOA lpnspBuffer
);
1632 (WSAAPI
*LPFN_WSAENUMNAMESPACEPROVIDERSW
)(
1633 IN OUT LPDWORD lpdwBufferLength
,
1634 OUT LPWSANAMESPACE_INFOW lpnspBuffer
);
1637 #define LPFN_WSAENUMNAMESPACEPROVIDERS LPFN_WSAENUMNAMESPACEPROVIDERSW
1639 #define LPFN_WSAENUMNAMESPACEPROVIDERS LPFN_WSAENUMNAMESPACEPROVIDERSA
1643 (WSAAPI
*LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA
)(
1644 IN LPGUID lpServiceClassId
,
1645 OUT LPSTR lpszServiceClassName
,
1646 IN OUT LPDWORD lpdwBufferLength
);
1649 (WSAAPI
*LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW
)(
1650 IN LPGUID lpServiceClassId
,
1651 OUT LPWSTR lpszServiceClassName
,
1652 IN OUT LPDWORD lpdwBufferLength
);
1655 #define LPFN_WSAGETSERVICECLASSNAMEBYCLASSID LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW
1657 #define LPFN_WSAGETSERVICECLASSNAMEBYCLASSID LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA
1661 (WSAAPI
*LPFN_WSASETSERVICEA
)(
1662 IN LPWSAQUERYSETA lpqsRegInfo
,
1663 IN WSAESETSERVICEOP essoperation
,
1664 IN DWORD dwControlFlags
);
1667 (WSAAPI
*LPFN_WSASETSERVICEW
)(
1668 IN LPWSAQUERYSETW lpqsRegInfo
,
1669 IN WSAESETSERVICEOP essoperation
,
1670 IN DWORD dwControlFlags
);
1673 #define LPFN_WSASETSERVICE LPFN_WSASETSERVICEW
1675 #define LPFN_WSASETSERVICE LPFN_WSASETSERVICEA
1679 (WSAAPI
*LPFN_WSAPROVIDERCONFIGCHANGE
)(
1680 IN OUT LPHANDLE lpNotificationHandle OPTIONAL
,
1681 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
1682 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
1684 #if(_WIN32_WINNT >= 0x0501)
1686 (WSAAPI
*LPFN_WSANSPIOCTL
)(
1688 IN DWORD dwControlCode
,
1689 IN LPVOID lpvInBuffer OPTIONAL
,
1690 IN DWORD cbInBuffer
,
1691 OUT LPVOID lpvOutBuffer OPTIONAL
,
1692 IN DWORD cbOutBuffer
,
1693 OUT LPDWORD lpcbBytesReturned
,
1694 IN LPWSACOMPLETION lpCompletion OPTIONAL
);
1695 #endif /* (_WIN32_WINNT >= 0x0501) */
1697 #if (_WIN32_WINNT >= 0x0600)
1700 (WSAAPI
*LPFN_WSAENUMNAMESPACEPROVIDERSEXA
)(
1701 IN OUT LPDWORD lpdwBufferLength
,
1702 OUT LPWSANAMESPACE_INFOEXA lpnspBuffer
);
1705 (WSAAPI
*LPFN_WSAENUMNAMESPACEPROVIDERSEXW
)(
1706 IN OUT LPDWORD lpdwBufferLength
,
1707 OUT LPWSANAMESPACE_INFOEXW lpnspBuffer
);
1710 #define LPFN_WSAENUMNAMESPACEPROVIDERSEX LPFN_WSAENUMNAMESPACEPROVIDERSEXW
1712 #define LPFN_WSAENUMNAMESPACEPROVIDERSEX LPFN_WSAENUMNAMESPACEPROVIDERSEXA
1715 #endif /* (_WIN32_WINNT >= 0x600) */
1717 #endif /* INCL_WINSOCK_API_TYPEDEFS */
1719 #if INCL_WINSOCK_API_PROTOTYPES
1726 OUT
struct sockaddr FAR
*addr OPTIONAL
,
1727 IN OUT
int FAR
*addrlen OPTIONAL
);
1734 IN
const struct sockaddr FAR
*addr
,
1748 IN
const struct sockaddr FAR
*name
,
1757 IN OUT u_long FAR
*argp
);
1764 OUT
struct sockaddr FAR
*name
,
1765 IN OUT
int FAR
*namelen
);
1772 OUT
struct sockaddr FAR
*name
,
1773 IN OUT
int FAR
*namelen
);
1782 OUT
char FAR
*optval
,
1783 IN OUT
int FAR
*optlen
);
1789 IN u_long hostlong
);
1795 IN u_short hostshort
);
1801 IN
const char FAR
*cp
);
1807 IN
struct in_addr in
);
1826 IN u_short netshort
);
1845 OUT
struct sockaddr FAR
*from OPTIONAL
,
1846 IN OUT
int FAR
*fromlen OPTIONAL
);
1853 IN OUT fd_set FAR
*readfds OPTIONAL
,
1854 IN OUT fd_set FAR
*writefds OPTIONAL
,
1855 IN OUT fd_set FAR
*exceptfds OPTIONAL
,
1856 IN
const struct timeval FAR
*timeout OPTIONAL
);
1863 IN
const char FAR
*buf
,
1872 IN
const char FAR
*buf
,
1875 IN
const struct sockaddr FAR
*to OPTIONAL
,
1885 IN
const char FAR
*optval OPTIONAL
,
1904 struct hostent FAR
*
1907 IN
const char FAR
*addr
,
1912 struct hostent FAR
*
1915 IN
const char FAR
*name
);
1925 struct servent FAR
*
1929 IN
const char FAR
*proto
);
1932 struct servent FAR
*
1935 IN
const char FAR
*name
,
1936 IN
const char FAR
*proto
);
1939 struct protoent FAR
*
1945 struct protoent FAR
*
1948 IN
const char FAR
*name
);
1954 IN WORD wVersionRequired
,
1955 OUT LPWSADATA lpWSAData
);
1971 WSAGetLastError(void);
1976 WSAIsBlocking(void);
1981 WSAUnhookBlockingHook(void);
1987 IN FARPROC lpBlockFunc
);
1992 WSACancelBlockingCall(void);
1997 WSAAsyncGetServByName(
2000 IN
const char FAR
*name
,
2001 IN
const char FAR
*proto
,
2008 WSAAsyncGetServByPort(
2012 IN
const char FAR
*proto
,
2019 WSAAsyncGetProtoByName(
2022 IN
const char FAR
*name
,
2029 WSAAsyncGetProtoByNumber(
2039 WSAAsyncGetHostByName(
2042 IN
const char FAR
*name
,
2049 WSAAsyncGetHostByAddr(
2052 IN
const char FAR
*addr
,
2061 WSACancelAsyncRequest(
2062 IN HANDLE hAsyncTaskHandle
);
2078 OUT
struct sockaddr FAR
*addr OPTIONAL
,
2079 IN OUT LPINT addrlen OPTIONAL
,
2080 IN LPCONDITIONPROC lpfnCondition OPTIONAL
,
2081 IN DWORD_PTR dwCallbackData OPTIONAL
);
2087 IN WSAEVENT hEvent
);
2094 IN
const struct sockaddr FAR
*name
,
2096 IN LPWSABUF lpCallerData OPTIONAL
,
2097 OUT LPWSABUF lpCalleeData OPTIONAL
,
2098 IN LPQOS lpSQOS OPTIONAL
,
2099 IN LPQOS lpGQOS OPTIONAL
);
2102 #define WSAConnectByName WSAConnectByNameW
2104 #define WSAConnectByName WSAConnectByNameA
2112 IN LPWSTR servicename
,
2113 IN OUT LPDWORD LocalAddressLength
,
2114 OUT LPSOCKADDR LocalAddress
,
2115 IN OUT LPDWORD RemoteAddressLength
,
2116 OUT LPSOCKADDR RemoteAddress
,
2117 IN
const struct timeval
*timeout
,
2118 IN LPWSAOVERLAPPED Reserved OPTIONAL
);
2125 IN LPCSTR servicename
,
2126 IN OUT LPDWORD LocalAddressLength
,
2127 OUT LPSOCKADDR LocalAddress
,
2128 IN OUT LPDWORD RemoteAddressLength
,
2129 OUT LPSOCKADDR RemoteAddress
,
2130 IN
const struct timeval
*timeout
,
2131 IN LPWSAOVERLAPPED Reserved OPTIONAL
);
2137 IN PSOCKET_ADDRESS_LIST SocketAddress
,
2138 IN OUT LPDWORD LocalAddressLength
,
2139 OUT LPSOCKADDR LocalAddress
,
2140 IN OUT LPDWORD RemoteAddressLength
,
2141 OUT LPSOCKADDR RemoteAddress
,
2142 IN
const struct timeval
*timeout
,
2143 IN LPWSAOVERLAPPED Reserved OPTIONAL
);
2148 WSACreateEvent(void);
2153 WSADuplicateSocketA(
2155 IN DWORD dwProcessId
,
2156 OUT LPWSAPROTOCOL_INFOA lpProtocolInfo
);
2161 WSADuplicateSocketW(
2163 IN DWORD dwProcessId
,
2164 OUT LPWSAPROTOCOL_INFOW lpProtocolInfo
);
2167 #define WSADuplicateSocket WSADuplicateSocketW
2169 #define WSADuplicateSocket WSADuplicateSocketA
2175 WSAEnumNetworkEvents(
2177 IN WSAEVENT hEventObject
,
2178 OUT LPWSANETWORKEVENTS lpNetworkEvents
);
2184 IN LPINT lpiProtocols OPTIONAL
,
2185 OUT LPWSAPROTOCOL_INFOA lpProtocolBuffer OPTIONAL
,
2186 IN OUT LPDWORD lpdwBufferLength
);
2192 IN LPINT lpiProtocols OPTIONAL
,
2193 OUT LPWSAPROTOCOL_INFOW lpProtocolBuffer OPTIONAL
,
2194 IN OUT LPDWORD lpdwBufferLength
);
2197 #define WSAEnumProtocols WSAEnumProtocolsW
2199 #define WSAEnumProtocols WSAEnumProtocolsA
2207 IN WSAEVENT hEventObject
,
2208 IN
long lNetworkEvents
);
2213 WSAGetOverlappedResult(
2215 IN LPWSAOVERLAPPED lpOverlapped
,
2216 OUT LPDWORD lpcbTransfer
,
2218 OUT LPDWORD lpdwFlags
);
2225 IN LPWSABUF lpQOSName
,
2234 OUT u_long FAR
*lpnetlong
);
2241 IN u_short hostshort
,
2242 OUT u_short FAR
*lpnetshort
);
2249 IN DWORD dwIoControlCode
,
2250 IN LPVOID lpvInBuffer OPTIONAL
,
2251 IN DWORD cbInBuffer
,
2252 OUT LPVOID lpvOutBuffer OPTIONAL
,
2253 IN DWORD cbOutBuffer
,
2254 OUT LPDWORD lpcbBytesReturned
,
2255 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
2256 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
2263 IN
const struct sockaddr FAR
*name
,
2265 IN LPWSABUF lpCallerData OPTIONAL
,
2266 OUT LPWSABUF lpCalleeData OPTIONAL
,
2267 IN LPQOS lpSQOS OPTIONAL
,
2268 IN LPQOS lpGQOS OPTIONAL
,
2277 OUT u_long FAR
*lphostlong
);
2284 IN u_short netshort
,
2285 OUT u_short FAR
*lphostshort
);
2292 IN LPWSABUF lpBuffers
,
2293 IN DWORD dwBufferCount
,
2294 OUT LPDWORD lpNumberOfBytesRecvd OPTIONAL
,
2295 IN OUT LPDWORD lpFlags
,
2296 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
2297 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
2304 IN LPWSABUF lpInboundDisconnectData OPTIONAL
);
2311 IN OUT LPWSABUF lpBuffers
,
2312 IN DWORD dwBufferCount
,
2313 OUT LPDWORD lpNumberOfBytesRecvd OPTIONAL
,
2314 IN OUT LPDWORD lpFlags
,
2315 OUT
struct sockaddr FAR
*lpFrom
,
2316 IN OUT LPINT lpFromlen OPTIONAL
,
2317 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
2318 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
2324 IN WSAEVENT hEvent
);
2331 IN LPWSABUF lpOutboundDisconnectData OPTIONAL
);
2338 IN LPWSABUF lpBuffers
,
2339 IN DWORD dwBufferCount
,
2340 OUT LPDWORD lpNumberOfBytesSent OPTIONAL
,
2342 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
2343 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
2350 IN LPWSABUF lpBuffers
,
2351 IN DWORD dwBufferCount
,
2352 OUT LPDWORD lpNumberOfBytesSent OPTIONAL
,
2354 IN
const struct sockaddr FAR
*lpTo OPTIONAL
,
2356 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
2357 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
2363 IN WSAEVENT hEvent
);
2372 IN LPWSAPROTOCOL_INFOA lpProtocolInfo OPTIONAL
,
2383 IN LPWSAPROTOCOL_INFOW lpProtocolInfo OPTIONAL
,
2388 #define WSASocket WSASocketW
2390 #define WSASocket WSASocketA
2396 WSAWaitForMultipleEvents(
2398 IN
const WSAEVENT FAR
*lphEvents
,
2401 IN BOOL fAlertable
);
2406 WSAAddressToStringA(
2407 IN LPSOCKADDR lpsaAddress
,
2408 IN DWORD dwAddressLength
,
2409 IN LPWSAPROTOCOL_INFOA lpProtocolInfo OPTIONAL
,
2410 OUT LPSTR lpszAddressString
,
2411 IN OUT LPDWORD lpdwAddressStringLength
);
2416 WSAAddressToStringW(
2417 IN LPSOCKADDR lpsaAddress
,
2418 IN DWORD dwAddressLength
,
2419 IN LPWSAPROTOCOL_INFOW lpProtocolInfo OPTIONAL
,
2420 OUT LPWSTR lpszAddressString
,
2421 IN OUT LPDWORD lpdwAddressStringLength
);
2424 #define WSAAddressToString WSAAddressToStringW
2426 #define WSAAddressToString WSAAddressToStringA
2432 WSAStringToAddressA(
2433 IN LPSTR AddressString
,
2434 IN INT AddressFamily
,
2435 IN LPWSAPROTOCOL_INFOA lpProtocolInfo OPTIONAL
,
2436 OUT LPSOCKADDR lpAddress
,
2437 IN OUT LPINT lpAddressLength
);
2442 WSAStringToAddressW(
2443 IN LPWSTR AddressString
,
2444 IN INT AddressFamily
,
2445 IN LPWSAPROTOCOL_INFOW lpProtocolInfo OPTIONAL
,
2446 OUT LPSOCKADDR lpAddress
,
2447 IN OUT LPINT lpAddressLength
);
2450 #define WSAStringToAddress WSAStringToAddressW
2452 #define WSAStringToAddress WSAStringToAddressA
2458 WSALookupServiceBeginA(
2459 IN LPWSAQUERYSETA lpqsRestrictions
,
2460 IN DWORD dwControlFlags
,
2461 OUT LPHANDLE lphLookup
);
2466 WSALookupServiceBeginW(
2467 IN LPWSAQUERYSETW lpqsRestrictions
,
2468 IN DWORD dwControlFlags
,
2469 OUT LPHANDLE lphLookup
);
2472 #define WSALookupServiceBegin WSALookupServiceBeginW
2474 #define WSALookupServiceBegin WSALookupServiceBeginA
2480 WSALookupServiceNextA(
2482 IN DWORD dwControlFlags
,
2483 IN OUT LPDWORD lpdwBufferLength
,
2484 OUT LPWSAQUERYSETA lpqsResults
);
2489 WSALookupServiceNextW(
2491 IN DWORD dwControlFlags
,
2492 IN OUT LPDWORD lpdwBufferLength
,
2493 OUT LPWSAQUERYSETW lpqsResults OPTIONAL
);
2496 #define WSALookupServiceNext WSALookupServiceNextW
2498 #define WSALookupServiceNext WSALookupServiceNextA
2504 WSALookupServiceEnd(
2510 WSAInstallServiceClassA(
2511 IN LPWSASERVICECLASSINFOA lpServiceClassInfo
);
2516 WSAInstallServiceClassW(
2517 IN LPWSASERVICECLASSINFOW lpServiceClassInfo
);
2520 #define WSAInstallServiceClass WSAInstallServiceClassW
2522 #define WSAInstallServiceClass WSAInstallServiceClassA
2528 WSARemoveServiceClass(
2529 IN LPGUID lpServiceClassId
);
2534 WSAGetServiceClassInfoA(
2535 IN LPGUID lpProviderId
,
2536 IN LPGUID lpServiceClassId
,
2537 IN OUT LPDWORD lpdwBufSize
,
2538 OUT LPWSASERVICECLASSINFOA lpServiceClassInfo
);
2543 WSAGetServiceClassInfoW(
2544 IN LPGUID lpProviderId
,
2545 IN LPGUID lpServiceClassId
,
2546 IN OUT LPDWORD lpdwBufSize
,
2547 OUT LPWSASERVICECLASSINFOW lpServiceClassInfo
);
2550 #define WSAGetServiceClassInfo WSAGetServiceClassInfoW
2552 #define WSAGetServiceClassInfo WSAGetServiceClassInfoA
2558 WSAEnumNameSpaceProvidersA(
2559 IN OUT LPDWORD lpdwBufferLength
,
2560 OUT LPWSANAMESPACE_INFOA lpnspBuffer
);
2565 WSAEnumNameSpaceProvidersW(
2566 IN OUT LPDWORD lpdwBufferLength
,
2567 OUT LPWSANAMESPACE_INFOW lpnspBuffer
);
2570 #define WSAEnumNameSpaceProviders WSAEnumNameSpaceProvidersW
2572 #define WSAEnumNameSpaceProviders WSAEnumNameSpaceProvidersA
2578 WSAGetServiceClassNameByClassIdA(
2579 IN LPGUID lpServiceClassId
,
2580 OUT LPSTR lpszServiceClassName
,
2581 IN OUT LPDWORD lpdwBufferLength
);
2586 WSAGetServiceClassNameByClassIdW(
2587 IN LPGUID lpServiceClassId
,
2588 OUT LPWSTR lpszServiceClassName
,
2589 IN OUT LPDWORD lpdwBufferLength
);
2592 #define WSAGetServiceClassNameByClassId WSAGetServiceClassNameByClassIdW
2594 #define WSAGetServiceClassNameByClassId WSAGetServiceClassNameByClassIdA
2601 IN LPWSAQUERYSETA lpqsRegInfo
,
2602 IN WSAESETSERVICEOP essoperation
,
2603 IN DWORD dwControlFlags
);
2609 IN LPWSAQUERYSETW lpqsRegInfo
,
2610 IN WSAESETSERVICEOP essoperation
,
2611 IN DWORD dwControlFlags
);
2614 #define WSASetService WSASetServiceW
2616 #define WSASetService WSASetServiceA
2622 WSAProviderConfigChange(
2623 IN OUT LPHANDLE lpNotificationHandle OPTIONAL
,
2624 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
2625 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
2627 #if(_WIN32_WINNT >= 0x0501)
2633 IN DWORD dwControlCode
,
2634 IN LPVOID lpvInBuffer OPTIONAL
,
2635 IN DWORD cbInBuffer
,
2636 OUT LPVOID lpvOutBuffer OPTIONAL
,
2637 IN DWORD cbOutBuffer
,
2638 OUT LPDWORD lpcbBytesReturned
,
2639 IN LPWSACOMPLETION lpCompletion OPTIONAL
);
2640 #endif /* (_WIN32_WINNT >= 0x0501) */
2642 #if(_WIN32_WINNT >= 0x0600)
2651 OUT LPDWORD lpNumberOfBytesSent OPTIONAL
,
2652 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
2653 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
2658 WSAEnumNameSpaceProvidersExA(
2659 IN OUT LPDWORD lpdwBufferLength
,
2660 OUT LPWSANAMESPACE_INFOEXA lpnspBuffer
);
2665 WSAEnumNameSpaceProvidersExW(
2666 IN OUT LPDWORD lpdwBufferLength
,
2667 OUT LPWSANAMESPACE_INFOEXW lpnspBuffer
);
2670 #define WSAEnumNameSpaceProvidersEx WSAEnumNameSpaceProvidersExW
2672 #define WSAEnumNameSpaceProvidersEx WSAEnumNameSpaceProvidersExA
2679 IN OUT LPWSAPOLLFD fdArray
,
2683 #endif /* (_WIN32_WINNT >= 0x0600) */
2685 #endif /* INCL_WINSOCK_API_PROTOTYPES */
2687 typedef struct sockaddr_in FAR
*LPSOCKADDR_IN
;
2688 typedef struct linger LINGER
;
2689 typedef struct linger
*PLINGER
;
2690 typedef struct linger FAR
*LPLINGER
;
2691 typedef struct fd_set FD_SET
;
2692 typedef struct fd_set
*PFD_SET
;
2693 typedef struct fd_set FAR
*LPFD_SET
;
2694 typedef struct hostent HOSTENT
;
2695 typedef struct hostent
*PHOSTENT
;
2696 typedef struct hostent FAR
*LPHOSTENT
;
2697 typedef struct servent SERVENT
;
2698 typedef struct servent
*PSERVENT
;
2699 typedef struct servent FAR
*LPSERVENT
;
2700 typedef struct protoent PROTOENT
;
2701 typedef struct protoent
*PPROTOENT
;
2702 typedef struct protoent FAR
*LPPROTOENT
;
2703 typedef struct timeval TIMEVAL
;
2704 typedef struct timeval
*PTIMEVAL
;
2705 typedef struct timeval FAR
*LPTIMEVAL
;
2707 #define WSAMAKEASYNCREPLY(buflen,error) MAKELONG(buflen,error)
2708 #define WSAMAKESELECTREPLY(event,error) MAKELONG(event,error)
2709 #define WSAGETASYNCBUFLEN(lParam) LOWORD(lParam)
2710 #define WSAGETASYNCERROR(lParam) HIWORD(lParam)
2711 #define WSAGETSELECTEVENT(lParam) LOWORD(lParam)
2712 #define WSAGETSELECTERROR(lParam) HIWORD(lParam)
2718 #ifdef _NEED_POPPACK
2719 #include <poppack.h>
2723 #if(_WIN32_WINNT >= 0x0501)
2725 #include <wsipv6ok.h>
2729 #endif /* !(defined _WINSOCK2API_ || defined _WINSOCKAPI_) */