Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenwinsock2.h
Go to the documentation of this file.
00001 #pragma once 00002 00003 #if !(defined _WINSOCK2API_ || defined _WINSOCKAPI_) 00004 #define _WINSOCK2API_ 00005 #define _WINSOCKAPI_ /* to prevent later inclusion of winsock.h */ 00006 00007 #define _GNU_H_WINDOWS32_SOCKETS 00008 00009 #if (!defined(_WIN64) && !defined(WIN32)) 00010 #include <pshpack4.h> 00011 #define _NEED_POPPACK 00012 #endif 00013 00014 #ifndef INCL_WINSOCK_API_PROTOTYPES 00015 #define INCL_WINSOCK_API_PROTOTYPES 1 00016 #endif 00017 00018 #ifndef INCL_WINSOCK_API_TYPEDEFS 00019 #define INCL_WINSOCK_API_TYPEDEFS 0 00020 #endif 00021 00022 #ifndef _INC_WINDOWS 00023 #include <windows.h> 00024 #endif 00025 00026 #if !defined(MAKEWORD) 00027 #define MAKEWORD(low,high) ((WORD)(((BYTE)(low)) | ((WORD)((BYTE)(high))) << 8)) 00028 #endif 00029 00030 #ifndef WINSOCK_VERSION 00031 #define WINSOCK_VERSION MAKEWORD(2,2) 00032 #endif 00033 00034 #ifndef WINSOCK_API_LINKAGE 00035 #ifdef DECLSPEC_IMPORT 00036 #define WINSOCK_API_LINKAGE DECLSPEC_IMPORT 00037 #else 00038 #define WINSOCK_API_LINKAGE 00039 #endif 00040 #endif 00041 00042 #ifndef _M_AMD64 00043 #if !defined(__ROS_LONG64__) 00044 #ifdef __WINESRC__ 00045 #define __ROS_LONG64__ 00046 #endif 00047 #endif 00048 #endif 00049 00050 #ifdef __cplusplus 00051 extern "C" { 00052 #endif 00053 00054 /* Names common to Winsock1.1 and Winsock2 */ 00055 #if !defined ( _BSDTYPES_DEFINED ) 00056 /* also defined in gmon.h and in cygwin's sys/types */ 00057 typedef unsigned char u_char; 00058 typedef unsigned short u_short; 00059 typedef unsigned int u_int; 00060 #ifndef __ROS_LONG64__ 00061 typedef unsigned long u_long; 00062 #else 00063 typedef unsigned int u_long; 00064 #endif 00065 #define _BSDTYPES_DEFINED 00066 #endif /* ! def _BSDTYPES_DEFINED */ 00067 00068 #if(_WIN32_WINNT >= 0x0501) 00069 typedef unsigned __int64 u_int64; 00070 #endif /* (_WIN32_WINNT >= 0x0501) */ 00071 00072 #include <ws2def.h> 00073 00074 typedef UINT_PTR SOCKET; 00075 00076 #ifndef FD_SETSIZE 00077 #define FD_SETSIZE 64 00078 #endif 00079 00080 #ifndef _SYS_TYPES_FD_SET 00081 00082 /* fd_set may be defined by the newlib <sys/types.h> 00083 * if __USE_W32_SOCKETS not defined. 00084 */ 00085 #ifdef fd_set 00086 #undef fd_set 00087 #endif 00088 00089 typedef struct fd_set { 00090 u_int fd_count; 00091 SOCKET fd_array[FD_SETSIZE]; 00092 } fd_set; 00093 00094 extern int PASCAL FAR __WSAFDIsSet(SOCKET,fd_set FAR*); 00095 00096 #ifndef FD_CLR 00097 #define FD_CLR(fd, set) do { \ 00098 u_int __i; \ 00099 for (__i = 0; __i < ((fd_set FAR*)(set))->fd_count ; __i++) { \ 00100 if (((fd_set FAR*)(set))->fd_array[__i] == fd) { \ 00101 while (__i < ((fd_set FAR*)(set))->fd_count-1) { \ 00102 ((fd_set FAR*)(set))->fd_array[__i] = \ 00103 ((fd_set FAR*)(set))->fd_array[__i+1]; \ 00104 __i++; \ 00105 } \ 00106 ((fd_set FAR*)(set))->fd_count--; \ 00107 break; \ 00108 } \ 00109 } \ 00110 } while(0) 00111 #endif 00112 00113 #ifndef FD_SET 00114 /* this differs from the define in winsock.h and in cygwin sys/types.h */ 00115 #define FD_SET(fd, set) do { \ 00116 u_int __i; \ 00117 for (__i = 0; __i < ((fd_set FAR *)(set))->fd_count; __i++) { \ 00118 if (((fd_set FAR *)(set))->fd_array[__i] == (fd)) { \ 00119 break; \ 00120 } \ 00121 } \ 00122 if (__i == ((fd_set FAR *)(set))->fd_count) { \ 00123 if (((fd_set FAR *)(set))->fd_count < FD_SETSIZE) { \ 00124 ((fd_set FAR *)(set))->fd_array[__i] = (fd); \ 00125 ((fd_set FAR *)(set))->fd_count++; \ 00126 } \ 00127 } \ 00128 } while(0) 00129 #endif 00130 00131 #ifndef FD_ZERO 00132 #define FD_ZERO(set) (((fd_set FAR*)(set))->fd_count=0) 00133 #endif 00134 00135 #ifndef FD_ISSET 00136 #define FD_ISSET(fd, set) __WSAFDIsSet((SOCKET)(fd), (fd_set FAR*)(set)) 00137 #endif 00138 00139 #elif !defined (USE_SYS_TYPES_FD_SET) 00140 #warning "fd_set and associated macros have been defined in sys/types. \ 00141 This may cause runtime problems with W32 sockets" 00142 #endif /* ndef _SYS_TYPES_FD_SET */ 00143 00144 #if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) 00145 00146 #ifndef _TIMEVAL_DEFINED 00147 00148 /* also in sys/time.h */ 00149 #define _TIMEVAL_DEFINED 00150 #define _STRUCT_TIMEVAL 00151 struct timeval { 00152 LONG tv_sec; 00153 LONG tv_usec; 00154 }; 00155 00156 #define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) 00157 00158 #define timercmp(tvp, uvp, cmp) \ 00159 (((tvp)->tv_sec != (uvp)->tv_sec) ? \ 00160 ((tvp)->tv_sec cmp (uvp)->tv_sec) : \ 00161 ((tvp)->tv_usec cmp (uvp)->tv_usec)) 00162 00163 #define timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0 00164 00165 #endif /* _TIMEVAL_DEFINED */ 00166 00167 #define h_addr h_addr_list[0] 00168 00169 struct hostent { 00170 char *h_name; 00171 char **h_aliases; 00172 short h_addrtype; 00173 short h_length; 00174 char **h_addr_list; 00175 }; 00176 00177 struct linger { 00178 u_short l_onoff; 00179 u_short l_linger; 00180 }; 00181 00182 #define FIONBIO _IOW('f', 126, u_long) 00183 00184 struct netent { 00185 char * n_name; 00186 char **n_aliases; 00187 short n_addrtype; 00188 u_long n_net; 00189 }; 00190 00191 struct servent { 00192 char FAR *s_name; 00193 char FAR **s_aliases; 00194 #ifdef _WIN64 00195 char FAR *s_proto; 00196 short s_port; 00197 #else 00198 short s_port; 00199 char FAR *s_proto; 00200 #endif 00201 }; 00202 00203 struct protoent { 00204 char *p_name; 00205 char **p_aliases; 00206 short p_proto; 00207 }; 00208 00209 #define SOMAXCONN 0x7fffffff 00210 00211 #define MSG_OOB 1 00212 #define MSG_PEEK 2 00213 #define MSG_DONTROUTE 4 00214 #if(_WIN32_WINNT >= 0x0502) 00215 #define MSG_WAITALL 8 00216 #endif 00217 00218 #define h_errno WSAGetLastError() 00219 #define HOST_NOT_FOUND WSAHOST_NOT_FOUND 00220 #define TRY_AGAIN WSATRY_AGAIN 00221 #define NO_RECOVERY WSANO_RECOVERY 00222 #define NO_DATA WSANO_DATA 00223 #define NO_ADDRESS WSANO_ADDRESS 00224 00225 #endif /* !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) */ 00226 00227 #define FIONREAD _IOR('f', 127, u_long) 00228 #define FIOASYNC _IOW('f', 125, u_long) 00229 #define SIOCSHIWAT _IOW('s', 0, u_long) 00230 #define SIOCGHIWAT _IOR('s', 1, u_long) 00231 #define SIOCSLOWAT _IOW('s', 2, u_long) 00232 #define SIOCGLOWAT _IOR('s', 3, u_long) 00233 #define SIOCATMARK _IOR('s', 7, u_long) 00234 00235 #define IMPLINK_IP 155 00236 #define IMPLINK_LOWEXPER 156 00237 #define IMPLINK_HIGHEXPER 158 00238 00239 #define ADDR_ANY INADDR_ANY 00240 00241 #define WSADESCRIPTION_LEN 256 00242 #define WSASYS_STATUS_LEN 128 00243 00244 #define INVALID_SOCKET (SOCKET)(~0) 00245 00246 #define SOCKET_ERROR (-1) 00247 00248 #define FROM_PROTOCOL_INFO (-1) 00249 00250 #define SO_PROTOCOL_INFOA 0x2004 00251 #define SO_PROTOCOL_INFOW 0x2005 00252 #ifdef UNICODE 00253 #define SO_PROTOCOL_INFO SO_PROTOCOL_INFOW 00254 #else 00255 #define SO_PROTOCOL_INFO SO_PROTOCOL_INFOA 00256 #endif 00257 #define PVD_CONFIG 0x3001 00258 00259 #define PF_UNSPEC AF_UNSPEC 00260 #define PF_UNIX AF_UNIX 00261 #define PF_INET AF_INET 00262 #define PF_IMPLINK AF_IMPLINK 00263 #define PF_PUP AF_PUP 00264 #define PF_CHAOS AF_CHAOS 00265 #define PF_NS AF_NS 00266 #define PF_IPX AF_IPX 00267 #define PF_ISO AF_ISO 00268 #define PF_OSI AF_OSI 00269 #define PF_ECMA AF_ECMA 00270 #define PF_DATAKIT AF_DATAKIT 00271 #define PF_CCITT AF_CCITT 00272 #define PF_SNA AF_SNA 00273 #define PF_DECnet AF_DECnet 00274 #define PF_DLI AF_DLI 00275 #define PF_LAT AF_LAT 00276 #define PF_HYLINK AF_HYLINK 00277 #define PF_APPLETALK AF_APPLETALK 00278 #define PF_VOICEVIEW AF_VOICEVIEW 00279 #define PF_FIREFOX AF_FIREFOX 00280 #define PF_UNKNOWN1 AF_UNKNOWN1 00281 #define PF_BAN AF_BAN 00282 #define PF_ATM AF_ATM 00283 #define PF_INET6 AF_INET6 00284 #if(_WIN32_WINNT >= 0x0600) 00285 #define PF_BTH AF_BTH 00286 #endif 00287 #define PF_MAX AF_MAX 00288 00289 #define MSG_PARTIAL 0x8000 00290 #define MSG_INTERRUPT 0x10 00291 #define MSG_MAXIOVLEN 16 00292 00293 #define MAXGETHOSTSTRUCT 1024 00294 00295 #define FD_READ_BIT 0 00296 #define FD_READ (1 << FD_READ_BIT) 00297 #define FD_WRITE_BIT 1 00298 #define FD_WRITE (1 << FD_WRITE_BIT) 00299 #define FD_OOB_BIT 2 00300 #define FD_OOB (1 << FD_OOB_BIT) 00301 #define FD_ACCEPT_BIT 3 00302 #define FD_ACCEPT (1 << FD_ACCEPT_BIT) 00303 #define FD_CONNECT_BIT 4 00304 #define FD_CONNECT (1 << FD_CONNECT_BIT) 00305 #define FD_CLOSE_BIT 5 00306 #define FD_CLOSE (1 << FD_CLOSE_BIT) 00307 #define FD_QOS_BIT 6 00308 #define FD_QOS (1 << FD_QOS_BIT) 00309 #define FD_GROUP_QOS_BIT 7 00310 #define FD_GROUP_QOS (1 << FD_GROUP_QOS_BIT) 00311 #define FD_ROUTING_INTERFACE_CHANGE_BIT 8 00312 #define FD_ROUTING_INTERFACE_CHANGE (1 << FD_ROUTING_INTERFACE_CHANGE_BIT) 00313 #define FD_ADDRESS_LIST_CHANGE_BIT 9 00314 #define FD_ADDRESS_LIST_CHANGE (1 << FD_ADDRESS_LIST_CHANGE_BIT) 00315 #define FD_MAX_EVENTS 10 00316 #define FD_ALL_EVENTS ((1 << FD_MAX_EVENTS) - 1) 00317 00318 #ifndef WSABASEERR 00319 00320 #define WSABASEERR 10000 00321 #define WSAEINTR (WSABASEERR+4) 00322 #define WSAEBADF (WSABASEERR+9) 00323 #define WSAEACCES (WSABASEERR+13) 00324 #define WSAEFAULT (WSABASEERR+14) 00325 #define WSAEINVAL (WSABASEERR+22) 00326 #define WSAEMFILE (WSABASEERR+24) 00327 #define WSAEWOULDBLOCK (WSABASEERR+35) 00328 #define WSAEINPROGRESS (WSABASEERR+36) 00329 #define WSAEALREADY (WSABASEERR+37) 00330 #define WSAENOTSOCK (WSABASEERR+38) 00331 #define WSAEDESTADDRREQ (WSABASEERR+39) 00332 #define WSAEMSGSIZE (WSABASEERR+40) 00333 #define WSAEPROTOTYPE (WSABASEERR+41) 00334 #define WSAENOPROTOOPT (WSABASEERR+42) 00335 #define WSAEPROTONOSUPPORT (WSABASEERR+43) 00336 #define WSAESOCKTNOSUPPORT (WSABASEERR+44) 00337 #define WSAEOPNOTSUPP (WSABASEERR+45) 00338 #define WSAEPFNOSUPPORT (WSABASEERR+46) 00339 #define WSAEAFNOSUPPORT (WSABASEERR+47) 00340 #define WSAEADDRINUSE (WSABASEERR+48) 00341 #define WSAEADDRNOTAVAIL (WSABASEERR+49) 00342 #define WSAENETDOWN (WSABASEERR+50) 00343 #define WSAENETUNREACH (WSABASEERR+51) 00344 #define WSAENETRESET (WSABASEERR+52) 00345 #define WSAECONNABORTED (WSABASEERR+53) 00346 #define WSAECONNRESET (WSABASEERR+54) 00347 #define WSAENOBUFS (WSABASEERR+55) 00348 #define WSAEISCONN (WSABASEERR+56) 00349 #define WSAENOTCONN (WSABASEERR+57) 00350 #define WSAESHUTDOWN (WSABASEERR+58) 00351 #define WSAETOOMANYREFS (WSABASEERR+59) 00352 #define WSAETIMEDOUT (WSABASEERR+60) 00353 #define WSAECONNREFUSED (WSABASEERR+61) 00354 #define WSAELOOP (WSABASEERR+62) 00355 #define WSAENAMETOOLONG (WSABASEERR+63) 00356 #define WSAEHOSTDOWN (WSABASEERR+64) 00357 #define WSAEHOSTUNREACH (WSABASEERR+65) 00358 #define WSAENOTEMPTY (WSABASEERR+66) 00359 #define WSAEPROCLIM (WSABASEERR+67) 00360 #define WSAEUSERS (WSABASEERR+68) 00361 #define WSAEDQUOT (WSABASEERR+69) 00362 #define WSAESTALE (WSABASEERR+70) 00363 #define WSAEREMOTE (WSABASEERR+71) 00364 #define WSASYSNOTREADY (WSABASEERR+91) 00365 #define WSAVERNOTSUPPORTED (WSABASEERR+92) 00366 #define WSANOTINITIALISED (WSABASEERR+93) 00367 #define WSAEDISCON (WSABASEERR+101) 00368 #define WSAENOMORE (WSABASEERR+102) 00369 #define WSAECANCELLED (WSABASEERR+103) 00370 #define WSAEINVALIDPROCTABLE (WSABASEERR+104) 00371 #define WSAEINVALIDPROVIDER (WSABASEERR+105) 00372 #define WSAEPROVIDERFAILEDINIT (WSABASEERR+106) 00373 #define WSASYSCALLFAILURE (WSABASEERR+107) 00374 #define WSASERVICE_NOT_FOUND (WSABASEERR+108) 00375 #define WSATYPE_NOT_FOUND (WSABASEERR+109) 00376 #define WSA_E_NO_MORE (WSABASEERR+110) 00377 #define WSA_E_CANCELLED (WSABASEERR+111) 00378 #define WSAEREFUSED (WSABASEERR+112) 00379 #define WSAHOST_NOT_FOUND (WSABASEERR+1001) 00380 #define WSATRY_AGAIN (WSABASEERR+1002) 00381 #define WSANO_RECOVERY (WSABASEERR+1003) 00382 #define WSANO_DATA (WSABASEERR+1004) 00383 #define WSA_QOS_RECEIVERS (WSABASEERR + 1005) 00384 #define WSA_QOS_SENDERS (WSABASEERR + 1006) 00385 #define WSA_QOS_NO_SENDERS (WSABASEERR + 1007) 00386 #define WSA_QOS_NO_RECEIVERS (WSABASEERR + 1008) 00387 #define WSA_QOS_REQUEST_CONFIRMED (WSABASEERR + 1009) 00388 #define WSA_QOS_ADMISSION_FAILURE (WSABASEERR + 1010) 00389 #define WSA_QOS_POLICY_FAILURE (WSABASEERR + 1011) 00390 #define WSA_QOS_BAD_STYLE (WSABASEERR + 1012) 00391 #define WSA_QOS_BAD_OBJECT (WSABASEERR + 1013) 00392 #define WSA_QOS_TRAFFIC_CTRL_ERROR (WSABASEERR + 1014) 00393 #define WSA_QOS_GENERIC_ERROR (WSABASEERR + 1015) 00394 #define WSA_QOS_ESERVICETYPE (WSABASEERR + 1016) 00395 #define WSA_QOS_EFLOWSPEC (WSABASEERR + 1017) 00396 #define WSA_QOS_EPROVSPECBUF (WSABASEERR + 1018) 00397 #define WSA_QOS_EFILTERSTYLE (WSABASEERR + 1019) 00398 #define WSA_QOS_EFILTERTYPE (WSABASEERR + 1020) 00399 #define WSA_QOS_EFILTERCOUNT (WSABASEERR + 1021) 00400 #define WSA_QOS_EOBJLENGTH (WSABASEERR + 1022) 00401 #define WSA_QOS_EFLOWCOUNT (WSABASEERR + 1023) 00402 #define WSA_QOS_EUNKOWNPSOBJ (WSABASEERR + 1024) 00403 #define WSA_QOS_EPOLICYOBJ (WSABASEERR + 1025) 00404 #define WSA_QOS_EFLOWDESC (WSABASEERR + 1026) 00405 #define WSA_QOS_EPSFLOWSPEC (WSABASEERR + 1027) 00406 #define WSA_QOS_EPSFILTERSPEC (WSABASEERR + 1028) 00407 #define WSA_QOS_ESDMODEOBJ (WSABASEERR + 1029) 00408 #define WSA_QOS_ESHAPERATEOBJ (WSABASEERR + 1030) 00409 #define WSA_QOS_RESERVED_PETYPE (WSABASEERR + 1031) 00410 00411 #endif /* !WSABASEERR */ 00412 00413 #define WSANO_ADDRESS WSANO_DATA 00414 00415 #define CF_ACCEPT 0x0000 00416 #define CF_REJECT 0x0001 00417 #define CF_DEFER 0x0002 00418 #define SD_RECEIVE 0x00 00419 #define SD_SEND 0x01 00420 #define SD_BOTH 0x02 00421 00422 #define SG_UNCONSTRAINED_GROUP 0x01 00423 #define SG_CONSTRAINED_GROUP 0x02 00424 00425 #define MAX_PROTOCOL_CHAIN 7 00426 00427 #define BASE_PROTOCOL 1 00428 #define LAYERED_PROTOCOL 0 00429 00430 #define WSAPROTOCOL_LEN 255 00431 00432 #define PFL_MULTIPLE_PROTO_ENTRIES 0x00000001 00433 #define PFL_RECOMMENDED_PROTO_ENTRY 0x00000002 00434 #define PFL_HIDDEN 0x00000004 00435 #define PFL_MATCHES_PROTOCOL_ZERO 0x00000008 00436 #define PFL_NETWORKDIRECT_PROVIDER 0x00000010 00437 00438 #define XP1_CONNECTIONLESS 0x00000001 00439 #define XP1_GUARANTEED_DELIVERY 0x00000002 00440 #define XP1_GUARANTEED_ORDER 0x00000004 00441 #define XP1_MESSAGE_ORIENTED 0x00000008 00442 #define XP1_PSEUDO_STREAM 0x00000010 00443 #define XP1_GRACEFUL_CLOSE 0x00000020 00444 #define XP1_EXPEDITED_DATA 0x00000040 00445 #define XP1_CONNECT_DATA 0x00000080 00446 #define XP1_DISCONNECT_DATA 0x00000100 00447 #define XP1_SUPPORT_BROADCAST 0x00000200 00448 #define XP1_SUPPORT_MULTIPOINT 0x00000400 00449 #define XP1_MULTIPOINT_CONTROL_PLANE 0x00000800 00450 #define XP1_MULTIPOINT_DATA_PLANE 0x00001000 00451 #define XP1_QOS_SUPPORTED 0x00002000 00452 #define XP1_INTERRUPT 0x00004000 00453 #define XP1_UNI_SEND 0x00008000 00454 #define XP1_UNI_RECV 0x00010000 00455 #define XP1_IFS_HANDLES 0x00020000 00456 #define XP1_PARTIAL_MESSAGE 0x00040000 00457 #define XP1_SAN_SUPPORT_SDP 0x00080000 00458 00459 #define BIGENDIAN 0x0000 00460 #define LITTLEENDIAN 0x0001 00461 00462 #define SECURITY_PROTOCOL_NONE 0x0000 00463 00464 #define JL_SENDER_ONLY 0x01 00465 #define JL_RECEIVER_ONLY 0x02 00466 #define JL_BOTH 0x04 00467 00468 #define WSA_FLAG_OVERLAPPED 0x01 00469 #define WSA_FLAG_MULTIPOINT_C_ROOT 0x02 00470 #define WSA_FLAG_MULTIPOINT_C_LEAF 0x04 00471 #define WSA_FLAG_MULTIPOINT_D_ROOT 0x08 00472 #define WSA_FLAG_MULTIPOINT_D_LEAF 0x10 00473 #define WSA_FLAG_ACCESS_SYSTEM_SECURITY 0x40 00474 00475 #define TH_NETDEV 0x00000001 00476 #define TH_TAPI 0x00000002 00477 00478 #define SERVICE_MULTIPLE 0x00000001 00479 00480 #define RES_UNUSED_1 0x00000001 00481 #define RES_FLUSH_CACHE 0x00000002 00482 #ifndef RES_SERVICE 00483 #define RES_SERVICE 0x00000004 00484 #endif 00485 00486 #define SERVICE_TYPE_VALUE_IPXPORTA "IpxSocket" 00487 #define SERVICE_TYPE_VALUE_IPXPORTW L"IpxSocket" 00488 #define SERVICE_TYPE_VALUE_SAPIDA "SapId" 00489 #define SERVICE_TYPE_VALUE_SAPIDW L"SapId" 00490 00491 #define SERVICE_TYPE_VALUE_TCPPORTA "TcpPort" 00492 #define SERVICE_TYPE_VALUE_TCPPORTW L"TcpPort" 00493 00494 #define SERVICE_TYPE_VALUE_UDPPORTA "UdpPort" 00495 #define SERVICE_TYPE_VALUE_UDPPORTW L"UdpPort" 00496 00497 #define SERVICE_TYPE_VALUE_OBJECTIDA "ObjectId" 00498 #define SERVICE_TYPE_VALUE_OBJECTIDW L"ObjectId" 00499 00500 #ifdef UNICODE 00501 #define SERVICE_TYPE_VALUE_SAPID SERVICE_TYPE_VALUE_SAPIDW 00502 #define SERVICE_TYPE_VALUE_TCPPORT SERVICE_TYPE_VALUE_TCPPORTW 00503 #define SERVICE_TYPE_VALUE_UDPPORT SERVICE_TYPE_VALUE_UDPPORTW 00504 #define SERVICE_TYPE_VALUE_OBJECTID SERVICE_TYPE_VALUE_OBJECTIDW 00505 #else 00506 #define SERVICE_TYPE_VALUE_SAPID SERVICE_TYPE_VALUE_SAPIDA 00507 #define SERVICE_TYPE_VALUE_TCPPORT SERVICE_TYPE_VALUE_TCPPORTA 00508 #define SERVICE_TYPE_VALUE_UDPPORT SERVICE_TYPE_VALUE_UDPPORTA 00509 #define SERVICE_TYPE_VALUE_OBJECTID SERVICE_TYPE_VALUE_OBJECTIDA 00510 #endif 00511 00512 #define LUP_DEEP 0x0001 00513 #define LUP_CONTAINERS 0x0002 00514 #define LUP_NOCONTAINERS 0x0004 00515 #define LUP_NEAREST 0x0008 00516 #define LUP_RETURN_NAME 0x0010 00517 #define LUP_RETURN_TYPE 0x0020 00518 #define LUP_RETURN_VERSION 0x0040 00519 #define LUP_RETURN_COMMENT 0x0080 00520 #define LUP_RETURN_ADDR 0x0100 00521 #define LUP_RETURN_BLOB 0x0200 00522 #define LUP_RETURN_ALIASES 0x0400 00523 #define LUP_RETURN_QUERY_STRING 0x0800 00524 #define LUP_RETURN_ALL 0x0FF0 00525 #define LUP_RES_SERVICE 0x8000 00526 #define LUP_FLUSHCACHE 0x1000 00527 #define LUP_FLUSHPREVIOUS 0x2000 00528 #define LUP_NON_AUTHORITATIVE 0x4000 00529 #define LUP_SECURE 0x8000 00530 #define LUP_RETURN_PREFERRED_NAMES 0x10000 00531 #define LUP_ADDRCONFIG 0x00100000 00532 #define LUP_DUAL_ADDR 0x00200000 00533 #define LUP_FILESERVER 0x00400000 00534 00535 #define RESULT_IS_ALIAS 0x0001 00536 #if(_WIN32_WINNT >= 0x0501) 00537 #define RESULT_IS_ADDED 0x0010 00538 #define RESULT_IS_CHANGED 0x0020 00539 #define RESULT_IS_DELETED 0x0040 00540 #endif 00541 00542 #ifndef s_addr 00543 00544 #define s_addr S_un.S_addr 00545 #define s_host S_un.S_un_b.s_b2 00546 #define s_net S_un.S_un_b.s_b1 00547 #define s_imp S_un.S_un_w.s_w2 00548 #define s_impno S_un.S_un_b.s_b4 00549 #define s_lh S_un.S_un_b.s_b3 00550 00551 typedef struct in_addr { 00552 union { 00553 struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b; 00554 struct { u_short s_w1,s_w2; } S_un_w; 00555 u_long S_addr; 00556 } S_un; 00557 } IN_ADDR, *PIN_ADDR; 00558 00559 #endif /* s_addr */ 00560 00561 typedef struct WSAData { 00562 WORD wVersion; 00563 WORD wHighVersion; 00564 #ifdef _WIN64 00565 unsigned short iMaxSockets; 00566 unsigned short iMaxUdpDg; 00567 char FAR *lpVendorInfo; 00568 char szDescription[WSADESCRIPTION_LEN+1]; 00569 char szSystemStatus[WSASYS_STATUS_LEN+1]; 00570 #else 00571 char szDescription[WSADESCRIPTION_LEN+1]; 00572 char szSystemStatus[WSASYS_STATUS_LEN+1]; 00573 unsigned short iMaxSockets; 00574 unsigned short iMaxUdpDg; 00575 char FAR *lpVendorInfo; 00576 #endif 00577 } WSADATA, FAR *LPWSADATA; 00578 00579 struct sockproto { 00580 u_short sp_family; 00581 u_short sp_protocol; 00582 }; 00583 00584 #ifdef WIN32 00585 00586 #define WSAAPI FAR PASCAL 00587 #define WSAEVENT HANDLE 00588 #define LPWSAEVENT LPHANDLE 00589 #define WSAOVERLAPPED OVERLAPPED 00590 typedef struct _OVERLAPPED *LPWSAOVERLAPPED; 00591 #define WSA_IO_PENDING (ERROR_IO_PENDING) 00592 #define WSA_IO_INCOMPLETE (ERROR_IO_INCOMPLETE) 00593 #define WSA_INVALID_HANDLE (ERROR_INVALID_HANDLE) 00594 #define WSA_INVALID_PARAMETER (ERROR_INVALID_PARAMETER) 00595 #define WSA_NOT_ENOUGH_MEMORY (ERROR_NOT_ENOUGH_MEMORY) 00596 #define WSA_OPERATION_ABORTED (ERROR_OPERATION_ABORTED) 00597 #define WSA_INVALID_EVENT ((WSAEVENT)NULL) 00598 #define WSA_MAXIMUM_WAIT_EVENTS (MAXIMUM_WAIT_OBJECTS) 00599 #define WSA_WAIT_FAILED ((DWORD)-1L) 00600 #define WSA_WAIT_EVENT_0 (WAIT_OBJECT_0) 00601 #define WSA_WAIT_IO_COMPLETION (WAIT_IO_COMPLETION) 00602 #define WSA_WAIT_TIMEOUT (WAIT_TIMEOUT) 00603 #define WSA_INFINITE (INFINITE) 00604 00605 #else /* WIN16 */ 00606 00607 #define WSAAPI FAR PASCAL 00608 typedef DWORD WSAEVENT, FAR * LPWSAEVENT; 00609 00610 typedef struct _WSAOVERLAPPED { 00611 DWORD Internal; 00612 DWORD InternalHigh; 00613 DWORD Offset; 00614 DWORD OffsetHigh; 00615 WSAEVENT hEvent; 00616 } WSAOVERLAPPED, FAR * LPWSAOVERLAPPED; 00617 00618 #define WSA_IO_PENDING (WSAEWOULDBLOCK) 00619 #define WSA_IO_INCOMPLETE (WSAEWOULDBLOCK) 00620 #define WSA_INVALID_HANDLE (WSAENOTSOCK) 00621 #define WSA_INVALID_PARAMETER (WSAEINVAL) 00622 #define WSA_NOT_ENOUGH_MEMORY (WSAENOBUFS) 00623 #define WSA_OPERATION_ABORTED (WSAEINTR) 00624 00625 #define WSA_INVALID_EVENT ((WSAEVENT)NULL) 00626 #define WSA_MAXIMUM_WAIT_EVENTS (MAXIMUM_WAIT_OBJECTS) 00627 #define WSA_WAIT_FAILED ((DWORD)-1L) 00628 #define WSA_WAIT_EVENT_0 ((DWORD)0) 00629 #define WSA_WAIT_TIMEOUT ((DWORD)0x102L) 00630 #define WSA_INFINITE ((DWORD)-1L) 00631 00632 #endif /* WIN32 */ 00633 00634 #include <qos.h> 00635 00636 typedef struct _QualityOfService { 00637 FLOWSPEC SendingFlowspec; 00638 FLOWSPEC ReceivingFlowspec; 00639 WSABUF ProviderSpecific; 00640 } QOS, *LPQOS; 00641 00642 typedef unsigned int GROUP; 00643 00644 typedef struct _WSANETWORKEVENTS { 00645 LONG lNetworkEvents; 00646 int iErrorCode[FD_MAX_EVENTS]; 00647 } WSANETWORKEVENTS, *LPWSANETWORKEVENTS; 00648 00649 #ifndef GUID_DEFINED 00650 #include <guiddef.h> 00651 #endif 00652 00653 typedef struct _WSAPROTOCOLCHAIN { 00654 int ChainLen; 00655 DWORD ChainEntries[MAX_PROTOCOL_CHAIN]; 00656 } WSAPROTOCOLCHAIN, *LPWSAPROTOCOLCHAIN; 00657 00658 typedef struct _WSAPROTOCOL_INFOA { 00659 DWORD dwServiceFlags1; 00660 DWORD dwServiceFlags2; 00661 DWORD dwServiceFlags3; 00662 DWORD dwServiceFlags4; 00663 DWORD dwProviderFlags; 00664 GUID ProviderId; 00665 DWORD dwCatalogEntryId; 00666 WSAPROTOCOLCHAIN ProtocolChain; 00667 int iVersion; 00668 int iAddressFamily; 00669 int iMaxSockAddr; 00670 int iMinSockAddr; 00671 int iSocketType; 00672 int iProtocol; 00673 int iProtocolMaxOffset; 00674 int iNetworkByteOrder; 00675 int iSecurityScheme; 00676 DWORD dwMessageSize; 00677 DWORD dwProviderReserved; 00678 CHAR szProtocol[WSAPROTOCOL_LEN+1]; 00679 } WSAPROTOCOL_INFOA, *LPWSAPROTOCOL_INFOA; 00680 00681 typedef struct _WSAPROTOCOL_INFOW { 00682 DWORD dwServiceFlags1; 00683 DWORD dwServiceFlags2; 00684 DWORD dwServiceFlags3; 00685 DWORD dwServiceFlags4; 00686 DWORD dwProviderFlags; 00687 GUID ProviderId; 00688 DWORD dwCatalogEntryId; 00689 WSAPROTOCOLCHAIN ProtocolChain; 00690 int iVersion; 00691 int iAddressFamily; 00692 int iMaxSockAddr; 00693 int iMinSockAddr; 00694 int iSocketType; 00695 int iProtocol; 00696 int iProtocolMaxOffset; 00697 int iNetworkByteOrder; 00698 int iSecurityScheme; 00699 DWORD dwMessageSize; 00700 DWORD dwProviderReserved; 00701 WCHAR szProtocol[WSAPROTOCOL_LEN+1]; 00702 } WSAPROTOCOL_INFOW, * LPWSAPROTOCOL_INFOW; 00703 00704 #ifdef UNICODE 00705 typedef WSAPROTOCOL_INFOW WSAPROTOCOL_INFO; 00706 typedef LPWSAPROTOCOL_INFOW LPWSAPROTOCOL_INFO; 00707 #else 00708 typedef WSAPROTOCOL_INFOA WSAPROTOCOL_INFO; 00709 typedef LPWSAPROTOCOL_INFOA LPWSAPROTOCOL_INFO; 00710 #endif 00711 00712 typedef int 00713 (CALLBACK *LPCONDITIONPROC)( 00714 IN LPWSABUF lpCallerId, 00715 IN LPWSABUF lpCallerData, 00716 IN OUT LPQOS lpSQOS, 00717 IN OUT LPQOS lpGQOS, 00718 IN LPWSABUF lpCalleeId, 00719 IN LPWSABUF lpCalleeData, 00720 OUT GROUP FAR *g, 00721 IN DWORD_PTR dwCallbackData); 00722 00723 typedef void 00724 (CALLBACK *LPWSAOVERLAPPED_COMPLETION_ROUTINE)( 00725 IN DWORD dwError, 00726 IN DWORD cbTransferred, 00727 IN LPWSAOVERLAPPED lpOverlapped, 00728 IN DWORD dwFlags); 00729 00730 #if(_WIN32_WINNT >= 0x0501) 00731 00732 #define SIO_NSP_NOTIFY_CHANGE _WSAIOW(IOC_WS2,25) 00733 00734 typedef enum _WSACOMPLETIONTYPE { 00735 NSP_NOTIFY_IMMEDIATELY = 0, 00736 NSP_NOTIFY_HWND, 00737 NSP_NOTIFY_EVENT, 00738 NSP_NOTIFY_PORT, 00739 NSP_NOTIFY_APC 00740 } WSACOMPLETIONTYPE, * PWSACOMPLETIONTYPE, *LPWSACOMPLETIONTYPE; 00741 00742 typedef struct _WSACOMPLETION { 00743 WSACOMPLETIONTYPE Type; 00744 union { 00745 struct { 00746 HWND hWnd; 00747 UINT uMsg; 00748 WPARAM context; 00749 } WindowMessage; 00750 struct { 00751 LPWSAOVERLAPPED lpOverlapped; 00752 } Event; 00753 struct { 00754 LPWSAOVERLAPPED lpOverlapped; 00755 LPWSAOVERLAPPED_COMPLETION_ROUTINE lpfnCompletionProc; 00756 } Apc; 00757 struct { 00758 LPWSAOVERLAPPED lpOverlapped; 00759 HANDLE hPort; 00760 ULONG_PTR Key; 00761 } Port; 00762 } Parameters; 00763 } WSACOMPLETION, *PWSACOMPLETION, *LPWSACOMPLETION; 00764 00765 #endif /* (_WIN32_WINNT >= 0x0501) */ 00766 00767 #ifndef __BLOB_T_DEFINED /* also in wtypes.h and nspapi.h */ 00768 #define __BLOB_T_DEFINED 00769 /* wine is using a diff define */ 00770 #ifndef _tagBLOB_DEFINED 00771 #define _tagBLOB_DEFINED 00772 #define _BLOB_DEFINED 00773 #define _LPBLOB_DEFINED 00774 00775 typedef struct _BLOB { 00776 ULONG cbSize; 00777 #ifdef MIDL_PASS 00778 [size_is(cbSize)] BYTE *pBlobData; 00779 #else 00780 _Field_size_bytes_(cbSize) BYTE *pBlobData ; 00781 #endif 00782 } BLOB,*PBLOB,*LPBLOB; 00783 00784 #endif /* _tagBLOB_DEFINED */ 00785 00786 #endif /* __BLOB_T_DEFINED */ 00787 00788 typedef struct _AFPROTOCOLS { 00789 INT iAddressFamily; 00790 INT iProtocol; 00791 } AFPROTOCOLS, *PAFPROTOCOLS, *LPAFPROTOCOLS; 00792 00793 typedef enum _WSAEcomparator { 00794 COMP_EQUAL = 0, 00795 COMP_NOTLESS 00796 } WSAECOMPARATOR, *PWSAECOMPARATOR, *LPWSAECOMPARATOR; 00797 00798 typedef struct _WSAVersion { 00799 DWORD dwVersion; 00800 WSAECOMPARATOR ecHow; 00801 } WSAVERSION, *PWSAVERSION, *LPWSAVERSION; 00802 00803 typedef struct _WSAQuerySetA { 00804 DWORD dwSize; 00805 LPSTR lpszServiceInstanceName; 00806 LPGUID lpServiceClassId; 00807 LPWSAVERSION lpVersion; 00808 LPSTR lpszComment; 00809 DWORD dwNameSpace; 00810 LPGUID lpNSProviderId; 00811 LPSTR lpszContext; 00812 DWORD dwNumberOfProtocols; 00813 _Field_size_(dwNumberOfProtocols) LPAFPROTOCOLS lpafpProtocols; 00814 LPSTR lpszQueryString; 00815 DWORD dwNumberOfCsAddrs; 00816 _Field_size_(dwNumberOfCsAddrs) LPCSADDR_INFO lpcsaBuffer; 00817 DWORD dwOutputFlags; 00818 LPBLOB lpBlob; 00819 } WSAQUERYSETA, *PWSAQUERYSETA, *LPWSAQUERYSETA; 00820 00821 _Struct_size_bytes_(dwSize) 00822 typedef struct _WSAQuerySetW { 00823 _Field_range_(>=,sizeof(struct _WSAQuerySetW)) DWORD dwSize; 00824 LPWSTR lpszServiceInstanceName; 00825 LPGUID lpServiceClassId; 00826 LPWSAVERSION lpVersion; 00827 LPWSTR lpszComment; 00828 DWORD dwNameSpace; 00829 LPGUID lpNSProviderId; 00830 LPWSTR lpszContext; 00831 DWORD dwNumberOfProtocols; 00832 _Field_size_(dwNumberOfProtocols) LPAFPROTOCOLS lpafpProtocols; 00833 LPWSTR lpszQueryString; 00834 DWORD dwNumberOfCsAddrs; 00835 _Field_size_(dwNumberOfCsAddrs) LPCSADDR_INFO lpcsaBuffer; 00836 DWORD dwOutputFlags; 00837 LPBLOB lpBlob; 00838 } WSAQUERYSETW, *PWSAQUERYSETW, *LPWSAQUERYSETW; 00839 00840 typedef struct _WSAQuerySet2A { 00841 DWORD dwSize; 00842 LPSTR lpszServiceInstanceName; 00843 LPWSAVERSION lpVersion; 00844 LPSTR lpszComment; 00845 DWORD dwNameSpace; 00846 LPGUID lpNSProviderId; 00847 LPSTR lpszContext; 00848 DWORD dwNumberOfProtocols; 00849 LPAFPROTOCOLS lpafpProtocols; 00850 LPSTR lpszQueryString; 00851 DWORD dwNumberOfCsAddrs; 00852 LPCSADDR_INFO lpcsaBuffer; 00853 DWORD dwOutputFlags; 00854 LPBLOB lpBlob; 00855 } WSAQUERYSET2A, *PWSAQUERYSET2A, *LPWSAQUERYSET2A; 00856 00857 typedef struct _WSAQuerySet2W { 00858 DWORD dwSize; 00859 LPWSTR lpszServiceInstanceName; 00860 LPWSAVERSION lpVersion; 00861 LPWSTR lpszComment; 00862 DWORD dwNameSpace; 00863 LPGUID lpNSProviderId; 00864 LPWSTR lpszContext; 00865 DWORD dwNumberOfProtocols; 00866 _Field_size_(dwNumberOfProtocols) LPAFPROTOCOLS lpafpProtocols; 00867 LPWSTR lpszQueryString; 00868 DWORD dwNumberOfCsAddrs; 00869 _Field_size_(dwNumberOfCsAddrs) LPCSADDR_INFO lpcsaBuffer; 00870 DWORD dwOutputFlags; 00871 LPBLOB lpBlob; 00872 } WSAQUERYSET2W, *PWSAQUERYSET2W, *LPWSAQUERYSET2W; 00873 00874 #ifdef UNICODE 00875 typedef WSAQUERYSETW WSAQUERYSET; 00876 typedef PWSAQUERYSETW PWSAQUERYSET; 00877 typedef LPWSAQUERYSETW LPWSAQUERYSET; 00878 typedef WSAQUERYSET2W WSAQUERYSET2; 00879 typedef PWSAQUERYSET2W PWSAQUERYSET2; 00880 typedef LPWSAQUERYSET2W LPWSAQUERYSET2; 00881 #else 00882 typedef WSAQUERYSETA WSAQUERYSET; 00883 typedef PWSAQUERYSETA PWSAQUERYSET; 00884 typedef LPWSAQUERYSETA LPWSAQUERYSET; 00885 typedef WSAQUERYSET2A WSAQUERYSET2; 00886 typedef PWSAQUERYSET2A PWSAQUERYSET2; 00887 typedef LPWSAQUERYSET2A LPWSAQUERYSET2; 00888 #endif /* UNICODE */ 00889 00890 typedef enum _WSAESETSERVICEOP { 00891 RNRSERVICE_REGISTER=0, 00892 RNRSERVICE_DEREGISTER, 00893 RNRSERVICE_DELETE 00894 } WSAESETSERVICEOP, *PWSAESETSERVICEOP, *LPWSAESETSERVICEOP; 00895 00896 typedef struct _WSANSClassInfoA { 00897 LPSTR lpszName; 00898 DWORD dwNameSpace; 00899 DWORD dwValueType; 00900 DWORD dwValueSize; 00901 LPVOID lpValue; 00902 } WSANSCLASSINFOA, *PWSANSCLASSINFOA, *LPWSANSCLASSINFOA; 00903 00904 typedef struct _WSANSClassInfoW { 00905 LPWSTR lpszName; 00906 DWORD dwNameSpace; 00907 DWORD dwValueType; 00908 DWORD dwValueSize; 00909 LPVOID lpValue; 00910 } WSANSCLASSINFOW, *PWSANSCLASSINFOW, *LPWSANSCLASSINFOW; 00911 00912 #ifdef UNICODE 00913 typedef WSANSCLASSINFOW WSANSCLASSINFO; 00914 typedef PWSANSCLASSINFOW PWSANSCLASSINFO; 00915 typedef LPWSANSCLASSINFOW LPWSANSCLASSINFO; 00916 #else 00917 typedef WSANSCLASSINFOA WSANSCLASSINFO; 00918 typedef PWSANSCLASSINFOA PWSANSCLASSINFO; 00919 typedef LPWSANSCLASSINFOA LPWSANSCLASSINFO; 00920 #endif 00921 00922 typedef struct _WSAServiceClassInfoA { 00923 LPGUID lpServiceClassId; 00924 LPSTR lpszServiceClassName; 00925 DWORD dwCount; 00926 LPWSANSCLASSINFOA lpClassInfos; 00927 } WSASERVICECLASSINFOA, *PWSASERVICECLASSINFOA, *LPWSASERVICECLASSINFOA; 00928 00929 typedef struct _WSAServiceClassInfoW { 00930 LPGUID lpServiceClassId; 00931 LPWSTR lpszServiceClassName; 00932 DWORD dwCount; 00933 LPWSANSCLASSINFOW lpClassInfos; 00934 } WSASERVICECLASSINFOW, *PWSASERVICECLASSINFOW, *LPWSASERVICECLASSINFOW; 00935 00936 #ifdef UNICODE 00937 typedef WSASERVICECLASSINFOW WSASERVICECLASSINFO; 00938 typedef PWSASERVICECLASSINFOW PWSASERVICECLASSINFO; 00939 typedef LPWSASERVICECLASSINFOW LPWSASERVICECLASSINFO; 00940 #else 00941 typedef WSASERVICECLASSINFOA WSASERVICECLASSINFO; 00942 typedef PWSASERVICECLASSINFOA PWSASERVICECLASSINFO; 00943 typedef LPWSASERVICECLASSINFOA LPWSASERVICECLASSINFO; 00944 #endif 00945 00946 typedef struct _WSANAMESPACE_INFOA { 00947 GUID NSProviderId; 00948 DWORD dwNameSpace; 00949 BOOL fActive; 00950 DWORD dwVersion; 00951 LPSTR lpszIdentifier; 00952 } WSANAMESPACE_INFOA, *PWSANAMESPACE_INFOA, *LPWSANAMESPACE_INFOA; 00953 00954 typedef struct _WSANAMESPACE_INFOW { 00955 GUID NSProviderId; 00956 DWORD dwNameSpace; 00957 BOOL fActive; 00958 DWORD dwVersion; 00959 LPWSTR lpszIdentifier; 00960 } WSANAMESPACE_INFOW, *PWSANAMESPACE_INFOW, *LPWSANAMESPACE_INFOW; 00961 00962 typedef struct _WSANAMESPACE_INFOEXA { 00963 GUID NSProviderId; 00964 DWORD dwNameSpace; 00965 BOOL fActive; 00966 DWORD dwVersion; 00967 LPSTR lpszIdentifier; 00968 BLOB ProviderSpecific; 00969 } WSANAMESPACE_INFOEXA, *PWSANAMESPACE_INFOEXA, *LPWSANAMESPACE_INFOEXA; 00970 00971 typedef struct _WSANAMESPACE_INFOEXW { 00972 GUID NSProviderId; 00973 DWORD dwNameSpace; 00974 BOOL fActive; 00975 DWORD dwVersion; 00976 LPWSTR lpszIdentifier; 00977 BLOB ProviderSpecific; 00978 } WSANAMESPACE_INFOEXW, *PWSANAMESPACE_INFOEXW, *LPWSANAMESPACE_INFOEXW; 00979 00980 #ifdef UNICODE 00981 typedef WSANAMESPACE_INFOW WSANAMESPACE_INFO; 00982 typedef PWSANAMESPACE_INFOW PWSANAMESPACE_INFO; 00983 typedef LPWSANAMESPACE_INFOW LPWSANAMESPACE_INFO; 00984 typedef WSANAMESPACE_INFOEXW WSANAMESPACE_INFOEX; 00985 typedef PWSANAMESPACE_INFOEXW PWSANAMESPACE_INFOEX; 00986 typedef LPWSANAMESPACE_INFOEXW LPWSANAMESPACE_INFOEX; 00987 #else 00988 typedef WSANAMESPACE_INFOA WSANAMESPACE_INFO; 00989 typedef PWSANAMESPACE_INFOA PWSANAMESPACE_INFO; 00990 typedef LPWSANAMESPACE_INFOA LPWSANAMESPACE_INFO; 00991 typedef WSANAMESPACE_INFOEXA WSANAMESPACE_INFOEX; 00992 typedef PWSANAMESPACE_INFOEXA PWSANAMESPACE_INFOEX; 00993 typedef LPWSANAMESPACE_INFOEXA LPWSANAMESPACE_INFOEX; 00994 #endif /* UNICODE */ 00995 00996 #if(_WIN32_WINNT >= 0x0600) 00997 00998 #define POLLRDNORM 0x0100 00999 #define POLLRDBAND 0x0200 01000 #define POLLIN (POLLRDNORM | POLLRDBAND) 01001 #define POLLPRI 0x0400 01002 01003 #define POLLWRNORM 0x0010 01004 #define POLLOUT (POLLWRNORM) 01005 #define POLLWRBAND 0x0020 01006 01007 #define POLLERR 0x0001 01008 #define POLLHUP 0x0002 01009 #define POLLNVAL 0x0004 01010 01011 typedef struct pollfd { 01012 SOCKET fd; 01013 SHORT events; 01014 SHORT revents; 01015 } WSAPOLLFD, *PWSAPOLLFD, FAR *LPWSAPOLLFD; 01016 01017 #endif /* (_WIN32_WINNT >= 0x0600) */ 01018 01019 #if INCL_WINSOCK_API_TYPEDEFS 01020 01021 _Must_inspect_result_ 01022 typedef SOCKET 01023 (WSAAPI *LPFN_ACCEPT)( 01024 _In_ SOCKET s, 01025 _Out_writes_bytes_opt_(*addrlen) struct sockaddr FAR *addr, 01026 _Inout_opt_ int FAR *addrlen); 01027 01028 typedef int 01029 (WSAAPI *LPFN_BIND)( 01030 _In_ SOCKET s, 01031 _In_reads_bytes_(namelen) const struct sockaddr FAR *name, 01032 _In_ int namelen); 01033 01034 typedef int 01035 (WSAAPI *LPFN_CLOSESOCKET)( 01036 _In_ SOCKET s); 01037 01038 typedef int 01039 (WSAAPI *LPFN_CONNECT)( 01040 _In_ SOCKET s, 01041 _In_reads_bytes_(namelen) const struct sockaddr FAR *name, 01042 _In_ int namelen); 01043 01044 typedef int 01045 (WSAAPI *LPFN_IOCTLSOCKET)( 01046 _In_ SOCKET s, 01047 _In_ long cmd, 01048 _Inout_ u_long FAR *argp); 01049 01050 typedef int 01051 (WSAAPI *LPFN_GETPEERNAME)( 01052 _In_ SOCKET s, 01053 _Out_writes_bytes_to_(*namelen,*namelen) struct sockaddr FAR *name, 01054 _Inout_ int FAR *namelen); 01055 01056 typedef int 01057 (WSAAPI *LPFN_GETSOCKNAME)( 01058 _In_ SOCKET s, 01059 _Out_writes_bytes_to_(*namelen,*namelen) struct sockaddr FAR *name, 01060 _Inout_ int FAR *namelen); 01061 01062 typedef int 01063 (WSAAPI *LPFN_GETSOCKOPT)( 01064 _In_ SOCKET s, 01065 _In_ int level, 01066 _In_ int optname, 01067 _Out_writes_bytes_(*optlen) char FAR *optval, 01068 _Inout_ int FAR *optlen); 01069 01070 typedef u_long 01071 (WSAAPI *LPFN_HTONL)( 01072 _In_ u_long hostlong); 01073 01074 typedef u_short 01075 (WSAAPI *LPFN_HTONS)( 01076 _In_ u_short hostshort); 01077 01078 typedef unsigned long 01079 (WSAAPI *LPFN_INET_ADDR)( 01080 _In_ const char FAR *cp); 01081 01082 typedef char FAR * 01083 (WSAAPI *LPFN_INET_NTOA)( 01084 _In_ struct in_addr in); 01085 01086 typedef int 01087 (WSAAPI *LPFN_LISTEN)( 01088 _In_ SOCKET s, 01089 _In_ int backlog); 01090 01091 typedef u_long 01092 (WSAAPI *LPFN_NTOHL)( 01093 _In_ u_long netlong); 01094 01095 typedef u_short 01096 (WSAAPI *LPFN_NTOHS)( 01097 _In_ u_short netshort); 01098 01099 typedef int 01100 (WSAAPI *LPFN_RECV)( 01101 _In_ SOCKET s, 01102 _Out_writes_bytes_to_(len, return) char FAR *buf, 01103 _In_ int len, 01104 _In_ int flags); 01105 01106 typedef int 01107 (WSAAPI *LPFN_RECVFROM)( 01108 _In_ SOCKET s, 01109 _Out_writes_bytes_to_(len, return) char FAR *buf, 01110 _In_ int len, 01111 _In_ int flags, 01112 _Out_writes_bytes_to_opt_(*fromlen, *fromlen) struct sockaddr FAR *from, 01113 _Inout_opt_ int FAR * fromlen); 01114 01115 typedef int 01116 (WSAAPI *LPFN_SELECT)( 01117 _In_ int nfds, 01118 _Inout_opt_ fd_set FAR *readfds, 01119 _Inout_opt_ fd_set FAR *writefds, 01120 _Inout_opt_ fd_set FAR *exceptfds, 01121 _In_opt_ const struct timeval FAR *timeout); 01122 01123 typedef int 01124 (WSAAPI *LPFN_SEND)( 01125 _In_ SOCKET s, 01126 _In_reads_bytes_(len) const char FAR *buf, 01127 _In_ int len, 01128 _In_ int flags); 01129 01130 typedef int 01131 (WSAAPI *LPFN_SENDTO)( 01132 _In_ SOCKET s, 01133 _In_reads_bytes_(len) const char FAR *buf, 01134 _In_ int len, 01135 _In_ int flags, 01136 _In_reads_bytes_(tolen) const struct sockaddr FAR *to, 01137 _In_ int tolen); 01138 01139 typedef int 01140 (WSAAPI *LPFN_SETSOCKOPT)( 01141 _In_ SOCKET s, 01142 _In_ int level, 01143 _In_ int optname, 01144 _In_reads_bytes_(optlen) const char FAR *optval, 01145 _In_ int optlen); 01146 01147 typedef int 01148 (WSAAPI *LPFN_SHUTDOWN)( 01149 _In_ SOCKET s, 01150 _In_ int how); 01151 01152 _Must_inspect_result_ 01153 typedef SOCKET 01154 (WSAAPI *LPFN_SOCKET)( 01155 _In_ int af, 01156 _In_ int type, 01157 _In_ int protocol); 01158 01159 typedef struct hostent FAR * 01160 (WSAAPI *LPFN_GETHOSTBYADDR)( 01161 _In_reads_bytes_(len) const char FAR *addr, 01162 _In_ int len, 01163 _In_ int type); 01164 01165 typedef struct hostent FAR * 01166 (WSAAPI *LPFN_GETHOSTBYNAME)( 01167 _In_ const char FAR *name); 01168 01169 typedef int 01170 (WSAAPI *LPFN_GETHOSTNAME)( 01171 _Out_writes_bytes_(namelen) char FAR *name, 01172 _In_ int namelen); 01173 01174 typedef struct servent FAR * 01175 (WSAAPI *LPFN_GETSERVBYPORT)( 01176 _In_ int port, 01177 _In_opt_z_ const char FAR *proto); 01178 01179 typedef struct servent FAR * 01180 (WSAAPI *LPFN_GETSERVBYNAME)( 01181 _In_z_ const char FAR *name, 01182 _In_opt_z_ const char FAR *proto); 01183 01184 typedef struct protoent FAR * 01185 (WSAAPI *LPFN_GETPROTOBYNUMBER)( 01186 _In_ int number); 01187 01188 typedef struct protoent FAR * 01189 (WSAAPI *LPFN_GETPROTOBYNAME)( 01190 _In_z_ const char FAR *name); 01191 01192 _Must_inspect_result_ 01193 typedef int 01194 (WSAAPI *LPFN_WSASTARTUP)( 01195 _In_ WORD wVersionRequired, 01196 _Out_ LPWSADATA lpWSAData); 01197 01198 typedef int 01199 (WSAAPI *LPFN_WSACLEANUP)(void); 01200 01201 typedef void 01202 (WSAAPI *LPFN_WSASETLASTERROR)( 01203 _In_ int iError); 01204 01205 typedef int 01206 (WSAAPI *LPFN_WSAGETLASTERROR)(void); 01207 01208 typedef BOOL 01209 (WSAAPI *LPFN_WSAISBLOCKING)(void); 01210 01211 typedef int 01212 (WSAAPI *LPFN_WSAUNHOOKBLOCKINGHOOK)(void); 01213 01214 typedef FARPROC 01215 (WSAAPI *LPFN_WSASETBLOCKINGHOOK)( 01216 _In_ FARPROC lpBlockFunc); 01217 01218 typedef int 01219 (WSAAPI *LPFN_WSACANCELBLOCKINGCALL)(void); 01220 01221 typedef HANDLE 01222 (WSAAPI *LPFN_WSAASYNCGETSERVBYNAME)( 01223 _In_ HWND hWnd, 01224 _In_ u_int wMsg, 01225 _In_z_ const char FAR *name, 01226 _In_z_ const char FAR *proto, 01227 _Out_writes_bytes_(buflen) char FAR *buf, 01228 _In_ int buflen); 01229 01230 typedef HANDLE 01231 (WSAAPI *LPFN_WSAASYNCGETSERVBYPORT)( 01232 _In_ HWND hWnd, 01233 _In_ u_int wMsg, 01234 _In_ int port, 01235 _In_ const char FAR *proto, 01236 _Out_writes_bytes_(buflen) char FAR *buf, 01237 _In_ int buflen); 01238 01239 typedef HANDLE 01240 (WSAAPI *LPFN_WSAASYNCGETPROTOBYNAME)( 01241 _In_ HWND hWnd, 01242 _In_ u_int wMsg, 01243 _In_z_ const char FAR *name, 01244 _Out_writes_bytes_(buflen) char FAR *buf, 01245 _In_ int buflen); 01246 01247 typedef HANDLE 01248 (WSAAPI *LPFN_WSAASYNCGETPROTOBYNUMBER)( 01249 _In_ HWND hWnd, 01250 _In_ u_int wMsg, 01251 _In_ int number, 01252 _Out_writes_bytes_(buflen) char FAR *buf, 01253 _In_ int buflen); 01254 01255 typedef HANDLE 01256 (WSAAPI *LPFN_WSAASYNCGETHOSTBYNAME)( 01257 _In_ HWND hWnd, 01258 _In_ u_int wMsg, 01259 _In_z_ const char FAR *name, 01260 _Out_writes_bytes_(buflen) char FAR *buf, 01261 _In_ int buflen); 01262 01263 typedef HANDLE 01264 (WSAAPI *LPFN_WSAASYNCGETHOSTBYADDR)( 01265 _In_ HWND hWnd, 01266 _In_ u_int wMsg, 01267 _In_reads_bytes_(len) const char FAR *addr, 01268 _In_ int len, 01269 _In_ int type, 01270 _Out_writes_bytes_(buflen) char FAR *buf, 01271 _In_ int buflen); 01272 01273 typedef int 01274 (WSAAPI *LPFN_WSACANCELASYNCREQUEST)( 01275 _In_ HANDLE hAsyncTaskHandle); 01276 01277 typedef int 01278 (WSAAPI *LPFN_WSAASYNCSELECT)( 01279 _In_ SOCKET s, 01280 _In_ HWND hWnd, 01281 _In_ u_int wMsg, 01282 _In_ long lEvent); 01283 01284 _Must_inspect_result_ 01285 typedef SOCKET 01286 (WSAAPI *LPFN_WSAACCEPT)( 01287 _In_ SOCKET s, 01288 _Out_writes_bytes_to_opt_(*addrlen,*addrlen) struct sockaddr FAR *addr, 01289 _Inout_opt_ LPINT addrlen, 01290 _In_opt_ LPCONDITIONPROC lpfnCondition, 01291 _In_opt_ DWORD_PTR dwCallbackData); 01292 01293 typedef BOOL 01294 (WSAAPI *LPFN_WSACLOSEEVENT)( 01295 _In_ WSAEVENT hEvent); 01296 01297 typedef int 01298 (WSAAPI *LPFN_WSACONNECT)( 01299 _In_ SOCKET s, 01300 _In_reads_bytes_(namelen) const struct sockaddr FAR *name, 01301 _In_ int namelen, 01302 _In_opt_ LPWSABUF lpCallerData, 01303 _Out_opt_ LPWSABUF lpCalleeData, 01304 _In_opt_ LPQOS lpSQOS, 01305 _In_opt_ LPQOS lpGQOS); 01306 01307 typedef WSAEVENT 01308 (WSAAPI *LPFN_WSACREATEEVENT)(void); 01309 01310 typedef int 01311 (WSAAPI *LPFN_WSADUPLICATESOCKETA)( 01312 _In_ SOCKET s, 01313 _In_ DWORD dwProcessId, 01314 _Out_ LPWSAPROTOCOL_INFOA lpProtocolInfo); 01315 01316 typedef int 01317 (WSAAPI *LPFN_WSADUPLICATESOCKETW)( 01318 _In_ SOCKET s, 01319 _In_ DWORD dwProcessId, 01320 _Out_ LPWSAPROTOCOL_INFOW lpProtocolInfo); 01321 01322 #ifdef UNICODE 01323 #define LPFN_WSADUPLICATESOCKET LPFN_WSADUPLICATESOCKETW 01324 #else 01325 #define LPFN_WSADUPLICATESOCKET LPFN_WSADUPLICATESOCKETA 01326 #endif 01327 01328 typedef int 01329 (WSAAPI *LPFN_WSAENUMNETWORKEVENTS)( 01330 _In_ SOCKET s, 01331 _In_ WSAEVENT hEventObject, 01332 _Out_ LPWSANETWORKEVENTS lpNetworkEvents); 01333 01334 typedef int 01335 (WSAAPI *LPFN_WSAENUMPROTOCOLSA)( 01336 _In_opt_ LPINT lpiProtocols, 01337 _Out_writes_bytes_to_opt_(*lpdwBufferLength,*lpdwBufferLength) LPWSAPROTOCOL_INFOA lpProtocolBuffer, 01338 _Inout_ LPDWORD lpdwBufferLength); 01339 01340 typedef int 01341 (WSAAPI *LPFN_WSAENUMPROTOCOLSW)( 01342 _In_opt_ LPINT lpiProtocols, 01343 _Out_writes_bytes_to_opt_(*lpdwBufferLength,*lpdwBufferLength) LPWSAPROTOCOL_INFOW lpProtocolBuffer, 01344 _Inout_ LPDWORD lpdwBufferLength); 01345 01346 #ifdef UNICODE 01347 #define LPFN_WSAENUMPROTOCOLS LPFN_WSAENUMPROTOCOLSW 01348 #else 01349 #define LPFN_WSAENUMPROTOCOLS LPFN_WSAENUMPROTOCOLSA 01350 #endif 01351 01352 typedef int 01353 (WSAAPI *LPFN_WSAEVENTSELECT)( 01354 _In_ SOCKET s, 01355 _In_opt_ WSAEVENT hEventObject, 01356 _In_ long lNetworkEvents); 01357 01358 typedef BOOL 01359 (WSAAPI *LPFN_WSAGETOVERLAPPEDRESULT)( 01360 _In_ SOCKET s, 01361 _In_ LPWSAOVERLAPPED lpOverlapped, 01362 _Out_ LPDWORD lpcbTransfer, 01363 _In_ BOOL fWait, 01364 _Out_ LPDWORD lpdwFlags); 01365 01366 typedef BOOL 01367 (WSAAPI *LPFN_WSAGETQOSBYNAME)( 01368 IN SOCKET s, 01369 IN LPWSABUF lpQOSName, 01370 OUT LPQOS lpQOS); 01371 01372 typedef int 01373 (WSAAPI *LPFN_WSAHTONL)( 01374 _In_ SOCKET s, 01375 _In_ u_long hostlong, 01376 _Out_ u_long FAR *lpnetlong); 01377 01378 typedef int 01379 (WSAAPI *LPFN_WSAHTONS)( 01380 _In_ SOCKET s, 01381 _In_ u_short hostshort, 01382 _Out_ u_short FAR *lpnetshort); 01383 01384 typedef int 01385 (WSAAPI *LPFN_WSAIOCTL)( 01386 _In_ SOCKET s, 01387 _In_ DWORD dwIoControlCode, 01388 _In_reads_bytes_opt_(cbInBuffer) LPVOID lpvInBuffer, 01389 _In_ DWORD cbInBuffer, 01390 _Out_writes_bytes_to_opt_(cbOutBuffer, *lpcbBytesReturned) LPVOID lpvOutBuffer, 01391 _In_ DWORD cbOutBuffer, 01392 _Out_ LPDWORD lpcbBytesReturned, 01393 _Inout_opt_ LPWSAOVERLAPPED lpOverlapped, 01394 _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine); 01395 01396 typedef SOCKET 01397 (WSAAPI *LPFN_WSAJOINLEAF)( 01398 _In_ SOCKET s, 01399 _In_reads_bytes_(namelen) const struct sockaddr FAR *name, 01400 _In_ int namelen, 01401 _In_opt_ LPWSABUF lpCallerData, 01402 _Out_opt_ LPWSABUF lpCalleeData, 01403 _In_opt_ LPQOS lpSQOS, 01404 _In_opt_ LPQOS lpGQOS, 01405 _In_ DWORD dwFlags); 01406 01407 typedef int 01408 (WSAAPI *LPFN_WSANTOHL)( 01409 _In_ SOCKET s, 01410 _In_ u_long netlong, 01411 _Out_ u_long FAR *lphostlong); 01412 01413 typedef int 01414 (WSAAPI *LPFN_WSANTOHS)( 01415 _In_ SOCKET s, 01416 _In_ u_short netshort, 01417 _Out_ u_short FAR *lphostshort); 01418 01419 typedef int 01420 (WSAAPI *LPFN_WSARECV)( 01421 _In_ SOCKET s, 01422 _In_reads_(dwBufferCount) LPWSABUF lpBuffers, 01423 _In_ DWORD dwBufferCount, 01424 _Out_opt_ LPDWORD lpNumberOfBytesRecvd, 01425 _Inout_ LPDWORD lpFlags, 01426 _Inout_opt_ LPWSAOVERLAPPED lpOverlapped, 01427 _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine); 01428 01429 typedef int 01430 (WSAAPI *LPFN_WSARECVDISCONNECT)( 01431 _In_ SOCKET s, 01432 __out_data_source(NETWORK) LPWSABUF lpInboundDisconnectData); 01433 01434 typedef int 01435 (WSAAPI *LPFN_WSARECVFROM)( 01436 _In_ SOCKET s, 01437 _In_reads_(dwBufferCount) LPWSABUF lpBuffers, 01438 _In_ DWORD dwBufferCount, 01439 _Out_opt_ LPDWORD lpNumberOfBytesRecvd, 01440 _Inout_ LPDWORD lpFlags, 01441 _Out_writes_bytes_to_opt_(*lpFromlen,*lpFromlen) struct sockaddr FAR *lpFrom, 01442 _Inout_opt_ LPINT lpFromlen, 01443 _Inout_opt_ LPWSAOVERLAPPED lpOverlapped, 01444 _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine); 01445 01446 typedef BOOL 01447 (WSAAPI *LPFN_WSARESETEVENT)( 01448 _In_ WSAEVENT hEvent); 01449 01450 typedef int 01451 (WSAAPI *LPFN_WSASEND)( 01452 _In_ SOCKET s, 01453 _In_reads_(dwBufferCount) LPWSABUF lpBuffers, 01454 _In_ DWORD dwBufferCount, 01455 _Out_opt_ LPDWORD lpNumberOfBytesSent, 01456 _In_ DWORD dwFlags, 01457 _Inout_opt_ LPWSAOVERLAPPED lpOverlapped, 01458 _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine); 01459 01460 typedef int 01461 (WSAAPI *LPFN_WSASENDDISCONNECT)( 01462 _In_ SOCKET s, 01463 _In_opt_ LPWSABUF lpOutboundDisconnectData); 01464 01465 typedef int 01466 (WSAAPI *LPFN_WSASENDTO)( 01467 _In_ SOCKET s, 01468 _In_reads_(dwBufferCount) LPWSABUF lpBuffers, 01469 _In_ DWORD dwBufferCount, 01470 _Out_opt_ LPDWORD lpNumberOfBytesSent, 01471 _In_ DWORD dwFlags, 01472 _In_reads_bytes_opt_(iTolen) const struct sockaddr FAR *lpTo, 01473 _In_ int iTolen, 01474 _Inout_opt_ LPWSAOVERLAPPED lpOverlapped, 01475 _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine); 01476 01477 typedef BOOL 01478 (WSAAPI *LPFN_WSASETEVENT)( 01479 _In_ WSAEVENT hEvent); 01480 01481 _Must_inspect_result_ 01482 typedef SOCKET 01483 (WSAAPI *LPFN_WSASOCKETA)( 01484 _In_ int af, 01485 _In_ int type, 01486 _In_ int protocol, 01487 _In_opt_ LPWSAPROTOCOL_INFOA lpProtocolInfo, 01488 _In_ GROUP g, 01489 _In_ DWORD dwFlags); 01490 01491 _Must_inspect_result_ 01492 typedef SOCKET 01493 (WSAAPI *LPFN_WSASOCKETW)( 01494 _In_ int af, 01495 _In_ int type, 01496 _In_ int protocol, 01497 _In_opt_ LPWSAPROTOCOL_INFOW lpProtocolInfo, 01498 _In_ GROUP g, 01499 _In_ DWORD dwFlags); 01500 01501 #ifdef UNICODE 01502 #define LPFN_WSASOCKET LPFN_WSASOCKETW 01503 #else 01504 #define LPFN_WSASOCKET LPFN_WSASOCKETA 01505 #endif 01506 01507 typedef DWORD 01508 (WSAAPI *LPFN_WSAWAITFORMULTIPLEEVENTS)( 01509 _In_ DWORD cEvents, 01510 _In_reads_(cEvents) const WSAEVENT FAR *lphEvents, 01511 _In_ BOOL fWaitAll, 01512 _In_ DWORD dwTimeout, 01513 _In_ BOOL fAlertable); 01514 01515 typedef INT 01516 (WSAAPI *LPFN_WSAADDRESSTOSTRINGA)( 01517 _In_reads_bytes_(dwAddressLength) LPSOCKADDR lpsaAddress, 01518 _In_ DWORD dwAddressLength, 01519 _In_opt_ LPWSAPROTOCOL_INFOA lpProtocolInfo, 01520 _Out_writes_to_(*lpdwAddressStringLength,*lpdwAddressStringLength) LPSTR lpszAddressString, 01521 _Inout_ LPDWORD lpdwAddressStringLength); 01522 01523 typedef INT 01524 (WSAAPI *LPFN_WSAADDRESSTOSTRINGW)( 01525 _In_reads_bytes_(dwAddressLength) LPSOCKADDR lpsaAddress, 01526 _In_ DWORD dwAddressLength, 01527 _In_opt_ LPWSAPROTOCOL_INFOW lpProtocolInfo, 01528 _Out_writes_to_(*lpdwAddressStringLength,*lpdwAddressStringLength) LPWSTR lpszAddressString, 01529 _Inout_ LPDWORD lpdwAddressStringLength); 01530 01531 #ifdef UNICODE 01532 #define LPFN_WSAADDRESSTOSTRING LPFN_WSAADDRESSTOSTRINGW 01533 #else 01534 #define LPFN_WSAADDRESSTOSTRING LPFN_WSAADDRESSTOSTRINGA 01535 #endif 01536 01537 typedef INT 01538 (WSAAPI *LPFN_WSASTRINGTOADDRESSA)( 01539 _In_ LPSTR AddressString, 01540 _In_ INT AddressFamily, 01541 _In_opt_ LPWSAPROTOCOL_INFOA lpProtocolInfo, 01542 _Out_writes_bytes_to_(*lpAddressLength,*lpAddressLength) LPSOCKADDR lpAddress, 01543 _Inout_ LPINT lpAddressLength); 01544 01545 typedef INT 01546 (WSAAPI *LPFN_WSASTRINGTOADDRESSW)( 01547 _In_ LPWSTR AddressString, 01548 _In_ INT AddressFamily, 01549 _In_opt_ LPWSAPROTOCOL_INFOW lpProtocolInfo, 01550 _Out_writes_bytes_to_(*lpAddressLength,*lpAddressLength) LPSOCKADDR lpAddress, 01551 _Inout_ LPINT lpAddressLength); 01552 01553 #ifdef UNICODE 01554 #define LPFN_WSASTRINGTOADDRESS LPFN_WSASTRINGTOADDRESSW 01555 #else 01556 #define LPFN_WSASTRINGTOADDRESS LPFN_WSASTRINGTOADDRESSA 01557 #endif 01558 01559 typedef INT 01560 (WSAAPI *LPFN_WSALOOKUPSERVICEBEGINA)( 01561 _In_ LPWSAQUERYSETA lpqsRestrictions, 01562 _In_ DWORD dwControlFlags, 01563 _Out_ LPHANDLE lphLookup); 01564 01565 typedef INT 01566 (WSAAPI *LPFN_WSALOOKUPSERVICEBEGINW)( 01567 _In_ LPWSAQUERYSETW lpqsRestrictions, 01568 _In_ DWORD dwControlFlags, 01569 _Out_ LPHANDLE lphLookup); 01570 01571 #ifdef UNICODE 01572 #define LPFN_WSALOOKUPSERVICEBEGIN LPFN_WSALOOKUPSERVICEBEGINW 01573 #else 01574 #define LPFN_WSALOOKUPSERVICEBEGIN LPFN_WSALOOKUPSERVICEBEGINA 01575 #endif 01576 01577 typedef INT 01578 (WSAAPI *LPFN_WSALOOKUPSERVICENEXTA)( 01579 _In_ HANDLE hLookup, 01580 _In_ DWORD dwControlFlags, 01581 _Inout_ LPDWORD lpdwBufferLength, 01582 _Out_writes_bytes_to_(*lpdwBufferLength,*lpdwBufferLength) LPWSAQUERYSETA lpqsResults); 01583 01584 typedef INT 01585 (WSAAPI *LPFN_WSALOOKUPSERVICENEXTW)( 01586 _In_ HANDLE hLookup, 01587 _In_ DWORD dwControlFlags, 01588 _Inout_ LPDWORD lpdwBufferLength, 01589 _Out_writes_bytes_to_opt_(*lpdwBufferLength,*lpdwBufferLength) LPWSAQUERYSETW lpqsResults); 01590 01591 #ifdef UNICODE 01592 #define LPFN_WSALOOKUPSERVICENEXT LPFN_WSALOOKUPSERVICENEXTW 01593 #else 01594 #define LPFN_WSALOOKUPSERVICENEXT LPFN_WSALOOKUPSERVICENEXTA 01595 #endif 01596 01597 typedef INT 01598 (WSAAPI *LPFN_WSALOOKUPSERVICEEND)( 01599 _In_ HANDLE hLookup); 01600 01601 typedef INT 01602 (WSAAPI *LPFN_WSAINSTALLSERVICECLASSA)( 01603 _In_ LPWSASERVICECLASSINFOA lpServiceClassInfo); 01604 01605 typedef INT 01606 (WSAAPI *LPFN_WSAINSTALLSERVICECLASSW)( 01607 _In_ LPWSASERVICECLASSINFOW lpServiceClassInfo); 01608 01609 #ifdef UNICODE 01610 #define LPFN_WSAINSTALLSERVICECLASS LPFN_WSAINSTALLSERVICECLASSW 01611 #else 01612 #define LPFN_WSAINSTALLSERVICECLASS LPFN_WSAINSTALLSERVICECLASSA 01613 #endif 01614 01615 typedef INT 01616 (WSAAPI *LPFN_WSAREMOVESERVICECLASS)( 01617 _In_ LPGUID lpServiceClassId); 01618 01619 typedef INT 01620 (WSAAPI *LPFN_WSAGETSERVICECLASSINFOA)( 01621 _In_ LPGUID lpProviderId, 01622 _In_ LPGUID lpServiceClassId, 01623 _Inout_ LPDWORD lpdwBufSize, 01624 _Out_writes_bytes_to_(*lpdwBufSize,*lpdwBufSize) LPWSASERVICECLASSINFOA lpServiceClassInfo); 01625 01626 typedef INT 01627 (WSAAPI *LPFN_WSAGETSERVICECLASSINFOW)( 01628 _In_ LPGUID lpProviderId, 01629 _In_ LPGUID lpServiceClassId, 01630 _Inout_ LPDWORD lpdwBufSize, 01631 _Out_writes_bytes_to_(*lpdwBufSize,*lpdwBufSize) LPWSASERVICECLASSINFOW lpServiceClassInfo); 01632 01633 #ifdef UNICODE 01634 #define LPFN_WSAGETSERVICECLASSINFO LPFN_WSAGETSERVICECLASSINFOW 01635 #else 01636 #define LPFN_WSAGETSERVICECLASSINFO LPFN_WSAGETSERVICECLASSINFOA 01637 #endif 01638 01639 typedef INT 01640 (WSAAPI *LPFN_WSAENUMNAMESPACEPROVIDERSA)( 01641 _Inout_ LPDWORD lpdwBufferLength, 01642 _Out_writes_bytes_to_(*lpdwBufferLength,*lpdwBufferLength) LPWSANAMESPACE_INFOA lpnspBuffer); 01643 01644 typedef INT 01645 (WSAAPI *LPFN_WSAENUMNAMESPACEPROVIDERSW)( 01646 _Inout_ LPDWORD lpdwBufferLength, 01647 _Out_writes_bytes_to_(*lpdwBufferLength,*lpdwBufferLength) LPWSANAMESPACE_INFOW lpnspBuffer); 01648 01649 #ifdef UNICODE 01650 #define LPFN_WSAENUMNAMESPACEPROVIDERS LPFN_WSAENUMNAMESPACEPROVIDERSW 01651 #else 01652 #define LPFN_WSAENUMNAMESPACEPROVIDERS LPFN_WSAENUMNAMESPACEPROVIDERSA 01653 #endif 01654 01655 typedef INT 01656 (WSAAPI *LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA)( 01657 _In_ LPGUID lpServiceClassId, 01658 _Out_writes_bytes_to_(*lpdwBufferLength,*lpdwBufferLength) LPSTR lpszServiceClassName, 01659 _Inout_ LPDWORD lpdwBufferLength); 01660 01661 typedef INT 01662 (WSAAPI *LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW)( 01663 _In_ LPGUID lpServiceClassId, 01664 _Out_writes_bytes_to_(*lpdwBufferLength,*lpdwBufferLength) LPWSTR lpszServiceClassName, 01665 _Inout_ LPDWORD lpdwBufferLength); 01666 01667 #ifdef UNICODE 01668 #define LPFN_WSAGETSERVICECLASSNAMEBYCLASSID LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW 01669 #else 01670 #define LPFN_WSAGETSERVICECLASSNAMEBYCLASSID LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA 01671 #endif 01672 01673 typedef INT 01674 (WSAAPI *LPFN_WSASETSERVICEA)( 01675 _In_ LPWSAQUERYSETA lpqsRegInfo, 01676 _In_ WSAESETSERVICEOP essoperation, 01677 _In_ DWORD dwControlFlags); 01678 01679 typedef INT 01680 (WSAAPI *LPFN_WSASETSERVICEW)( 01681 _In_ LPWSAQUERYSETW lpqsRegInfo, 01682 _In_ WSAESETSERVICEOP essoperation, 01683 _In_ DWORD dwControlFlags); 01684 01685 #ifdef UNICODE 01686 #define LPFN_WSASETSERVICE LPFN_WSASETSERVICEW 01687 #else 01688 #define LPFN_WSASETSERVICE LPFN_WSASETSERVICEA 01689 #endif 01690 01691 typedef INT 01692 (WSAAPI *LPFN_WSAPROVIDERCONFIGCHANGE)( 01693 _Inout_ LPHANDLE lpNotificationHandle, 01694 _Inout_opt_ LPWSAOVERLAPPED lpOverlapped, 01695 _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine); 01696 01697 #if(_WIN32_WINNT >= 0x0501) 01698 typedef INT 01699 (WSAAPI *LPFN_WSANSPIOCTL)( 01700 _In_ HANDLE hLookup, 01701 _In_ DWORD dwControlCode, 01702 _In_reads_bytes_opt_(cbInBuffer) LPVOID lpvInBuffer, 01703 _In_ DWORD cbInBuffer, 01704 _Out_writes_bytes_to_opt_(cbOutBuffer, *lpcbBytesReturned) LPVOID lpvOutBuffer, 01705 _In_ DWORD cbOutBuffer, 01706 _Out_ LPDWORD lpcbBytesReturned, 01707 _In_opt_ LPWSACOMPLETION lpCompletion); 01708 #endif /* (_WIN32_WINNT >= 0x0501) */ 01709 01710 #if (_WIN32_WINNT >= 0x0600) 01711 01712 typedef INT 01713 (WSAAPI *LPFN_WSAENUMNAMESPACEPROVIDERSEXA)( 01714 _Inout_ LPDWORD lpdwBufferLength, 01715 _Out_writes_bytes_to_(*lpdwBufferLength,*lpdwBufferLength) LPWSANAMESPACE_INFOEXA lpnspBuffer); 01716 01717 typedef INT 01718 (WSAAPI *LPFN_WSAENUMNAMESPACEPROVIDERSEXW)( 01719 _Inout_ LPDWORD lpdwBufferLength, 01720 _Out_writes_bytes_to_(*lpdwBufferLength,*lpdwBufferLength) LPWSANAMESPACE_INFOEXW lpnspBuffer); 01721 01722 #ifdef UNICODE 01723 #define LPFN_WSAENUMNAMESPACEPROVIDERSEX LPFN_WSAENUMNAMESPACEPROVIDERSEXW 01724 #else 01725 #define LPFN_WSAENUMNAMESPACEPROVIDERSEX LPFN_WSAENUMNAMESPACEPROVIDERSEXA 01726 #endif 01727 01728 #endif /* (_WIN32_WINNT >= 0x600) */ 01729 01730 #endif /* INCL_WINSOCK_API_TYPEDEFS */ 01731 01732 #if INCL_WINSOCK_API_PROTOTYPES 01733 01734 _Must_inspect_result_ 01735 WINSOCK_API_LINKAGE 01736 SOCKET 01737 WSAAPI 01738 accept( 01739 _In_ SOCKET s, 01740 _Out_writes_bytes_opt_(*addrlen) struct sockaddr FAR *addr, 01741 _Inout_opt_ int FAR *addrlen); 01742 01743 WINSOCK_API_LINKAGE 01744 int 01745 WSAAPI 01746 bind( 01747 _In_ SOCKET s, 01748 _In_reads_bytes_(namelen) const struct sockaddr FAR *addr, 01749 _In_ int namelen); 01750 01751 WINSOCK_API_LINKAGE 01752 int 01753 WSAAPI 01754 closesocket( 01755 _In_ SOCKET s); 01756 01757 WINSOCK_API_LINKAGE 01758 int 01759 WSAAPI 01760 connect( 01761 _In_ SOCKET s, 01762 _In_reads_bytes_(namelen) const struct sockaddr FAR *name, 01763 _In_ int namelen); 01764 01765 WINSOCK_API_LINKAGE 01766 int 01767 WSAAPI 01768 ioctlsocket( 01769 _In_ SOCKET s, 01770 _In_ long cmd, 01771 _Inout_ u_long FAR *argp); 01772 01773 WINSOCK_API_LINKAGE 01774 int 01775 WSAAPI 01776 getpeername( 01777 _In_ SOCKET s, 01778 _Out_writes_bytes_to_(*namelen,*namelen) struct sockaddr FAR *name, 01779 _Inout_ int FAR *namelen); 01780 01781 WINSOCK_API_LINKAGE 01782 int 01783 WSAAPI 01784 getsockname( 01785 _In_ SOCKET s, 01786 _Out_writes_bytes_to_(*namelen,*namelen) struct sockaddr FAR *name, 01787 _Inout_ int FAR *namelen); 01788 01789 WINSOCK_API_LINKAGE 01790 int 01791 WSAAPI 01792 getsockopt( 01793 _In_ SOCKET s, 01794 _In_ int level, 01795 _In_ int optname, 01796 _Out_writes_bytes_(*optlen) char FAR *optval, 01797 _Inout_ int FAR *optlen); 01798 01799 WINSOCK_API_LINKAGE 01800 u_long 01801 WSAAPI 01802 htonl( 01803 IN u_long hostlong); 01804 01805 WINSOCK_API_LINKAGE 01806 u_short 01807 WSAAPI 01808 htons( 01809 _In_ u_short hostshort); 01810 01811 WINSOCK_API_LINKAGE 01812 unsigned long 01813 WSAAPI 01814 inet_addr( 01815 _In_z_ const char FAR *cp); 01816 01817 WINSOCK_API_LINKAGE 01818 char FAR * 01819 WSAAPI 01820 inet_ntoa( 01821 _In_ struct in_addr in); 01822 01823 WINSOCK_API_LINKAGE 01824 int 01825 WSAAPI 01826 listen( 01827 _In_ SOCKET s, 01828 _In_ int backlog); 01829 01830 WINSOCK_API_LINKAGE 01831 u_long 01832 WSAAPI 01833 ntohl( 01834 _In_ u_long netlong); 01835 01836 WINSOCK_API_LINKAGE 01837 u_short 01838 WSAAPI 01839 ntohs( 01840 _In_ u_short netshort); 01841 01842 WINSOCK_API_LINKAGE 01843 int 01844 WSAAPI 01845 recv( 01846 _In_ SOCKET s, 01847 _Out_writes_bytes_to_(len, return) __out_data_source(NETWORK) char FAR *buf, 01848 _In_ int len, 01849 _In_ int flags); 01850 01851 WINSOCK_API_LINKAGE 01852 int 01853 WSAAPI 01854 recvfrom( 01855 _In_ SOCKET s, 01856 _Out_writes_bytes_to_(len, return) __out_data_source(NETWORK) char FAR *buf, 01857 _In_ int len, 01858 _In_ int flags, 01859 _Out_writes_bytes_to_opt_(*fromlen, *fromlen) struct sockaddr FAR *from, 01860 _Inout_opt_ int FAR *fromlen); 01861 01862 WINSOCK_API_LINKAGE 01863 int 01864 WSAAPI 01865 select( 01866 _In_ int nfds, 01867 _Inout_opt_ fd_set FAR *readfds, 01868 _Inout_opt_ fd_set FAR *writefds, 01869 _Inout_opt_ fd_set FAR *exceptfds, 01870 _In_opt_ const struct timeval FAR *timeout); 01871 01872 WINSOCK_API_LINKAGE 01873 int 01874 WSAAPI 01875 send( 01876 _In_ SOCKET s, 01877 _In_reads_bytes_(len) const char FAR *buf, 01878 _In_ int len, 01879 _In_ int flags); 01880 01881 WINSOCK_API_LINKAGE 01882 int 01883 WSAAPI 01884 sendto( 01885 _In_ SOCKET s, 01886 _In_reads_bytes_(len) const char FAR *buf, 01887 _In_ int len, 01888 _In_ int flags, 01889 _In_reads_bytes_(tolen) const struct sockaddr FAR *to, 01890 _In_ int tolen); 01891 01892 WINSOCK_API_LINKAGE 01893 int 01894 WSAAPI 01895 setsockopt( 01896 _In_ SOCKET s, 01897 _In_ int level, 01898 _In_ int optname, 01899 _In_reads_bytes_opt_(optlen) const char FAR *optval, 01900 _In_ int optlen); 01901 01902 WINSOCK_API_LINKAGE 01903 int 01904 WSAAPI 01905 shutdown( 01906 _In_ SOCKET s, 01907 _In_ int how); 01908 01909 _Must_inspect_result_ 01910 WINSOCK_API_LINKAGE 01911 SOCKET 01912 WSAAPI 01913 socket( 01914 _In_ int af, 01915 _In_ int type, 01916 _In_ int protocol); 01917 01918 WINSOCK_API_LINKAGE 01919 struct hostent FAR * 01920 WSAAPI 01921 gethostbyaddr( 01922 _In_reads_bytes_(len) const char FAR *addr, 01923 _In_ int len, 01924 _In_ int type); 01925 01926 WINSOCK_API_LINKAGE 01927 struct hostent FAR * 01928 WSAAPI 01929 gethostbyname( 01930 _In_z_ const char FAR *name); 01931 01932 WINSOCK_API_LINKAGE 01933 int 01934 WSAAPI 01935 gethostname( 01936 _Out_writes_bytes_(namelen) char FAR *name, 01937 _In_ int namelen); 01938 01939 WINSOCK_API_LINKAGE 01940 struct servent FAR * 01941 WSAAPI 01942 getservbyport( 01943 _In_ int port, 01944 _In_opt_z_ const char FAR *proto); 01945 01946 WINSOCK_API_LINKAGE 01947 struct servent FAR * 01948 WSAAPI 01949 getservbyname( 01950 _In_z_ const char FAR *name, 01951 _In_opt_z_ const char FAR *proto); 01952 01953 WINSOCK_API_LINKAGE 01954 struct protoent FAR * 01955 WSAAPI 01956 getprotobynumber( 01957 _In_ int number); 01958 01959 WINSOCK_API_LINKAGE 01960 struct protoent FAR * 01961 WSAAPI 01962 getprotobyname( 01963 _In_z_ const char FAR *name); 01964 01965 _Must_inspect_result_ 01966 WINSOCK_API_LINKAGE 01967 int 01968 WSAAPI 01969 WSAStartup( 01970 _In_ WORD wVersionRequired, 01971 _Out_ LPWSADATA lpWSAData); 01972 01973 WINSOCK_API_LINKAGE 01974 int 01975 WSAAPI 01976 WSACleanup(void); 01977 01978 WINSOCK_API_LINKAGE 01979 void 01980 WSAAPI 01981 WSASetLastError( 01982 _In_ int iError); 01983 01984 WINSOCK_API_LINKAGE 01985 int 01986 WSAAPI 01987 WSAGetLastError(void); 01988 01989 WINSOCK_API_LINKAGE 01990 BOOL 01991 WSAAPI 01992 WSAIsBlocking(void); 01993 01994 WINSOCK_API_LINKAGE 01995 int 01996 WSAAPI 01997 WSAUnhookBlockingHook(void); 01998 01999 WINSOCK_API_LINKAGE 02000 FARPROC 02001 WSAAPI 02002 WSASetBlockingHook( 02003 _In_ FARPROC lpBlockFunc); 02004 02005 WINSOCK_API_LINKAGE 02006 int 02007 WSAAPI 02008 WSACancelBlockingCall(void); 02009 02010 WINSOCK_API_LINKAGE 02011 HANDLE 02012 WSAAPI 02013 WSAAsyncGetServByName( 02014 _In_ HWND hWnd, 02015 _In_ u_int wMsg, 02016 _In_z_ const char FAR *name, 02017 _In_z_ const char FAR *proto, 02018 _Out_writes_bytes_(buflen) char FAR *buf, 02019 _In_ int buflen); 02020 02021 WINSOCK_API_LINKAGE 02022 HANDLE 02023 WSAAPI 02024 WSAAsyncGetServByPort( 02025 _In_ HWND hWnd, 02026 _In_ u_int wMsg, 02027 _In_ int port, 02028 _In_ const char FAR *proto, 02029 _Out_writes_bytes_(buflen) char FAR *buf, 02030 _In_ int buflen); 02031 02032 WINSOCK_API_LINKAGE 02033 HANDLE 02034 WSAAPI 02035 WSAAsyncGetProtoByName( 02036 _In_ HWND hWnd, 02037 _In_ u_int wMsg, 02038 _In_z_ const char FAR *name, 02039 _Out_writes_bytes_(buflen) char FAR *buf, 02040 _In_ int buflen); 02041 02042 WINSOCK_API_LINKAGE 02043 HANDLE 02044 WSAAPI 02045 WSAAsyncGetProtoByNumber( 02046 _In_ HWND hWnd, 02047 _In_ u_int wMsg, 02048 _In_ int number, 02049 _Out_writes_bytes_(buflen) char FAR *buf, 02050 _In_ int buflen); 02051 02052 WINSOCK_API_LINKAGE 02053 HANDLE 02054 WSAAPI 02055 WSAAsyncGetHostByName( 02056 _In_ HWND hWnd, 02057 _In_ u_int wMsg, 02058 _In_z_ const char FAR *name, 02059 _Out_writes_bytes_(buflen) char FAR *buf, 02060 _In_ int buflen); 02061 02062 WINSOCK_API_LINKAGE 02063 HANDLE 02064 WSAAPI 02065 WSAAsyncGetHostByAddr( 02066 _In_ HWND hWnd, 02067 _In_ u_int wMsg, 02068 _In_reads_bytes_(len) const char FAR *addr, 02069 _In_ int len, 02070 _In_ int type, 02071 _Out_writes_bytes_(buflen) char FAR *buf, 02072 _In_ int buflen); 02073 02074 WINSOCK_API_LINKAGE 02075 int 02076 WSAAPI 02077 WSACancelAsyncRequest( 02078 _In_ HANDLE hAsyncTaskHandle); 02079 02080 WINSOCK_API_LINKAGE 02081 int 02082 WSAAPI 02083 WSAAsyncSelect( 02084 _In_ SOCKET s, 02085 _In_ HWND hWnd, 02086 _In_ u_int wMsg, 02087 _In_ long lEvent); 02088 02089 _Must_inspect_result_ 02090 WINSOCK_API_LINKAGE 02091 SOCKET 02092 WSAAPI 02093 WSAAccept( 02094 _In_ SOCKET s, 02095 _Out_writes_bytes_to_opt_(*addrlen,*addrlen) struct sockaddr FAR *addr, 02096 _Inout_opt_ LPINT addrlen, 02097 _In_opt_ LPCONDITIONPROC lpfnCondition, 02098 _In_opt_ DWORD_PTR dwCallbackData); 02099 02100 WINSOCK_API_LINKAGE 02101 BOOL 02102 WSAAPI 02103 WSACloseEvent( 02104 _In_ WSAEVENT hEvent); 02105 02106 WINSOCK_API_LINKAGE 02107 int 02108 WSAAPI 02109 WSAConnect( 02110 _In_ SOCKET s, 02111 _In_reads_bytes_(namelen) const struct sockaddr FAR *name, 02112 _In_ int namelen, 02113 _In_opt_ LPWSABUF lpCallerData, 02114 _Out_opt_ LPWSABUF lpCalleeData, 02115 _In_opt_ LPQOS lpSQOS, 02116 _In_opt_ LPQOS lpGQOS); 02117 02118 #ifdef UNICODE 02119 #define WSAConnectByName WSAConnectByNameW 02120 #else 02121 #define WSAConnectByName WSAConnectByNameA 02122 #endif 02123 02124 BOOL 02125 PASCAL 02126 WSAConnectByNameW( 02127 _In_ SOCKET s, 02128 _In_ LPWSTR nodename, 02129 _In_ LPWSTR servicename, 02130 _Inout_opt_ LPDWORD LocalAddressLength, 02131 _Out_writes_bytes_to_opt_(*LocalAddressLength,*LocalAddressLength) LPSOCKADDR LocalAddress, 02132 _Inout_opt_ LPDWORD RemoteAddressLength, 02133 _Out_writes_bytes_to_opt_(*RemoteAddressLength,*RemoteAddressLength) LPSOCKADDR RemoteAddress, 02134 _In_opt_ const struct timeval *timeout, 02135 _Reserved_ LPWSAOVERLAPPED Reserved); 02136 02137 BOOL 02138 PASCAL 02139 WSAConnectByNameA( 02140 _In_ SOCKET s, 02141 _In_ LPCSTR nodename, 02142 _In_ LPCSTR servicename, 02143 _Inout_opt_ LPDWORD LocalAddressLength, 02144 _Out_writes_bytes_to_opt_(*LocalAddressLength,*LocalAddressLength) LPSOCKADDR LocalAddress, 02145 _Inout_opt_ LPDWORD RemoteAddressLength, 02146 _Out_writes_bytes_to_opt_(*RemoteAddressLength,*RemoteAddressLength) LPSOCKADDR RemoteAddress, 02147 _In_opt_ const struct timeval *timeout, 02148 _Reserved_ LPWSAOVERLAPPED Reserved); 02149 02150 BOOL 02151 PASCAL 02152 WSAConnectByList( 02153 _In_ SOCKET s, 02154 _In_ PSOCKET_ADDRESS_LIST SocketAddress, 02155 _Inout_opt_ LPDWORD LocalAddressLength, 02156 _Out_writes_bytes_to_opt_(*LocalAddressLength,*LocalAddressLength) LPSOCKADDR LocalAddress, 02157 _Inout_opt_ LPDWORD RemoteAddressLength, 02158 _Out_writes_bytes_to_opt_(*RemoteAddressLength,*RemoteAddressLength) LPSOCKADDR RemoteAddress, 02159 _In_opt_ const struct timeval *timeout, 02160 _Reserved_ LPWSAOVERLAPPED Reserved); 02161 02162 WINSOCK_API_LINKAGE 02163 WSAEVENT 02164 WSAAPI 02165 WSACreateEvent(void); 02166 02167 WINSOCK_API_LINKAGE 02168 int 02169 WSAAPI 02170 WSADuplicateSocketA( 02171 _In_ SOCKET s, 02172 _In_ DWORD dwProcessId, 02173 _Out_ LPWSAPROTOCOL_INFOA lpProtocolInfo); 02174 02175 WINSOCK_API_LINKAGE 02176 int 02177 WSAAPI 02178 WSADuplicateSocketW( 02179 _In_ SOCKET s, 02180 _In_ DWORD dwProcessId, 02181 _Out_ LPWSAPROTOCOL_INFOW lpProtocolInfo); 02182 02183 #ifdef UNICODE 02184 #define WSADuplicateSocket WSADuplicateSocketW 02185 #else 02186 #define WSADuplicateSocket WSADuplicateSocketA 02187 #endif 02188 02189 WINSOCK_API_LINKAGE 02190 int 02191 WSAAPI 02192 WSAEnumNetworkEvents( 02193 _In_ SOCKET s, 02194 _In_ WSAEVENT hEventObject, 02195 _Out_ LPWSANETWORKEVENTS lpNetworkEvents); 02196 02197 WINSOCK_API_LINKAGE 02198 int 02199 WSAAPI 02200 WSAEnumProtocolsA( 02201 _In_opt_ LPINT lpiProtocols, 02202 _Out_writes_bytes_to_opt_(*lpdwBufferLength,*lpdwBufferLength) LPWSAPROTOCOL_INFOA lpProtocolBuffer, 02203 _Inout_ LPDWORD lpdwBufferLength); 02204 02205 WINSOCK_API_LINKAGE 02206 int 02207 WSAAPI 02208 WSAEnumProtocolsW( 02209 _In_opt_ LPINT lpiProtocols, 02210 _Out_writes_bytes_to_opt_(*lpdwBufferLength,*lpdwBufferLength) LPWSAPROTOCOL_INFOW lpProtocolBuffer, 02211 _Inout_ LPDWORD lpdwBufferLength); 02212 02213 #ifdef UNICODE 02214 #define WSAEnumProtocols WSAEnumProtocolsW 02215 #else 02216 #define WSAEnumProtocols WSAEnumProtocolsA 02217 #endif 02218 02219 WINSOCK_API_LINKAGE 02220 int 02221 WSAAPI 02222 WSAEventSelect( 02223 _In_ SOCKET s, 02224 _In_opt_ WSAEVENT hEventObject, 02225 _In_ long lNetworkEvents); 02226 02227 WINSOCK_API_LINKAGE 02228 BOOL 02229 WSAAPI 02230 WSAGetOverlappedResult( 02231 _In_ SOCKET s, 02232 _In_ LPWSAOVERLAPPED lpOverlapped, 02233 _Out_ LPDWORD lpcbTransfer, 02234 _In_ BOOL fWait, 02235 _Out_ LPDWORD lpdwFlags); 02236 02237 WINSOCK_API_LINKAGE 02238 BOOL 02239 WSAAPI 02240 WSAGetQOSByName( 02241 _In_ SOCKET s, 02242 _In_ LPWSABUF lpQOSName, 02243 _Out_ LPQOS lpQOS); 02244 02245 WINSOCK_API_LINKAGE 02246 int 02247 WSAAPI 02248 WSAHtonl( 02249 _In_ SOCKET s, 02250 _In_ u_long hostlong, 02251 _Out_ u_long FAR *lpnetlong); 02252 02253 WINSOCK_API_LINKAGE 02254 int 02255 WSAAPI 02256 WSAHtons( 02257 _In_ SOCKET s, 02258 _In_ u_short hostshort, 02259 _Out_ u_short FAR *lpnetshort); 02260 02261 WINSOCK_API_LINKAGE 02262 int 02263 WSAAPI 02264 WSAIoctl( 02265 _In_ SOCKET s, 02266 _In_ DWORD dwIoControlCode, 02267 _In_reads_bytes_opt_(cbInBuffer) LPVOID lpvInBuffer, 02268 _In_ DWORD cbInBuffer, 02269 _Out_writes_bytes_to_opt_(cbOutBuffer, *lpcbBytesReturned) LPVOID lpvOutBuffer, 02270 _In_ DWORD cbOutBuffer, 02271 _Out_ LPDWORD lpcbBytesReturned, 02272 _Inout_opt_ LPWSAOVERLAPPED lpOverlapped, 02273 _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine); 02274 02275 WINSOCK_API_LINKAGE 02276 SOCKET 02277 WSAAPI 02278 WSAJoinLeaf( 02279 _In_ SOCKET s, 02280 _In_reads_bytes_(namelen) const struct sockaddr FAR *name, 02281 _In_ int namelen, 02282 _In_opt_ LPWSABUF lpCallerData, 02283 _Out_opt_ LPWSABUF lpCalleeData, 02284 _In_opt_ LPQOS lpSQOS, 02285 _In_opt_ LPQOS lpGQOS, 02286 _In_ DWORD dwFlags); 02287 02288 WINSOCK_API_LINKAGE 02289 int 02290 WSAAPI 02291 WSANtohl( 02292 _In_ SOCKET s, 02293 _In_ u_long netlong, 02294 _Out_ u_long FAR *lphostlong); 02295 02296 WINSOCK_API_LINKAGE 02297 int 02298 WSAAPI 02299 WSANtohs( 02300 _In_ SOCKET s, 02301 _In_ u_short netshort, 02302 _Out_ u_short FAR *lphostshort); 02303 02304 WINSOCK_API_LINKAGE 02305 int 02306 WSAAPI 02307 WSARecv( 02308 _In_ SOCKET s, 02309 _In_reads_(dwBufferCount) __out_data_source(NETWORK) LPWSABUF lpBuffers, 02310 _In_ DWORD dwBufferCount, 02311 _Out_opt_ LPDWORD lpNumberOfBytesRecvd, 02312 _Inout_ LPDWORD lpFlags, 02313 _Inout_opt_ LPWSAOVERLAPPED lpOverlapped, 02314 _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine); 02315 02316 WINSOCK_API_LINKAGE 02317 int 02318 WSAAPI 02319 WSARecvDisconnect( 02320 _In_ SOCKET s, 02321 _In_opt_ __out_data_source(NETWORK) LPWSABUF lpInboundDisconnectData); 02322 02323 WINSOCK_API_LINKAGE 02324 int 02325 WSAAPI 02326 WSARecvFrom( 02327 _In_ SOCKET s, 02328 _In_reads_(dwBufferCount) __out_data_source(NETWORK) LPWSABUF lpBuffers, 02329 _In_ DWORD dwBufferCount, 02330 _Out_opt_ LPDWORD lpNumberOfBytesRecvd, 02331 _Inout_ LPDWORD lpFlags, 02332 _Out_writes_bytes_to_opt_(*lpFromlen,*lpFromlen) struct sockaddr FAR *lpFrom, 02333 _Inout_opt_ LPINT lpFromlen, 02334 _Inout_opt_ LPWSAOVERLAPPED lpOverlapped, 02335 _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine); 02336 02337 WINSOCK_API_LINKAGE 02338 BOOL 02339 WSAAPI 02340 WSAResetEvent( 02341 _In_ WSAEVENT hEvent); 02342 02343 WINSOCK_API_LINKAGE 02344 int 02345 WSAAPI 02346 WSASendDisconnect( 02347 _In_ SOCKET s, 02348 _In_opt_ LPWSABUF lpOutboundDisconnectData); 02349 02350 WINSOCK_API_LINKAGE 02351 int 02352 WSAAPI 02353 WSASend( 02354 _In_ SOCKET s, 02355 _In_reads_(dwBufferCount) LPWSABUF lpBuffers, 02356 _In_ DWORD dwBufferCount, 02357 _Out_opt_ LPDWORD lpNumberOfBytesSent, 02358 _In_ DWORD dwFlags, 02359 _Inout_opt_ LPWSAOVERLAPPED lpOverlapped, 02360 _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine); 02361 02362 WINSOCK_API_LINKAGE 02363 int 02364 WSAAPI 02365 WSASendTo( 02366 _In_ SOCKET s, 02367 _In_reads_(dwBufferCount) LPWSABUF lpBuffers, 02368 _In_ DWORD dwBufferCount, 02369 _Out_opt_ LPDWORD lpNumberOfBytesSent, 02370 _In_ DWORD dwFlags, 02371 _In_reads_bytes_opt_(iTolen) const struct sockaddr FAR *lpTo, 02372 _In_ int iTolen, 02373 _Inout_opt_ LPWSAOVERLAPPED lpOverlapped, 02374 _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine); 02375 02376 WINSOCK_API_LINKAGE 02377 BOOL 02378 WSAAPI 02379 WSASetEvent( 02380 _In_ WSAEVENT hEvent); 02381 02382 _Must_inspect_result_ 02383 WINSOCK_API_LINKAGE 02384 SOCKET 02385 WSAAPI 02386 WSASocketA( 02387 _In_ int af, 02388 _In_ int type, 02389 _In_ int protocol, 02390 _In_opt_ LPWSAPROTOCOL_INFOA lpProtocolInfo, 02391 _In_ GROUP g, 02392 _In_ DWORD dwFlags); 02393 02394 _Must_inspect_result_ 02395 WINSOCK_API_LINKAGE 02396 SOCKET 02397 WSAAPI 02398 WSASocketW( 02399 _In_ int af, 02400 _In_ int type, 02401 _In_ int protocol, 02402 _In_opt_ LPWSAPROTOCOL_INFOW lpProtocolInfo, 02403 _In_ GROUP g, 02404 _In_ DWORD dwFlags); 02405 02406 #ifdef UNICODE 02407 #define WSASocket WSASocketW 02408 #else 02409 #define WSASocket WSASocketA 02410 #endif 02411 02412 WINSOCK_API_LINKAGE 02413 DWORD 02414 WSAAPI 02415 WSAWaitForMultipleEvents( 02416 _In_ DWORD cEvents, 02417 _In_reads_(cEvents) const WSAEVENT FAR *lphEvents, 02418 _In_ BOOL fWaitAll, 02419 _In_ DWORD dwTimeout, 02420 _In_ BOOL fAlertable); 02421 02422 WINSOCK_API_LINKAGE 02423 INT 02424 WSAAPI 02425 WSAAddressToStringA( 02426 _In_reads_bytes_(dwAddressLength) LPSOCKADDR lpsaAddress, 02427 _In_ DWORD dwAddressLength, 02428 _In_opt_ LPWSAPROTOCOL_INFOA lpProtocolInfo, 02429 _Out_writes_to_(*lpdwAddressStringLength,*lpdwAddressStringLength) LPSTR lpszAddressString, 02430 _Inout_ LPDWORD lpdwAddressStringLength); 02431 02432 WINSOCK_API_LINKAGE 02433 INT 02434 WSAAPI 02435 WSAAddressToStringW( 02436 _In_reads_bytes_(dwAddressLength) LPSOCKADDR lpsaAddress, 02437 _In_ DWORD dwAddressLength, 02438 _In_opt_ LPWSAPROTOCOL_INFOW lpProtocolInfo, 02439 _Out_writes_to_(*lpdwAddressStringLength,*lpdwAddressStringLength) LPWSTR lpszAddressString, 02440 _Inout_ LPDWORD lpdwAddressStringLength); 02441 02442 #ifdef UNICODE 02443 #define WSAAddressToString WSAAddressToStringW 02444 #else 02445 #define WSAAddressToString WSAAddressToStringA 02446 #endif 02447 02448 WINSOCK_API_LINKAGE 02449 INT 02450 WSAAPI 02451 WSAStringToAddressA( 02452 _In_ LPSTR AddressString, 02453 _In_ INT AddressFamily, 02454 _In_opt_ LPWSAPROTOCOL_INFOA lpProtocolInfo, 02455 _Out_writes_bytes_to_(*lpAddressLength,*lpAddressLength) LPSOCKADDR lpAddress, 02456 _Inout_ LPINT lpAddressLength); 02457 02458 WINSOCK_API_LINKAGE 02459 INT 02460 WSAAPI 02461 WSAStringToAddressW( 02462 _In_ LPWSTR AddressString, 02463 _In_ INT AddressFamily, 02464 _In_opt_ LPWSAPROTOCOL_INFOW lpProtocolInfo, 02465 _Out_writes_bytes_to_(*lpAddressLength,*lpAddressLength) LPSOCKADDR lpAddress, 02466 _Inout_ LPINT lpAddressLength); 02467 02468 #ifdef UNICODE 02469 #define WSAStringToAddress WSAStringToAddressW 02470 #else 02471 #define WSAStringToAddress WSAStringToAddressA 02472 #endif 02473 02474 WINSOCK_API_LINKAGE 02475 INT 02476 WSAAPI 02477 WSALookupServiceBeginA( 02478 _In_ LPWSAQUERYSETA lpqsRestrictions, 02479 _In_ DWORD dwControlFlags, 02480 _Out_ LPHANDLE lphLookup); 02481 02482 WINSOCK_API_LINKAGE 02483 INT 02484 WSAAPI 02485 WSALookupServiceBeginW( 02486 _In_ LPWSAQUERYSETW lpqsRestrictions, 02487 _In_ DWORD dwControlFlags, 02488 _Out_ LPHANDLE lphLookup); 02489 02490 #ifdef UNICODE 02491 #define WSALookupServiceBegin WSALookupServiceBeginW 02492 #else 02493 #define WSALookupServiceBegin WSALookupServiceBeginA 02494 #endif 02495 02496 WINSOCK_API_LINKAGE 02497 INT 02498 WSAAPI 02499 WSALookupServiceNextA( 02500 _In_ HANDLE hLookup, 02501 _In_ DWORD dwControlFlags, 02502 _Inout_ LPDWORD lpdwBufferLength, 02503 _Out_writes_bytes_to_(*lpdwBufferLength,*lpdwBufferLength) LPWSAQUERYSETA lpqsResults); 02504 02505 WINSOCK_API_LINKAGE 02506 INT 02507 WSAAPI 02508 WSALookupServiceNextW( 02509 _In_ HANDLE hLookup, 02510 _In_ DWORD dwControlFlags, 02511 _Inout_ LPDWORD lpdwBufferLength, 02512 _Out_writes_bytes_to_opt_(*lpdwBufferLength,*lpdwBufferLength) LPWSAQUERYSETW lpqsResults); 02513 02514 #ifdef UNICODE 02515 #define WSALookupServiceNext WSALookupServiceNextW 02516 #else 02517 #define WSALookupServiceNext WSALookupServiceNextA 02518 #endif 02519 02520 WINSOCK_API_LINKAGE 02521 INT 02522 WSAAPI 02523 WSALookupServiceEnd( 02524 _In_ HANDLE hLookup); 02525 02526 WINSOCK_API_LINKAGE 02527 INT 02528 WSAAPI 02529 WSAInstallServiceClassA( 02530 _In_ LPWSASERVICECLASSINFOA lpServiceClassInfo); 02531 02532 WINSOCK_API_LINKAGE 02533 INT 02534 WSAAPI 02535 WSAInstallServiceClassW( 02536 _In_ LPWSASERVICECLASSINFOW lpServiceClassInfo); 02537 02538 #ifdef UNICODE 02539 #define WSAInstallServiceClass WSAInstallServiceClassW 02540 #else 02541 #define WSAInstallServiceClass WSAInstallServiceClassA 02542 #endif 02543 02544 WINSOCK_API_LINKAGE 02545 INT 02546 WSAAPI 02547 WSARemoveServiceClass( 02548 _In_ LPGUID lpServiceClassId); 02549 02550 WINSOCK_API_LINKAGE 02551 INT 02552 WSAAPI 02553 WSAGetServiceClassInfoA( 02554 _In_ LPGUID lpProviderId, 02555 _In_ LPGUID lpServiceClassId, 02556 _Inout_ LPDWORD lpdwBufSize, 02557 _Out_writes_bytes_to_(*lpdwBufSize,*lpdwBufSize) LPWSASERVICECLASSINFOA lpServiceClassInfo); 02558 02559 WINSOCK_API_LINKAGE 02560 INT 02561 WSAAPI 02562 WSAGetServiceClassInfoW( 02563 _In_ LPGUID lpProviderId, 02564 _In_ LPGUID lpServiceClassId, 02565 _Inout_ LPDWORD lpdwBufSize, 02566 _Out_writes_bytes_to_(*lpdwBufSize,*lpdwBufSize) LPWSASERVICECLASSINFOW lpServiceClassInfo); 02567 02568 #ifdef UNICODE 02569 #define WSAGetServiceClassInfo WSAGetServiceClassInfoW 02570 #else 02571 #define WSAGetServiceClassInfo WSAGetServiceClassInfoA 02572 #endif 02573 02574 WINSOCK_API_LINKAGE 02575 INT 02576 WSAAPI 02577 WSAEnumNameSpaceProvidersA( 02578 _Inout_ LPDWORD lpdwBufferLength, 02579 _Out_writes_bytes_to_(*lpdwBufferLength,*lpdwBufferLength) LPWSANAMESPACE_INFOA lpnspBuffer); 02580 02581 WINSOCK_API_LINKAGE 02582 INT 02583 WSAAPI 02584 WSAEnumNameSpaceProvidersW( 02585 _Inout_ LPDWORD lpdwBufferLength, 02586 _Out_writes_bytes_to_(*lpdwBufferLength,*lpdwBufferLength) LPWSANAMESPACE_INFOW lpnspBuffer); 02587 02588 #ifdef UNICODE 02589 #define WSAEnumNameSpaceProviders WSAEnumNameSpaceProvidersW 02590 #else 02591 #define WSAEnumNameSpaceProviders WSAEnumNameSpaceProvidersA 02592 #endif 02593 02594 _Success_(return == 0) 02595 WINSOCK_API_LINKAGE 02596 INT 02597 WSAAPI 02598 WSAGetServiceClassNameByClassIdA( 02599 _In_ LPGUID lpServiceClassId, 02600 _Out_writes_bytes_to_(*lpdwBufferLength,*lpdwBufferLength) LPSTR lpszServiceClassName, 02601 _Inout_ LPDWORD lpdwBufferLength); 02602 02603 _Success_(return == 0) 02604 WINSOCK_API_LINKAGE 02605 INT 02606 WSAAPI 02607 WSAGetServiceClassNameByClassIdW( 02608 _In_ LPGUID lpServiceClassId, 02609 _Out_writes_bytes_to_(*lpdwBufferLength,*lpdwBufferLength) LPWSTR lpszServiceClassName, 02610 _Inout_ LPDWORD lpdwBufferLength); 02611 02612 #ifdef UNICODE 02613 #define WSAGetServiceClassNameByClassId WSAGetServiceClassNameByClassIdW 02614 #else 02615 #define WSAGetServiceClassNameByClassId WSAGetServiceClassNameByClassIdA 02616 #endif 02617 02618 WINSOCK_API_LINKAGE 02619 INT 02620 WSAAPI 02621 WSASetServiceA( 02622 _In_ LPWSAQUERYSETA lpqsRegInfo, 02623 _In_ WSAESETSERVICEOP essoperation, 02624 _In_ DWORD dwControlFlags); 02625 02626 WINSOCK_API_LINKAGE 02627 INT 02628 WSAAPI 02629 WSASetServiceW( 02630 _In_ LPWSAQUERYSETW lpqsRegInfo, 02631 _In_ WSAESETSERVICEOP essoperation, 02632 _In_ DWORD dwControlFlags); 02633 02634 #ifdef UNICODE 02635 #define WSASetService WSASetServiceW 02636 #else 02637 #define WSASetService WSASetServiceA 02638 #endif 02639 02640 WINSOCK_API_LINKAGE 02641 INT 02642 WSAAPI 02643 WSAProviderConfigChange( 02644 _Inout_ LPHANDLE lpNotificationHandle, 02645 _Inout_opt_ LPWSAOVERLAPPED lpOverlapped, 02646 _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine); 02647 02648 #if(_WIN32_WINNT >= 0x0501) 02649 WINSOCK_API_LINKAGE 02650 INT 02651 WSAAPI 02652 WSANSPIoctl( 02653 _In_ HANDLE hLookup, 02654 _In_ DWORD dwControlCode, 02655 _In_reads_bytes_opt_(cbInBuffer) LPVOID lpvInBuffer, 02656 _In_ DWORD cbInBuffer, 02657 _Out_writes_bytes_to_opt_(cbOutBuffer, *lpcbBytesReturned) LPVOID lpvOutBuffer, 02658 _In_ DWORD cbOutBuffer, 02659 _Out_ LPDWORD lpcbBytesReturned, 02660 _In_opt_ LPWSACOMPLETION lpCompletion); 02661 #endif /* (_WIN32_WINNT >= 0x0501) */ 02662 02663 #if(_WIN32_WINNT >= 0x0600) 02664 02665 WINSOCK_API_LINKAGE 02666 int 02667 WSAAPI 02668 WSASendMsg( 02669 _In_ SOCKET Handle, 02670 _In_ LPWSAMSG lpMsg, 02671 _In_ DWORD dwFlags, 02672 _Out_opt_ LPDWORD lpNumberOfBytesSent, 02673 _Inout_opt_ LPWSAOVERLAPPED lpOverlapped, 02674 _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine); 02675 02676 WINSOCK_API_LINKAGE 02677 INT 02678 WSAAPI 02679 WSAEnumNameSpaceProvidersExA( 02680 _Inout_ LPDWORD lpdwBufferLength, 02681 _Out_writes_bytes_to_(*lpdwBufferLength,*lpdwBufferLength) LPWSANAMESPACE_INFOEXA lpnspBuffer); 02682 02683 WINSOCK_API_LINKAGE 02684 INT 02685 WSAAPI 02686 WSAEnumNameSpaceProvidersExW( 02687 _Inout_ LPDWORD lpdwBufferLength, 02688 _Out_writes_bytes_to_(*lpdwBufferLength,*lpdwBufferLength) LPWSANAMESPACE_INFOEXW lpnspBuffer); 02689 02690 #ifdef UNICODE 02691 #define WSAEnumNameSpaceProvidersEx WSAEnumNameSpaceProvidersExW 02692 #else 02693 #define WSAEnumNameSpaceProvidersEx WSAEnumNameSpaceProvidersExA 02694 #endif 02695 02696 WINSOCK_API_LINKAGE 02697 int 02698 WSAAPI 02699 WSAPoll( 02700 _Inout_ LPWSAPOLLFD fdArray, 02701 _In_ ULONG fds, 02702 _In_ INT timeout); 02703 02704 #endif /* (_WIN32_WINNT >= 0x0600) */ 02705 02706 #endif /* INCL_WINSOCK_API_PROTOTYPES */ 02707 02708 typedef struct sockaddr_in FAR *LPSOCKADDR_IN; 02709 typedef struct linger LINGER; 02710 typedef struct linger *PLINGER; 02711 typedef struct linger FAR *LPLINGER; 02712 typedef struct fd_set FD_SET; 02713 typedef struct fd_set *PFD_SET; 02714 typedef struct fd_set FAR *LPFD_SET; 02715 typedef struct hostent HOSTENT; 02716 typedef struct hostent *PHOSTENT; 02717 typedef struct hostent FAR *LPHOSTENT; 02718 typedef struct servent SERVENT; 02719 typedef struct servent *PSERVENT; 02720 typedef struct servent FAR *LPSERVENT; 02721 typedef struct protoent PROTOENT; 02722 typedef struct protoent *PPROTOENT; 02723 typedef struct protoent FAR *LPPROTOENT; 02724 typedef struct timeval TIMEVAL; 02725 typedef struct timeval *PTIMEVAL; 02726 typedef struct timeval FAR *LPTIMEVAL; 02727 02728 #define WSAMAKEASYNCREPLY(buflen,error) MAKELONG(buflen,error) 02729 #define WSAMAKESELECTREPLY(event,error) MAKELONG(event,error) 02730 #define WSAGETASYNCBUFLEN(lParam) LOWORD(lParam) 02731 #define WSAGETASYNCERROR(lParam) HIWORD(lParam) 02732 #define WSAGETSELECTEVENT(lParam) LOWORD(lParam) 02733 #define WSAGETSELECTERROR(lParam) HIWORD(lParam) 02734 02735 #ifdef __cplusplus 02736 } 02737 #endif 02738 02739 #ifdef _NEED_POPPACK 02740 #include <poppack.h> 02741 #endif 02742 02743 /* FIXME : 02744 #if(_WIN32_WINNT >= 0x0501) 02745 #ifdef IPV6STRICT 02746 #include <wsipv6ok.h> 02747 #endif 02748 #endif */ 02749 02750 #endif /* !(defined _WINSOCK2API_ || defined _WINSOCKAPI_) */ Generated on Sun May 27 2012 04:32:49 for ReactOS by
1.7.6.1
|