Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenwinsock.h
Go to the documentation of this file.
00001 /* 00002 Definitions for winsock 1.1 00003 00004 Portions Copyright (c) 1980, 1983, 1988, 1993 00005 The Regents of the University of California. All rights reserved. 00006 00007 Portions Copyright (c) 1993 by Digital Equipment Corporation. 00008 */ 00009 00010 #pragma once 00011 00012 #define _WINSOCKAPI_ 00013 00014 #ifndef _INC_WINDOWS 00015 #include <windows.h> 00016 #endif 00017 00018 #ifndef _M_AMD64 00019 #if !defined(__ROS_LONG64__) 00020 #ifdef __WINESRC__ 00021 #define __ROS_LONG64__ 00022 #endif 00023 #endif 00024 #endif 00025 00026 #define _GNU_H_WINDOWS32_SOCKETS 00027 00028 #ifdef __cplusplus 00029 extern "C" { 00030 #endif 00031 00032 #if !defined ( _BSDTYPES_DEFINED ) 00033 00034 /* also defined in gmon.h and in cygwin's sys/types */ 00035 typedef unsigned char u_char; 00036 typedef unsigned short u_short; 00037 typedef unsigned int u_int; 00038 00039 #ifndef __ROS_LONG64__ 00040 typedef unsigned long u_long; 00041 #else 00042 typedef unsigned int u_long; 00043 #endif 00044 00045 #define _BSDTYPES_DEFINED 00046 00047 #endif /* !defined ( _BSDTYPES_DEFINED ) */ 00048 00049 typedef UINT_PTR SOCKET; 00050 00051 #ifndef FD_SETSIZE 00052 #define FD_SETSIZE 64 00053 #endif 00054 00055 /* shutdown() how types */ 00056 #define SD_RECEIVE 0x00 00057 #define SD_SEND 0x01 00058 #define SD_BOTH 0x02 00059 00060 #ifndef _SYS_TYPES_FD_SET 00061 00062 /* fd_set may have be defined by the newlib <sys/types.h> 00063 * if __USE_W32_SOCKETS not defined. 00064 */ 00065 #ifdef fd_set 00066 #undef fd_set 00067 #endif 00068 typedef struct fd_set { 00069 u_int fd_count; 00070 SOCKET fd_array[FD_SETSIZE]; 00071 } fd_set; 00072 00073 extern int PASCAL __WSAFDIsSet(SOCKET,fd_set FAR*); 00074 00075 #ifndef FD_CLR 00076 #define FD_CLR(fd,set) do { u_int __i;\ 00077 for (__i = 0; __i < ((fd_set FAR*)(set))->fd_count ; __i++) {\ 00078 if (((fd_set FAR*)(set))->fd_array[__i] == (fd)) {\ 00079 while (__i < ((fd_set FAR*)(set))->fd_count-1) {\ 00080 ((fd_set FAR*)(set))->fd_array[__i] = ((fd_set FAR*)(set))->fd_array[__i+1];\ 00081 __i++;\ 00082 }\ 00083 ((fd_set FAR*)(set))->fd_count--;\ 00084 break;\ 00085 }\ 00086 }\ 00087 } while (0) 00088 #endif /* FD_CLR */ 00089 00090 #ifndef FD_SET 00091 #define FD_SET(fd, set) do { \ 00092 if (((fd_set FAR*)(set))->fd_count < FD_SETSIZE) \ 00093 ((fd_set FAR*)(set))->fd_array[((fd_set FAR*)(set))->fd_count++]=(fd);\ 00094 }while (0) 00095 #endif 00096 00097 #ifndef FD_ZERO 00098 #define FD_ZERO(set) (((fd_set FAR*)(set))->fd_count=0) 00099 #endif 00100 00101 #ifndef FD_ISSET 00102 #define FD_ISSET(fd, set) __WSAFDIsSet((SOCKET)(fd), (fd_set FAR*)(set)) 00103 #endif 00104 00105 00106 00107 #elif !defined(USE_SYS_TYPES_FD_SET) 00108 #warning "fd_set and associated macros have been defined in sys/types. \ 00109 This can cause runtime problems with W32 sockets" 00110 #endif /* ndef _SYS_TYPES_FD_SET */ 00111 00112 #if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) 00113 00114 #ifndef _TIMEVAL_DEFINED /* also in sys/time.h */ 00115 #define _TIMEVAL_DEFINED 00116 00117 struct timeval { 00118 LONG tv_sec; 00119 LONG tv_usec; 00120 }; 00121 00122 #define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) 00123 00124 #define timercmp(tvp, uvp, cmp) \ 00125 (((tvp)->tv_sec != (uvp)->tv_sec) ? \ 00126 ((tvp)->tv_sec cmp (uvp)->tv_sec) : \ 00127 ((tvp)->tv_usec cmp (uvp)->tv_usec)) 00128 00129 #define timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0 00130 00131 #endif /* _TIMEVAL_DEFINED */ 00132 00133 #define h_addr h_addr_list[0] 00134 00135 struct hostent { 00136 char *h_name; 00137 char **h_aliases; 00138 short h_addrtype; 00139 short h_length; 00140 char **h_addr_list; 00141 }; 00142 00143 struct linger { 00144 u_short l_onoff; 00145 u_short l_linger; 00146 }; 00147 00148 #define _IO(x,y) (IOC_VOID|((x)<<8)|(y)) 00149 #define _IOR(x,y,t) (IOC_OUT|(((LONG)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y)) 00150 #define _IOW(x,y,t) (IOC_IN|(((LONG)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y)) 00151 #define FIONBIO _IOW('f', 126, u_long) 00152 00153 struct netent { 00154 char * n_name; 00155 char **n_aliases; 00156 short n_addrtype; 00157 u_long n_net; 00158 }; 00159 00160 struct servent { 00161 char *s_name; 00162 char **s_aliases; 00163 #ifdef _WIN64 00164 char *s_proto; 00165 short s_port; 00166 #else 00167 short s_port; 00168 char *s_proto; 00169 #endif 00170 }; 00171 00172 struct protoent { 00173 char *p_name; 00174 char **p_aliases; 00175 short p_proto; 00176 }; 00177 00178 #define IP_OPTIONS 1 00179 00180 #define SO_DEBUG 1 00181 #define SO_ACCEPTCONN 2 00182 #define SO_REUSEADDR 4 00183 #define SO_KEEPALIVE 8 00184 #define SO_DONTROUTE 16 00185 #define SO_BROADCAST 32 00186 #define SO_USELOOPBACK 64 00187 #define SO_LINGER 128 00188 #define SO_OOBINLINE 256 00189 #define SO_DONTLINGER (u_int)(~SO_LINGER) 00190 #define SO_SNDBUF 0x1001 00191 #define SO_RCVBUF 0x1002 00192 #define SO_SNDLOWAT 0x1003 00193 #define SO_RCVLOWAT 0x1004 00194 #define SO_SNDTIMEO 0x1005 00195 #define SO_RCVTIMEO 0x1006 00196 #define SO_ERROR 0x1007 00197 #define SO_TYPE 0x1008 00198 00199 #define SO_CONNDATA 0x7000 00200 #define SO_CONNOPT 0x7001 00201 #define SO_DISCDATA 0x7002 00202 #define SO_DISCOPT 0x7003 00203 #define SO_CONNDATALEN 0x7004 00204 #define SO_CONNOPTLEN 0x7005 00205 #define SO_DISCDATALEN 0x7006 00206 #define SO_DISCOPTLEN 0x7007 00207 #define SO_OPENTYPE 0x7008 00208 #define SO_MAXDG 0x7009 00209 #define SO_MAXPATHDG 0x700A 00210 #define SO_UPDATE_ACCEPT_CONTEXT 0x700B 00211 #define SO_CONNECT_TIME 0x700C 00212 00213 #define SO_SYNCHRONOUS_ALERT 0x10 00214 #define SO_SYNCHRONOUS_NONALERT 0x20 00215 00216 #define AF_MAX 24 00217 00218 struct sockaddr { 00219 u_short sa_family; 00220 char sa_data[14]; 00221 }; 00222 00223 #define MSG_OOB 1 00224 #define MSG_PEEK 2 00225 #define MSG_DONTROUTE 4 00226 00227 #define h_errno WSAGetLastError() 00228 #define HOST_NOT_FOUND WSAHOST_NOT_FOUND 00229 #define TRY_AGAIN WSATRY_AGAIN 00230 #define NO_RECOVERY WSANO_RECOVERY 00231 #define NO_DATA WSANO_DATA 00232 #define NO_ADDRES WSANO_ADDRESS 00233 00234 u_long PASCAL htonl(u_long); 00235 u_long PASCAL ntohl(u_long); 00236 u_short PASCAL htons(u_short); 00237 u_short PASCAL ntohs(u_short); 00238 int PASCAL select(int nfds,fd_set*,fd_set*,fd_set*,const struct timeval*); 00239 int PASCAL gethostname(char*,int); 00240 00241 #endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */ 00242 00243 #define IOCPARM_MASK 0x7f 00244 #define IOC_VOID 0x20000000 00245 #define IOC_OUT 0x40000000 00246 #define IOC_IN 0x80000000 00247 #define IOC_INOUT (IOC_IN|IOC_OUT) 00248 00249 #define FIONREAD _IOR('f', 127, u_long) 00250 #define FIOASYNC _IOW('f', 125, u_long) 00251 #define SIOCSHIWAT _IOW('s', 0, u_long) 00252 #define SIOCGHIWAT _IOR('s', 1, u_long) 00253 #define SIOCSLOWAT _IOW('s', 2, u_long) 00254 #define SIOCGLOWAT _IOR('s', 3, u_long) 00255 #define SIOCATMARK _IOR('s', 7, u_long) 00256 00257 #define IPPROTO_IP 0 00258 #define IPPROTO_ICMP 1 00259 #define IPPROTO_IGMP 2 00260 #define IPPROTO_GGP 3 00261 #define IPPROTO_TCP 6 00262 #define IPPROTO_PUP 12 00263 #define IPPROTO_UDP 17 00264 #define IPPROTO_IDP 22 00265 #define IPPROTO_ND 77 00266 #define IPPROTO_RAW 255 00267 #define IPPROTO_MAX 256 00268 #define IPPORT_ECHO 7 00269 #define IPPORT_DISCARD 9 00270 #define IPPORT_SYSTAT 11 00271 #define IPPORT_DAYTIME 13 00272 #define IPPORT_NETSTAT 15 00273 #define IPPORT_FTP 21 00274 #define IPPORT_TELNET 23 00275 #define IPPORT_SMTP 25 00276 #define IPPORT_TIMESERVER 37 00277 #define IPPORT_NAMESERVER 42 00278 #define IPPORT_WHOIS 43 00279 #define IPPORT_MTP 57 00280 #define IPPORT_TFTP 69 00281 #define IPPORT_RJE 77 00282 #define IPPORT_FINGER 79 00283 #define IPPORT_TTYLINK 87 00284 #define IPPORT_SUPDUP 95 00285 #define IPPORT_EXECSERVER 512 00286 #define IPPORT_LOGINSERVER 513 00287 #define IPPORT_CMDSERVER 514 00288 #define IPPORT_EFSSERVER 520 00289 #define IPPORT_BIFFUDP 512 00290 #define IPPORT_WHOSERVER 513 00291 #define IPPORT_ROUTESERVER 520 00292 #define IPPORT_RESERVED 1024 00293 #define IMPLINK_IP 155 00294 #define IMPLINK_LOWEXPER 156 00295 #define IMPLINK_HIGHEXPER 158 00296 00297 #include <inaddr.h> 00298 00299 #define IN_CLASSA(i) ((LONG)(i)&0x80000000) 00300 #define IN_CLASSA_NET 0xff000000 00301 #define IN_CLASSA_NSHIFT 24 00302 #define IN_CLASSA_HOST 0x00ffffff 00303 #define IN_CLASSA_MAX 128 00304 #define IN_CLASSB(i) (((LONG)(i)&0xc0000000)==0x80000000) 00305 #define IN_CLASSB_NET 0xffff0000 00306 #define IN_CLASSB_NSHIFT 16 00307 #define IN_CLASSB_HOST 0x0000ffff 00308 #define IN_CLASSB_MAX 65536 00309 #define IN_CLASSC(i) (((LONG)(i)&0xe0000000)==0xc0000000) 00310 #define IN_CLASSC_NET 0xffffff00 00311 #define IN_CLASSC_NSHIFT 8 00312 #define IN_CLASSC_HOST 0xff 00313 #define INADDR_ANY (u_long)0 00314 #define INADDR_LOOPBACK 0x7f000001 00315 #define INADDR_BROADCAST (u_long)0xffffffff 00316 #define INADDR_NONE 0xffffffff 00317 00318 #define WSADESCRIPTION_LEN 256 00319 #define WSASYS_STATUS_LEN 128 00320 00321 #define IP_MULTICAST_IF 2 00322 #define IP_MULTICAST_TTL 3 00323 #define IP_MULTICAST_LOOP 4 00324 #define IP_ADD_MEMBERSHIP 5 00325 #define IP_DROP_MEMBERSHIP 6 00326 #define IP_TTL 7 00327 #define IP_TOS 8 00328 #define IP_DONTFRAGMENT 9 00329 00330 #define IP_DEFAULT_MULTICAST_TTL 1 00331 #define IP_DEFAULT_MULTICAST_LOOP 1 00332 #define IP_MAX_MEMBERSHIPS 20 00333 00334 #define INVALID_SOCKET (SOCKET)(~0) 00335 #define SOCKET_ERROR (-1) 00336 00337 #define SOCK_STREAM 1 00338 #define SOCK_DGRAM 2 00339 #define SOCK_RAW 3 00340 #define SOCK_RDM 4 00341 #define SOCK_SEQPACKET 5 00342 00343 #define TCP_NODELAY 0x0001 00344 #define TCP_BSDURGENT 0x7000 00345 00346 #define AF_UNSPEC 0 00347 #define AF_UNIX 1 00348 #define AF_INET 2 00349 #define AF_IMPLINK 3 00350 #define AF_PUP 4 00351 #define AF_CHAOS 5 00352 #define AF_IPX 6 00353 #define AF_NS 6 00354 #define AF_ISO 7 00355 #define AF_OSI AF_ISO 00356 #define AF_ECMA 8 00357 #define AF_DATAKIT 9 00358 #define AF_CCITT 10 00359 #define AF_SNA 11 00360 #define AF_DECnet 12 00361 #define AF_DLI 13 00362 #define AF_LAT 14 00363 #define AF_HYLINK 15 00364 #define AF_APPLETALK 16 00365 #define AF_NETBIOS 17 00366 #define AF_VOICEVIEW 18 00367 #define AF_FIREFOX 19 00368 #define AF_UNKNOWN1 20 00369 #define AF_BAN 21 00370 #define AF_ATM 22 00371 #define AF_INET6 23 00372 00373 #define PF_UNSPEC AF_UNSPEC 00374 #define PF_UNIX AF_UNIX 00375 #define PF_INET AF_INET 00376 #define PF_IMPLINK AF_IMPLINK 00377 #define PF_PUP AF_PUP 00378 #define PF_CHAOS AF_CHAOS 00379 #define PF_NS AF_NS 00380 #define PF_IPX AF_IPX 00381 #define PF_ISO AF_ISO 00382 #define PF_OSI AF_OSI 00383 #define PF_ECMA AF_ECMA 00384 #define PF_DATAKIT AF_DATAKIT 00385 #define PF_CCITT AF_CCITT 00386 #define PF_SNA AF_SNA 00387 #define PF_DECnet AF_DECnet 00388 #define PF_DLI AF_DLI 00389 #define PF_LAT AF_LAT 00390 #define PF_HYLINK AF_HYLINK 00391 #define PF_APPLETALK AF_APPLETALK 00392 #define PF_VOICEVIEW AF_VOICEVIEW 00393 #define PF_FIREFOX AF_FIREFOX 00394 #define PF_UNKNOWN1 AF_UNKNOWN1 00395 #define PF_BAN AF_BAN 00396 #define PF_ATM AF_ATM 00397 #define PF_INET6 AF_INET6 00398 #define PF_MAX AF_MAX 00399 00400 #define SOL_SOCKET 0xffff 00401 #define SOMAXCONN 5 00402 00403 #define MSG_MAXIOVLEN 16 00404 #define MSG_PARTIAL 0x8000 00405 #define MAXGETHOSTSTRUCT 1024 00406 00407 #define FD_READ 1 00408 #define FD_WRITE 2 00409 #define FD_OOB 4 00410 #define FD_ACCEPT 8 00411 #define FD_CONNECT 16 00412 #define FD_CLOSE 32 00413 00414 #ifndef WSABASEERR 00415 00416 #define WSABASEERR 10000 00417 #define WSAEINTR (WSABASEERR+4) 00418 #define WSAEBADF (WSABASEERR+9) 00419 #define WSAEACCES (WSABASEERR+13) 00420 #define WSAEFAULT (WSABASEERR+14) 00421 #define WSAEINVAL (WSABASEERR+22) 00422 #define WSAEMFILE (WSABASEERR+24) 00423 #define WSAEWOULDBLOCK (WSABASEERR+35) 00424 #define WSAEINPROGRESS (WSABASEERR+36) 00425 #define WSAEALREADY (WSABASEERR+37) 00426 #define WSAENOTSOCK (WSABASEERR+38) 00427 #define WSAEDESTADDRREQ (WSABASEERR+39) 00428 #define WSAEMSGSIZE (WSABASEERR+40) 00429 #define WSAEPROTOTYPE (WSABASEERR+41) 00430 #define WSAENOPROTOOPT (WSABASEERR+42) 00431 #define WSAEPROTONOSUPPORT (WSABASEERR+43) 00432 #define WSAESOCKTNOSUPPORT (WSABASEERR+44) 00433 #define WSAEOPNOTSUPP (WSABASEERR+45) 00434 #define WSAEPFNOSUPPORT (WSABASEERR+46) 00435 #define WSAEAFNOSUPPORT (WSABASEERR+47) 00436 #define WSAEADDRINUSE (WSABASEERR+48) 00437 #define WSAEADDRNOTAVAIL (WSABASEERR+49) 00438 #define WSAENETDOWN (WSABASEERR+50) 00439 #define WSAENETUNREACH (WSABASEERR+51) 00440 #define WSAENETRESET (WSABASEERR+52) 00441 #define WSAECONNABORTED (WSABASEERR+53) 00442 #define WSAECONNRESET (WSABASEERR+54) 00443 #define WSAENOBUFS (WSABASEERR+55) 00444 #define WSAEISCONN (WSABASEERR+56) 00445 #define WSAENOTCONN (WSABASEERR+57) 00446 #define WSAESHUTDOWN (WSABASEERR+58) 00447 #define WSAETOOMANYREFS (WSABASEERR+59) 00448 #define WSAETIMEDOUT (WSABASEERR+60) 00449 #define WSAECONNREFUSED (WSABASEERR+61) 00450 #define WSAELOOP (WSABASEERR+62) 00451 #define WSAENAMETOOLONG (WSABASEERR+63) 00452 #define WSAEHOSTDOWN (WSABASEERR+64) 00453 #define WSAEHOSTUNREACH (WSABASEERR+65) 00454 #define WSAENOTEMPTY (WSABASEERR+66) 00455 #define WSAEPROCLIM (WSABASEERR+67) 00456 #define WSAEUSERS (WSABASEERR+68) 00457 #define WSAEDQUOT (WSABASEERR+69) 00458 #define WSAESTALE (WSABASEERR+70) 00459 #define WSAEREMOTE (WSABASEERR+71) 00460 #define WSASYSNOTREADY (WSABASEERR+91) 00461 #define WSAVERNOTSUPPORTED (WSABASEERR+92) 00462 #define WSANOTINITIALISED (WSABASEERR+93) 00463 #define WSAEDISCON (WSABASEERR+101) 00464 #define WSAHOST_NOT_FOUND (WSABASEERR+1001) 00465 #define WSATRY_AGAIN (WSABASEERR+1002) 00466 #define WSANO_RECOVERY (WSABASEERR+1003) 00467 #define WSANO_DATA (WSABASEERR+1004) 00468 #define WSA_SECURE_HOST_NOT_FOUND (WSABASEERR+1032) 00469 #define WSA_IPSEC_NAME_POLICY_ERROR (WSABASEERR+1033) 00470 00471 #endif /* !WSABASEERR */ 00472 00473 #define WSANO_ADDRESS WSANO_DATA 00474 00475 #define TF_DISCONNECT 0x01 00476 #define TF_REUSE_SOCKET 0x02 00477 #define TF_WRITE_BEHIND 0x04 00478 00479 #define WSAMAKEASYNCREPLY(b,e) MAKELONG(b,e) 00480 #define WSAMAKESELECTREPLY(e,error) MAKELONG(e,error) 00481 #define WSAGETASYNCBUFLEN(l) LOWORD(l) 00482 #define WSAGETASYNCERROR(l) HIWORD(l) 00483 #define WSAGETSELECTEVENT(l) LOWORD(l) 00484 #define WSAGETSELECTERROR(l) HIWORD(l) 00485 00486 typedef struct sockaddr SOCKADDR; 00487 typedef struct sockaddr *PSOCKADDR; 00488 typedef struct sockaddr *LPSOCKADDR; 00489 typedef struct sockaddr_in SOCKADDR_IN; 00490 typedef struct sockaddr_in *PSOCKADDR_IN; 00491 typedef struct sockaddr_in *LPSOCKADDR_IN; 00492 typedef struct linger LINGER; 00493 typedef struct linger *PLINGER; 00494 typedef struct linger *LPLINGER; 00495 typedef struct fd_set FD_SET; 00496 typedef struct fd_set *PFD_SET; 00497 typedef struct fd_set *LPFD_SET; 00498 typedef struct hostent HOSTENT; 00499 typedef struct hostent *PHOSTENT; 00500 typedef struct hostent *LPHOSTENT; 00501 typedef struct servent SERVENT; 00502 typedef struct servent *PSERVENT; 00503 typedef struct servent *LPSERVENT; 00504 typedef struct protoent PROTOENT; 00505 typedef struct protoent *PPROTOENT; 00506 typedef struct protoent *LPPROTOENT; 00507 typedef struct timeval TIMEVAL; 00508 typedef struct timeval *PTIMEVAL; 00509 typedef struct timeval *LPTIMEVAL; 00510 00511 struct sockaddr_in { 00512 short sin_family; 00513 u_short sin_port; 00514 struct in_addr sin_addr; 00515 char sin_zero[8]; 00516 }; 00517 00518 typedef struct WSAData { 00519 WORD wVersion; 00520 WORD wHighVersion; 00521 #ifdef _WIN64 00522 unsigned short iMaxSockets; 00523 unsigned short iMaxUdpDg; 00524 char *lpVendorInfo; 00525 char szDescription[WSADESCRIPTION_LEN+1]; 00526 char szSystemStatus[WSASYS_STATUS_LEN+1]; 00527 #else 00528 char szDescription[WSADESCRIPTION_LEN+1]; 00529 char szSystemStatus[WSASYS_STATUS_LEN+1]; 00530 unsigned short iMaxSockets; 00531 unsigned short iMaxUdpDg; 00532 char *lpVendorInfo; 00533 #endif 00534 } WSADATA, FAR *LPWSADATA; 00535 00536 struct ip_mreq { 00537 struct in_addr imr_multiaddr; 00538 struct in_addr imr_interface; 00539 }; 00540 00541 struct sockproto { 00542 u_short sp_family; 00543 u_short sp_protocol; 00544 }; 00545 00546 SOCKET 00547 PASCAL FAR 00548 accept( 00549 IN SOCKET s, 00550 OUT struct sockaddr FAR *addr OPTIONAL, 00551 IN OUT int FAR *addrlen OPTIONAL); 00552 00553 int 00554 PASCAL FAR 00555 bind( 00556 IN SOCKET s, 00557 IN const struct sockaddr FAR *addr, 00558 IN int namelen); 00559 00560 int 00561 PASCAL FAR 00562 closesocket( 00563 IN SOCKET s); 00564 00565 int 00566 PASCAL FAR 00567 connect( 00568 IN SOCKET s, 00569 IN const struct sockaddr FAR *name, 00570 IN int namelen); 00571 00572 int 00573 PASCAL FAR 00574 ioctlsocket( 00575 IN SOCKET s, 00576 IN long cmd, 00577 IN OUT u_long FAR *argp); 00578 00579 int 00580 PASCAL FAR 00581 getpeername( 00582 IN SOCKET s, 00583 OUT struct sockaddr FAR *name, 00584 IN OUT int FAR *namelen); 00585 00586 int 00587 PASCAL FAR 00588 getsockname( 00589 IN SOCKET s, 00590 OUT struct sockaddr FAR *name, 00591 IN OUT int FAR *namelen); 00592 00593 int 00594 PASCAL FAR 00595 getsockopt( 00596 IN SOCKET s, 00597 IN int level, 00598 IN int optname, 00599 OUT char FAR *optval, 00600 IN OUT int FAR *optlen); 00601 00602 u_long 00603 PASCAL FAR 00604 htonl( 00605 IN u_long hostlong); 00606 00607 u_short 00608 PASCAL FAR 00609 htons( 00610 IN u_short hostshort); 00611 00612 unsigned long 00613 PASCAL FAR 00614 inet_addr( 00615 IN const char FAR *cp); 00616 00617 char FAR 00618 *PASCAL FAR 00619 inet_ntoa( 00620 IN struct in_addr in); 00621 00622 int 00623 PASCAL FAR 00624 listen( 00625 IN SOCKET s, 00626 IN int backlog); 00627 00628 u_long 00629 PASCAL FAR 00630 ntohl( 00631 IN u_long netlong); 00632 00633 u_short 00634 PASCAL FAR 00635 ntohs( 00636 IN u_short netshort); 00637 00638 int 00639 PASCAL FAR 00640 recv( 00641 IN SOCKET s, 00642 OUT char FAR *buf, 00643 IN int len, 00644 IN int flags); 00645 00646 int 00647 PASCAL FAR 00648 recvfrom( 00649 IN SOCKET s, 00650 OUT char FAR *buf, 00651 IN int len, 00652 IN int flags, 00653 OUT struct sockaddr FAR *from OPTIONAL, 00654 IN OUT int FAR * fromlen OPTIONAL); 00655 00656 int 00657 PASCAL FAR 00658 select( 00659 IN int nfds, 00660 IN OUT fd_set FAR *readfds OPTIONAL, 00661 IN OUT fd_set FAR *writefds OPTIONAL, 00662 IN OUT fd_set FAR *exceptfds OPTIONAL, 00663 IN const struct timeval FAR *timeout OPTIONAL); 00664 00665 int 00666 PASCAL FAR 00667 send( 00668 IN SOCKET s, 00669 IN const char FAR *buf, 00670 IN int len, 00671 IN int flags); 00672 00673 int 00674 PASCAL FAR 00675 sendto( 00676 IN SOCKET s, 00677 IN const char FAR *buf, 00678 IN int len, 00679 IN int flags, 00680 IN const struct sockaddr FAR *to OPTIONAL, 00681 IN int tolen); 00682 00683 int 00684 PASCAL FAR 00685 setsockopt( 00686 IN SOCKET s, 00687 IN int level, 00688 IN int optname, 00689 IN const char FAR *optval OPTIONAL, 00690 IN int optlen); 00691 00692 int 00693 PASCAL FAR 00694 shutdown( 00695 IN SOCKET s, 00696 IN int how); 00697 00698 SOCKET 00699 PASCAL FAR 00700 socket( 00701 IN int af, 00702 IN int type, 00703 IN int protocol); 00704 00705 struct hostent FAR 00706 *PASCAL FAR 00707 gethostbyaddr( 00708 IN const char FAR *addr, 00709 IN int len, 00710 IN int type); 00711 00712 struct hostent FAR 00713 *PASCAL FAR 00714 gethostbyname( 00715 IN const char FAR *name); 00716 00717 int 00718 PASCAL FAR 00719 gethostname( 00720 OUT char FAR *name, 00721 IN int namelen); 00722 00723 struct servent FAR 00724 *PASCAL FAR 00725 getservbyport( 00726 IN int port, 00727 IN const char FAR *proto); 00728 00729 struct servent FAR 00730 *PASCAL FAR 00731 getservbyname( 00732 IN const char FAR *name, 00733 IN const char FAR *proto); 00734 00735 struct protoent FAR 00736 *PASCAL FAR 00737 getprotobynumber( 00738 IN int number); 00739 00740 struct protoent FAR 00741 *PASCAL FAR 00742 getprotobyname( 00743 IN const char FAR *name); 00744 00745 int 00746 PASCAL FAR 00747 WSAStartup( 00748 IN WORD wVersionRequired, 00749 OUT LPWSADATA lpWSAData); 00750 00751 int 00752 PASCAL FAR 00753 WSACleanup(void); 00754 00755 void 00756 PASCAL FAR 00757 WSASetLastError( 00758 IN int iError); 00759 00760 int 00761 PASCAL FAR 00762 WSAGetLastError(void); 00763 00764 BOOL 00765 PASCAL FAR 00766 WSAIsBlocking(void); 00767 00768 int 00769 PASCAL FAR 00770 WSAUnhookBlockingHook(void); 00771 00772 FARPROC 00773 PASCAL FAR 00774 WSASetBlockingHook( 00775 IN FARPROC lpBlockFunc); 00776 00777 int 00778 PASCAL FAR 00779 WSACancelBlockingCall(void); 00780 00781 HANDLE 00782 PASCAL FAR 00783 WSAAsyncGetServByName( 00784 IN HWND hWnd, 00785 IN u_int wMsg, 00786 IN const char FAR *name, 00787 IN const char FAR *proto, 00788 OUT char FAR *buf, 00789 IN int buflen); 00790 00791 HANDLE 00792 PASCAL FAR 00793 WSAAsyncGetServByPort( 00794 IN HWND hWnd, 00795 IN u_int wMsg, 00796 IN int port, 00797 IN const char FAR *proto, 00798 OUT char FAR *buf, 00799 IN int buflen); 00800 00801 HANDLE 00802 PASCAL FAR 00803 WSAAsyncGetProtoByName( 00804 IN HWND hWnd, 00805 IN u_int wMsg, 00806 IN const char FAR *name, 00807 OUT char FAR *buf, 00808 IN int buflen); 00809 00810 HANDLE 00811 PASCAL FAR 00812 WSAAsyncGetProtoByNumber( 00813 IN HWND hWnd, 00814 IN u_int wMsg, 00815 IN int number, 00816 OUT char FAR *buf, 00817 IN int buflen); 00818 00819 HANDLE 00820 PASCAL FAR 00821 WSAAsyncGetHostByName( 00822 IN HWND hWnd, 00823 IN u_int wMsg, 00824 IN const char FAR *name, 00825 OUT char FAR *buf, 00826 IN int buflen); 00827 00828 HANDLE 00829 PASCAL FAR 00830 WSAAsyncGetHostByAddr( 00831 IN HWND hWnd, 00832 IN u_int wMsg, 00833 IN const char FAR *addr, 00834 IN int len, 00835 IN int type, 00836 OUT char FAR *buf, 00837 IN int buflen); 00838 00839 int 00840 PASCAL FAR 00841 WSACancelAsyncRequest( 00842 IN HANDLE hAsyncTaskHandle); 00843 00844 int 00845 PASCAL FAR 00846 WSAAsyncSelect( 00847 IN SOCKET s, 00848 IN HWND hWnd, 00849 IN u_int wMsg, 00850 IN long lEvent); 00851 00852 int 00853 PASCAL FAR 00854 WSARecvEx( 00855 IN SOCKET s, 00856 OUT char FAR *buf, 00857 IN int len, 00858 IN OUT int FAR *flags); 00859 00860 typedef struct _TRANSMIT_FILE_BUFFERS { 00861 PVOID Head; 00862 DWORD HeadLength; 00863 PVOID Tail; 00864 DWORD TailLength; 00865 } TRANSMIT_FILE_BUFFERS, *PTRANSMIT_FILE_BUFFERS, *LPTRANSMIT_FILE_BUFFERS; 00866 00867 BOOL 00868 PASCAL FAR 00869 TransmitFile( 00870 IN SOCKET hSocket, 00871 IN HANDLE hFile, 00872 IN DWORD nNumberOfBytesToWrite, 00873 IN DWORD nNumberOfBytesPerSend, 00874 IN OUT LPOVERLAPPED lpOverlapped OPTIONAL, 00875 IN LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers OPTIONAL, 00876 IN DWORD dwReserved); 00877 00878 BOOL 00879 PASCAL FAR 00880 AcceptEx( 00881 IN SOCKET sListenSocket, 00882 IN SOCKET sAcceptSocket, 00883 OUT PVOID lpOutputBuffer, 00884 IN DWORD dwReceiveDataLength, 00885 IN DWORD dwLocalAddressLength, 00886 IN DWORD dwRemoteAddressLength, 00887 OUT LPDWORD lpdwBytesReceived, 00888 IN OUT LPOVERLAPPED lpOverlapped); 00889 00890 VOID 00891 PASCAL FAR 00892 GetAcceptExSockaddrs( 00893 IN PVOID lpOutputBuffer, 00894 IN DWORD dwReceiveDataLength, 00895 IN DWORD dwLocalAddressLength, 00896 IN DWORD dwRemoteAddressLength, 00897 OUT struct sockaddr **LocalSockaddr, 00898 OUT LPINT LocalSockaddrLength, 00899 OUT struct sockaddr **RemoteSockaddr, 00900 OUT LPINT RemoteSockaddrLength); 00901 00902 #if(_WIN32_WINNT >= 0x0501) 00903 00904 #ifdef IPV6STRICT 00905 #error WINSOCK2 required. 00906 #endif 00907 00908 #endif /* (_WIN32_WINNT >= 0x0501) */ 00909 00910 #ifdef __cplusplus 00911 } 00912 #endif Generated on Sun May 27 2012 04:32:47 for ReactOS by
1.7.6.1
|