[5742] | 1 | /*
|
---|
| 2 | * Winsock 2 definitions - used for ws2_32.dll
|
---|
| 3 | *
|
---|
| 4 | * FIXME: Still missing required Winsock 2 definitions.
|
---|
| 5 | */
|
---|
[21409] | 6 |
|
---|
[5742] | 7 | #ifndef __WINSOCK2API__
|
---|
| 8 | #define __WINSOCK2API__
|
---|
| 9 |
|
---|
[21456] | 10 | #include <winsock.h>
|
---|
[5742] | 11 |
|
---|
| 12 | /* proper 4-byte packing */
|
---|
[21456] | 13 | #include <pshpack4.h>
|
---|
[5742] | 14 |
|
---|
[21418] | 15 | #define SO_GROUP_ID 0x2001
|
---|
| 16 | #define SO_GROUP_PRIORITY 0x2002
|
---|
| 17 | #define SO_MAX_MSG_SIZE 0x2003
|
---|
| 18 | #define SO_PROTOCOL_INFOA 0x2004
|
---|
| 19 | #define SO_PROTOCOL_INFOW 0x2005
|
---|
| 20 | #define SO_PROTOCOL_INFO WINELIB_NAME_AW(SO_PROTOCOL_INFO)
|
---|
[5742] | 21 |
|
---|
| 22 | #define PVD_CONFIG 0x3001
|
---|
| 23 | #define SO_CONDITIONAL_ACCEPT 0x3002
|
---|
| 24 |
|
---|
| 25 |
|
---|
| 26 | /* option flags per socket */
|
---|
| 27 |
|
---|
[6153] | 28 | #define FD_MAX_EVENTS 10
|
---|
| 29 | #define FD_ALL_EVENTS ((1 << FD_MAX_EVENTS) - 1)
|
---|
| 30 | #define FD_READ_BIT 0
|
---|
| 31 | #define FD_READ (1 << FD_READ_BIT)
|
---|
| 32 | #define FD_WRITE_BIT 1
|
---|
| 33 | #define FD_WRITE (1 << FD_WRITE_BIT)
|
---|
| 34 | #define FD_OOB_BIT 2
|
---|
| 35 | #define FD_OOB (1 << FD_OOB_BIT)
|
---|
| 36 | #define FD_ACCEPT_BIT 3
|
---|
| 37 | #define FD_ACCEPT (1 << FD_ACCEPT_BIT)
|
---|
| 38 | #define FD_CONNECT_BIT 4
|
---|
| 39 | #define FD_CONNECT (1 << FD_CONNECT_BIT)
|
---|
| 40 | #define FD_CLOSE_BIT 5
|
---|
| 41 | #define FD_CLOSE (1 << FD_CLOSE_BIT)
|
---|
| 42 | #define FD_QOS_BIT 6
|
---|
| 43 | #define FD_QOS (1 << FD_QOS_BIT)
|
---|
| 44 | #define FD_GROUP_QOS_BIT 7
|
---|
| 45 | #define FD_GROUP_QOS (1 << FD_GROUP_QOS_BIT)
|
---|
| 46 | #define FD_ROUTING_INTERFACE_CHANGE_BIT 8
|
---|
| 47 | #define FD_ROUTING_INTERFACE_CHANGE (1 << FD_ROUTING_INTERFACE_CHANGE_BIT)
|
---|
| 48 | #define FD_ADDRESS_LIST_CHANGE_BIT 9
|
---|
| 49 | #define FD_ADDRESS_LIST_CHANGE (1 << FD_ADDRESS_LIST_CHANGE_BIT)
|
---|
[5742] | 50 |
|
---|
[8372] | 51 | /* Constants for LPCONDITIONPROC */
|
---|
| 52 | #define CF_ACCEPT 0x0000
|
---|
| 53 | #define CF_REJECT 0x0001
|
---|
| 54 | #define CF_DEFER 0x0002
|
---|
| 55 |
|
---|
| 56 | /* Constants for shutdown() */
|
---|
| 57 | #define SD_RECEIVE 0x00
|
---|
| 58 | #define SD_SEND 0x01
|
---|
| 59 | #define SD_BOTH 0x02
|
---|
| 60 |
|
---|
[5742] | 61 | /*
|
---|
| 62 | * Constants for WSAIoctl()
|
---|
| 63 | */
|
---|
| 64 | #define IOC_UNIX 0x00000000
|
---|
| 65 | #define IOC_WS2 0x08000000
|
---|
| 66 | #define IOC_PROTOCOL 0x10000000
|
---|
| 67 | #define IOC_VENDOR 0x18000000
|
---|
| 68 | #define _WSAIO(x,y) (IOC_VOID|(x)|(y))
|
---|
| 69 | #define _WSAIOR(x,y) (IOC_OUT|(x)|(y))
|
---|
| 70 | #define _WSAIOW(x,y) (IOC_IN|(x)|(y))
|
---|
| 71 | #define _WSAIORW(x,y) (IOC_INOUT|(x)|(y))
|
---|
| 72 | #define SIO_ASSOCIATE_HANDLE _WSAIOW(IOC_WS2,1)
|
---|
| 73 | #define SIO_ENABLE_CIRCULAR_QUEUEING _WSAIO(IOC_WS2,2)
|
---|
| 74 | #define SIO_FIND_ROUTE _WSAIOR(IOC_WS2,3)
|
---|
| 75 | #define SIO_FLUSH _WSAIO(IOC_WS2,4)
|
---|
| 76 | #define SIO_GET_BROADCAST_ADDRESS _WSAIOR(IOC_WS2,5)
|
---|
| 77 | #define SIO_GET_EXTENSION_FUNCTION_POINTER _WSAIORW(IOC_WS2,6)
|
---|
| 78 | #define SIO_GET_QOS _WSAIORW(IOC_WS2,7)
|
---|
| 79 | #define SIO_GET_GROUP_QOS _WSAIORW(IOC_WS2,8)
|
---|
| 80 | #define SIO_MULTIPOINT_LOOPBACK _WSAIOW(IOC_WS2,9)
|
---|
| 81 | #define SIO_MULTICAST_SCOPE _WSAIOW(IOC_WS2,10)
|
---|
| 82 | #define SIO_SET_QOS _WSAIOW(IOC_WS2,11)
|
---|
| 83 | #define SIO_SET_GROUP_QOS _WSAIOW(IOC_WS2,12)
|
---|
| 84 | #define SIO_TRANSLATE_HANDLE _WSAIORW(IOC_WS2,13)
|
---|
| 85 | #define SIO_ROUTING_INTERFACE_QUERY _WSAIORW(IOC_WS2,20)
|
---|
| 86 | #define SIO_ROUTING_INTERFACE_CHANGE _WSAIOW(IOC_WS2,21)
|
---|
| 87 | #define SIO_ADDRESS_LIST_QUERY _WSAIOR(IOC_WS2,22)
|
---|
| 88 | #define SIO_ADDRESS_LIST_CHANGE _WSAIO(IOC_WS2,23)
|
---|
| 89 | #define SIO_QUERY_TARGET_PNP_HANDLE _WSAIOR(IOC_W32,24)
|
---|
| 90 | #define SIO_GET_INTERFACE_LIST WS_IOR ('t', 127, u_long)
|
---|
| 91 |
|
---|
| 92 | /* Unfortunately the sockaddr_in6 structure doesn't
|
---|
[21409] | 93 | seem to be defined in a standard place, even across
|
---|
[5742] | 94 | different Linux distributions. Until IPv6 support settles
|
---|
[21409] | 95 | down, let's do our own here so the sockaddr_gen
|
---|
[5742] | 96 | union is the correct size.*/
|
---|
| 97 | #ifdef s6_addr
|
---|
| 98 | #undef s6_addr
|
---|
| 99 | #endif
|
---|
| 100 |
|
---|
| 101 | struct ws_in_addr6
|
---|
| 102 | {
|
---|
| 103 | unsigned char s6_addr[16]; /* IPv6 address */
|
---|
| 104 | };
|
---|
| 105 | struct ws_sockaddr_in6
|
---|
| 106 | {
|
---|
| 107 | short sin6_family; /* AF_INET6 */
|
---|
| 108 | u_short sin6_port; /* Transport level port number */
|
---|
| 109 | u_long sin6_flowinfo; /* IPv6 flow information */
|
---|
| 110 | struct ws_in_addr6 sin6_addr; /* IPv6 address */
|
---|
| 111 | };
|
---|
| 112 |
|
---|
| 113 | struct ws_in_addr
|
---|
| 114 | {
|
---|
| 115 | union {
|
---|
| 116 | struct { BYTE s_b1,s_b2,s_b3,s_b4; } S_un_b;
|
---|
| 117 | struct { WORD s_w1,s_w2; } S_un_w;
|
---|
| 118 | UINT S_addr;
|
---|
| 119 | } S_un;
|
---|
| 120 | #define ws_addr S_un.S_addr /* can be used for most tcp & ip code */
|
---|
| 121 | #define ws_host S_un.S_un_b.s_b2 /* host on imp */
|
---|
| 122 | #define ws_net S_un.S_un_b.s_b1 /* network */
|
---|
| 123 | #define ws_imp S_un.S_un_w.s_w2 /* imp */
|
---|
| 124 | #define ws_impno S_un.S_un_b.s_b4 /* imp # */
|
---|
| 125 | #define ws_lh S_un.S_un_b.s_b3 /* logical host */
|
---|
| 126 | };
|
---|
| 127 |
|
---|
| 128 | struct ws_sockaddr_in
|
---|
| 129 | {
|
---|
| 130 | SHORT sin_family;
|
---|
| 131 | WORD sin_port;
|
---|
| 132 | struct ws_in_addr sin_addr;
|
---|
| 133 | BYTE sin_zero[8];
|
---|
| 134 | };
|
---|
| 135 |
|
---|
| 136 | typedef union sockaddr_gen
|
---|
| 137 | {
|
---|
| 138 | struct sockaddr Address;
|
---|
| 139 | struct ws_sockaddr_in AddressIn;
|
---|
| 140 | struct ws_sockaddr_in6 AddressIn6;
|
---|
| 141 | } sockaddr_gen;
|
---|
| 142 |
|
---|
| 143 | /* ws_hostent, ws_protoent, ws_servent, ws_netent are 4-byte aligned here ! */
|
---|
| 144 |
|
---|
| 145 | typedef struct ws_hostent32
|
---|
| 146 | {
|
---|
| 147 | char *h_name; /* official name of host */
|
---|
| 148 | char **h_aliases; /* alias list */
|
---|
| 149 | short h_addrtype; /* host address type */
|
---|
| 150 | short h_length; /* length of address */
|
---|
| 151 | char **h_addr_list; /* list of addresses from name server */
|
---|
| 152 | } _ws_hostent32;
|
---|
| 153 |
|
---|
| 154 | typedef struct ws_protoent32
|
---|
| 155 | {
|
---|
| 156 | char *p_name; /* official protocol name */
|
---|
| 157 | char **p_aliases; /* alias list */
|
---|
| 158 | short p_proto; /* protocol # */
|
---|
| 159 | } _ws_protoent32;
|
---|
| 160 |
|
---|
| 161 | typedef struct ws_servent32
|
---|
| 162 | {
|
---|
| 163 | char *s_name; /* official service name */
|
---|
| 164 | char **s_aliases; /* alias list */
|
---|
| 165 | short s_port; /* port # */
|
---|
| 166 | char *s_proto; /* protocol to use */
|
---|
| 167 | } _ws_servent32;
|
---|
| 168 |
|
---|
| 169 | typedef struct ws_netent32
|
---|
| 170 | {
|
---|
| 171 | char *n_name; /* official name of net */
|
---|
| 172 | char **n_aliases; /* alias list */
|
---|
| 173 | short n_addrtype; /* net address type */
|
---|
| 174 | u_long n_net; /* network # */
|
---|
| 175 | } _ws_netent32;
|
---|
| 176 |
|
---|
| 177 | /* Structure to keep interface specific information */
|
---|
| 178 | typedef struct _INTERFACE_INFO
|
---|
| 179 | {
|
---|
| 180 | u_long iiFlags; /* Interface flags */
|
---|
| 181 | sockaddr_gen iiAddress; /* Interface address */
|
---|
| 182 | sockaddr_gen iiBroadcastAddress; /* Broadcast address */
|
---|
| 183 | sockaddr_gen iiNetmask; /* Network mask */
|
---|
| 184 | } INTERFACE_INFO, * LPINTERFACE_INFO;
|
---|
| 185 |
|
---|
[21409] | 186 | /* Possible flags for the iiFlags - bitmask */
|
---|
[5742] | 187 | #ifndef HAVE_NET_IF_H
|
---|
| 188 | # define IFF_UP 0x00000001 /* Interface is up */
|
---|
| 189 | # define IFF_BROADCAST 0x00000002 /* Broadcast is supported */
|
---|
| 190 | # define IFF_LOOPBACK 0x00000004 /* this is loopback interface */
|
---|
| 191 | # define IFF_POINTTOPOINT 0x00000008 /* this is point-to-point interface */
|
---|
| 192 | # define IFF_MULTICAST 0x00000010 /* multicast is supported */
|
---|
| 193 | #endif
|
---|
| 194 |
|
---|
| 195 | #ifndef GUID_DEFINED
|
---|
| 196 | #include "guiddef.h"
|
---|
| 197 | #endif
|
---|
| 198 |
|
---|
| 199 | #define MAX_PROTOCOL_CHAIN 7
|
---|
| 200 | #define BASE_PROTOCOL 1
|
---|
| 201 | #define LAYERED_PROTOCOL 0
|
---|
| 202 |
|
---|
[21409] | 203 | typedef struct _WSAPROTOCOLCHAIN
|
---|
[5742] | 204 | {
|
---|
| 205 | int ChainLen; /* the length of the chain, */
|
---|
| 206 | /* length = 0 means layered protocol, */
|
---|
| 207 | /* length = 1 means base protocol, */
|
---|
| 208 | /* length > 1 means protocol chain */
|
---|
| 209 | DWORD ChainEntries[MAX_PROTOCOL_CHAIN]; /* a list of dwCatalogEntryIds */
|
---|
| 210 | } WSAPROTOCOLCHAIN, * LPWSAPROTOCOLCHAIN;
|
---|
| 211 | #define WSAPROTOCOL_LEN 255
|
---|
| 212 |
|
---|
[21409] | 213 | typedef struct _WSAPROTOCOL_INFOA
|
---|
[5742] | 214 | {
|
---|
| 215 | DWORD dwServiceFlags1;
|
---|
| 216 | DWORD dwServiceFlags2;
|
---|
| 217 | DWORD dwServiceFlags3;
|
---|
| 218 | DWORD dwServiceFlags4;
|
---|
| 219 | DWORD dwProviderFlags;
|
---|
| 220 | GUID ProviderId;
|
---|
| 221 | DWORD dwCatalogEntryId;
|
---|
| 222 | WSAPROTOCOLCHAIN ProtocolChain;
|
---|
| 223 | int iVersion;
|
---|
| 224 | int iAddressFamily;
|
---|
| 225 | int iMaxSockAddr;
|
---|
| 226 | int iMinSockAddr;
|
---|
| 227 | int iSocketType;
|
---|
| 228 | int iProtocol;
|
---|
| 229 | int iProtocolMaxOffset;
|
---|
| 230 | int iNetworkByteOrder;
|
---|
| 231 | int iSecurityScheme;
|
---|
| 232 | DWORD dwMessageSize;
|
---|
| 233 | DWORD dwProviderReserved;
|
---|
| 234 | CHAR szProtocol[WSAPROTOCOL_LEN+1];
|
---|
| 235 | } WSAPROTOCOL_INFOA, * LPWSAPROTOCOL_INFOA;
|
---|
| 236 |
|
---|
| 237 | typedef struct _WSAPROTOCOL_INFOW
|
---|
| 238 | {
|
---|
| 239 | DWORD dwServiceFlags1;
|
---|
| 240 | DWORD dwServiceFlags2;
|
---|
| 241 | DWORD dwServiceFlags3;
|
---|
| 242 | DWORD dwServiceFlags4;
|
---|
| 243 | DWORD dwProviderFlags;
|
---|
| 244 | GUID ProviderId;
|
---|
| 245 | DWORD dwCatalogEntryId;
|
---|
| 246 | WSAPROTOCOLCHAIN ProtocolChain;
|
---|
| 247 | int iVersion;
|
---|
| 248 | int iAddressFamily;
|
---|
| 249 | int iMaxSockAddr;
|
---|
| 250 | int iMinSockAddr;
|
---|
| 251 | int iSocketType;
|
---|
| 252 | int iProtocol;
|
---|
| 253 | int iProtocolMaxOffset;
|
---|
| 254 | int iNetworkByteOrder;
|
---|
| 255 | int iSecurityScheme;
|
---|
| 256 | DWORD dwMessageSize;
|
---|
| 257 | DWORD dwProviderReserved;
|
---|
| 258 | WCHAR szProtocol[WSAPROTOCOL_LEN+1];
|
---|
| 259 | } WSAPROTOCOL_INFOW, * LPWSAPROTOCOL_INFOW;
|
---|
| 260 |
|
---|
[21409] | 261 | typedef struct _WSANETWORKEVENTS
|
---|
[5742] | 262 | {
|
---|
| 263 | long lNetworkEvents;
|
---|
| 264 | int iErrorCode[FD_MAX_EVENTS];
|
---|
| 265 | } WSANETWORKEVENTS, *LPWSANETWORKEVENTS;
|
---|
| 266 |
|
---|
[21409] | 267 | typedef struct _WSABUF
|
---|
[5742] | 268 | {
|
---|
| 269 | ULONG len;
|
---|
| 270 | CHAR* buf;
|
---|
| 271 | } WSABUF, *LPWSABUF;
|
---|
| 272 |
|
---|
| 273 | typedef struct _OVERLAPPED * LPWSAOVERLAPPED;
|
---|
| 274 | typedef HANDLE WSAEVENT;
|
---|
| 275 |
|
---|
[8372] | 276 | #define WSA_IO_PENDING (ERROR_IO_PENDING)
|
---|
| 277 | #define WSA_IO_INCOMPLETE (ERROR_IO_INCOMPLETE)
|
---|
| 278 | #define WSA_INVALID_HANDLE (ERROR_INVALID_HANDLE)
|
---|
| 279 | #define WSA_INVALID_PARAMETER (ERROR_INVALID_PARAMETER)
|
---|
| 280 | #define WSA_NOT_ENOUGH_MEMORY (ERROR_NOT_ENOUGH_MEMORY)
|
---|
| 281 | #define WSA_OPERATION_ABORTED (ERROR_OPERATION_ABORTED)
|
---|
| 282 |
|
---|
| 283 | #define WSA_INVALID_EVENT ((WSAEVENT)NULL)
|
---|
| 284 | #define WSA_MAXIMUM_WAIT_EVENTS (MAXIMUM_WAIT_OBJECTS)
|
---|
| 285 | #define WSA_WAIT_FAILED ((DWORD)-1L)
|
---|
| 286 | #define WSA_WAIT_EVENT_0 (WAIT_OBJECT_0)
|
---|
| 287 | #define WSA_WAIT_IO_COMPLETION (WAIT_IO_COMPLETION)
|
---|
| 288 | #define WSA_WAIT_TIMEOUT (WAIT_TIMEOUT)
|
---|
| 289 | #define WSA_INFINITE (INFINITE)
|
---|
| 290 |
|
---|
| 291 | typedef unsigned int GROUP;
|
---|
| 292 | #define SG_UNCONSTRAINED_GROUP 0x01
|
---|
| 293 | #define SG_CONSTRAINED_GROUP 0x02
|
---|
| 294 |
|
---|
[21410] | 295 | #define WSAAPI FAR PASCAL
|
---|
| 296 |
|
---|
[8372] | 297 | /*
|
---|
| 298 | * FLOWSPEC and SERVICETYPE should eventually move to qos.h
|
---|
| 299 | */
|
---|
| 300 |
|
---|
| 301 | typedef ULONG SERVICETYPE;
|
---|
| 302 |
|
---|
| 303 | typedef struct _FLOWSPEC {
|
---|
| 304 | unsigned int TokenRate;
|
---|
| 305 | unsigned int TokenBucketSize;
|
---|
| 306 | unsigned int PeakBandwidth;
|
---|
| 307 | unsigned int Latency;
|
---|
[21552] | 308 | unsigned int DelayVariation;
|
---|
[8372] | 309 | SERVICETYPE ServiceType;
|
---|
| 310 | unsigned int MaxSduSize;
|
---|
| 311 | unsigned int MinimumPolicedSize;
|
---|
| 312 | } FLOWSPEC, *PFLOWSPEC, *LPFLOWSPEC;
|
---|
| 313 |
|
---|
| 314 | typedef struct _QUALITYOFSERVICE {
|
---|
| 315 | FLOWSPEC SendingFlowspec;
|
---|
| 316 | FLOWSPEC ReceivingFlowspec;
|
---|
[21409] | 317 | WSABUF ProviderSpecific;
|
---|
[8372] | 318 | } QOS, *LPQOS;
|
---|
| 319 |
|
---|
| 320 | typedef int (* CALLBACK LPCONDITIONPROC)
|
---|
| 321 | (
|
---|
| 322 | LPWSABUF lpCallerId,
|
---|
| 323 | LPWSABUF lpCallerData,
|
---|
| 324 | LPQOS lpSQOS,
|
---|
| 325 | LPQOS lpGQOS,
|
---|
| 326 | LPWSABUF lpCalleeId,
|
---|
| 327 | LPWSABUF lpCalleeData,
|
---|
| 328 | GROUP *g,
|
---|
| 329 | DWORD dwCallbackData
|
---|
| 330 | );
|
---|
| 331 |
|
---|
[5742] | 332 | typedef void (* CALLBACK LPWSAOVERLAPPED_COMPLETION_ROUTINE)
|
---|
| 333 | (
|
---|
| 334 | DWORD dwError,
|
---|
| 335 | DWORD cbTransferred,
|
---|
| 336 | LPWSAOVERLAPPED lpOverlapped,
|
---|
| 337 | DWORD dwFlags
|
---|
| 338 | );
|
---|
| 339 |
|
---|
[21552] | 340 | #ifndef _tagBLOB_DEFINED
|
---|
| 341 | #define _tagBLOB_DEFINED
|
---|
| 342 | #define _BLOB_DEFINED
|
---|
| 343 | #define _LPBLOB_DEFINED
|
---|
| 344 | typedef struct _BLOB {
|
---|
| 345 | ULONG cbSize;
|
---|
| 346 | BYTE *pBlobData;
|
---|
| 347 | } BLOB, *LPBLOB;
|
---|
| 348 | #endif
|
---|
[5742] | 349 |
|
---|
[21552] | 350 | #ifndef __CSADDR_DEFINED__
|
---|
| 351 | #define __CSADDR_DEFINED__
|
---|
| 352 |
|
---|
| 353 | typedef struct _SOCKET_ADDRESS {
|
---|
| 354 | LPSOCKADDR lpSockaddr;
|
---|
| 355 | INT iSockaddrLength;
|
---|
| 356 | } SOCKET_ADDRESS, *PSOCKET_ADDRESS, *LPSOCKET_ADDRESS;
|
---|
| 357 |
|
---|
| 358 | typedef struct _CSADDR_INFO {
|
---|
| 359 | SOCKET_ADDRESS LocalAddr;
|
---|
| 360 | SOCKET_ADDRESS RemoteAddr;
|
---|
| 361 | INT iSocketType;
|
---|
| 362 | INT iProtocol;
|
---|
| 363 | } CSADDR_INFO, *PCSADDR_INFO, *LPCSADDR_INFO;
|
---|
| 364 | #endif
|
---|
| 365 |
|
---|
| 366 | /*socket address list */
|
---|
| 367 | typedef struct _SOCKET_ADDRESS_LIST {
|
---|
| 368 | INT iAddressCount;
|
---|
| 369 | SOCKET_ADDRESS Address[1];
|
---|
| 370 | } SOCKET_ADDRESS_LIST, *LPSOCKET_ADDRESS_LIST;
|
---|
| 371 |
|
---|
| 372 | /* addressfamily protocol pairs */
|
---|
| 373 | typedef struct _AFPROTOCOLS {
|
---|
| 374 | INT iAddressFamily;
|
---|
| 375 | INT iProtocol;
|
---|
| 376 | } AFPROTOCOLS, *PAFPROTOCOLS, *LPAFPROTOCOLS;
|
---|
| 377 |
|
---|
| 378 | /* client query definitions */
|
---|
| 379 | typedef enum _WSAEcomparator {
|
---|
| 380 | COMP_EQUAL = 0,
|
---|
| 381 | COMP_NOTLESS
|
---|
| 382 | } WSAECOMPARATOR, *PWSAECOMPARATOR, *LPWSAECOMPARATOR;
|
---|
| 383 |
|
---|
| 384 | typedef struct _WSAVersion {
|
---|
| 385 | DWORD dwVersion;
|
---|
| 386 | WSAECOMPARATOR ecHow;
|
---|
| 387 | } WSAVERSION, *PWSAVERSION, *LPWSAVERSION;
|
---|
| 388 |
|
---|
| 389 |
|
---|
| 390 | typedef struct _WSAQuerySetA {
|
---|
| 391 | DWORD dwSize;
|
---|
| 392 | LPSTR lpszServiceInstanceName;
|
---|
| 393 | LPGUID lpServiceClassId;
|
---|
| 394 | LPWSAVERSION lpVersion;
|
---|
| 395 | LPSTR lpszComment;
|
---|
| 396 | DWORD dwNameSpace;
|
---|
| 397 | LPGUID lpNSProviderId;
|
---|
| 398 | LPSTR lpszContext;
|
---|
| 399 | DWORD dwNumberOfProtocols;
|
---|
| 400 | LPAFPROTOCOLS lpafpProtocols;
|
---|
| 401 | LPSTR lpszQueryString;
|
---|
| 402 | DWORD dwNumberOfCsAddrs;
|
---|
| 403 | LPCSADDR_INFO lpcsaBuffer;
|
---|
| 404 | DWORD dwOutputFlags;
|
---|
| 405 | LPBLOB lpBlob;
|
---|
| 406 | } WSAQUERYSETA, *PWSAQUERYSETA, *LPWSAQUERYSETA;
|
---|
| 407 |
|
---|
| 408 | typedef struct _WSAQuerySetW {
|
---|
| 409 | DWORD dwSize;
|
---|
| 410 | LPWSTR lpszServiceInstanceName;
|
---|
| 411 | LPGUID lpServiceClassId;
|
---|
| 412 | LPWSAVERSION lpVersion;
|
---|
| 413 | LPWSTR lpszComment;
|
---|
| 414 | DWORD dwNameSpace;
|
---|
| 415 | LPGUID lpNSProviderId;
|
---|
| 416 | LPWSTR lpszContext;
|
---|
| 417 | DWORD dwNumberOfProtocols;
|
---|
| 418 | LPAFPROTOCOLS lpafpProtocols;
|
---|
| 419 | LPWSTR lpszQueryString;
|
---|
| 420 | DWORD dwNumberOfCsAddrs;
|
---|
| 421 | LPCSADDR_INFO lpcsaBuffer;
|
---|
| 422 | DWORD dwOutputFlags;
|
---|
| 423 | LPBLOB lpBlob;
|
---|
| 424 | } WSAQUERYSETW, *PWSAQUERYSETW, *LPWSAQUERYSETW;
|
---|
| 425 |
|
---|
| 426 | DECL_WINELIB_TYPE_AW(WSAQUERYSET)
|
---|
| 427 | DECL_WINELIB_TYPE_AW(PWSAQUERYSET)
|
---|
| 428 | DECL_WINELIB_TYPE_AW(LPWSAQUERYSET)
|
---|
| 429 |
|
---|
[5742] | 430 | /* Function declarations */
|
---|
| 431 | int WINAPI WSAEnumNetworkEvents(SOCKET s, WSAEVENT hEventObject, LPWSANETWORKEVENTS lpNetworkEvents);
|
---|
| 432 | int WINAPI WSAEventSelect(SOCKET s, WSAEVENT hEventObject, long lNetworkEvents);
|
---|
| 433 | WSAEVENT WINAPI WSACreateEvent(void);
|
---|
| 434 | BOOL WINAPI WSACloseEvent(WSAEVENT event);
|
---|
| 435 | SOCKET WINAPI WSASocketA(int af, int type, int protocol,
|
---|
| 436 | LPWSAPROTOCOL_INFOA lpProtocolInfo,
|
---|
| 437 | GROUP g, DWORD dwFlags);
|
---|
[21420] | 438 | INT WINAPI WSASend(SOCKET s, LPWSABUF lpBuffers, DWORD dwBufferCount,
|
---|
| 439 | LPDWORD lpNumberOfBytesSent, DWORD dwFlags,
|
---|
| 440 | LPWSAOVERLAPPED lpOverlapped,
|
---|
| 441 | LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
|
---|
| 442 | INT WINAPI WSASendTo(SOCKET s, LPWSABUF lpBuffers, DWORD dwBufferCount,
|
---|
| 443 | LPDWORD lpNumberOfBytesSent, DWORD dwFlags,
|
---|
| 444 | const struct sockaddr *to, int tolen,
|
---|
| 445 | LPWSAOVERLAPPED lpOverlapped,
|
---|
| 446 | LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
|
---|
[21418] | 447 | int WINAPI WSASendDisconnect(SOCKET s, LPWSABUF lpOutboundDisconnectData);
|
---|
| 448 | int WINAPI WSAIoctl(SOCKET s, DWORD dwIoControlCode, LPVOID lpvInBuffer,
|
---|
| 449 | DWORD cbInBuffer, LPVOID lpvOutBuffer, DWORD cbOutBuffer,
|
---|
| 450 | LPDWORD lpcbBytesReturned, LPWSAOVERLAPPED lpOverlapped,
|
---|
| 451 | LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
|
---|
[21420] | 452 | int WINAPI WSARecv (SOCKET s, LPWSABUF lpBuffers, DWORD dwBufferCount,
|
---|
| 453 | LPDWORD lpNumberOfBytesReceived, LPDWORD lpFlags,
|
---|
| 454 | LPWSAOVERLAPPED lpOverlapped,
|
---|
| 455 | LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
|
---|
| 456 | INT WINAPI WSARecvFrom(SOCKET s, LPWSABUF lpBuffers, DWORD dwBufferCount,
|
---|
| 457 | LPDWORD lpNumberOfBytesRecvd, LPDWORD lpFlags, struct sockaddr *lpFrom,
|
---|
| 458 | LPINT lpFromlen, LPWSAOVERLAPPED lpOverlapped,
|
---|
| 459 | LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
|
---|
[21552] | 460 | INT WINAPI WSALookupServiceBeginA( LPWSAQUERYSETA, DWORD, LPHANDLE);
|
---|
| 461 | INT WINAPI WSALookupServiceBeginW( LPWSAQUERYSETW, DWORD, LPHANDLE);
|
---|
| 462 | #define WSALookupServiceBegin WINELIB_NAME_AW(WSALookupServiceBegin)
|
---|
[21418] | 463 |
|
---|
[5742] | 464 | extern INT WINAPI ioctlsocket(SOCKET s, LONG cmd, ULONG *argp);
|
---|
| 465 |
|
---|
[21456] | 466 | #include <poppack.h>
|
---|
[5742] | 467 |
|
---|
| 468 | #endif
|
---|