2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS WinSock 2 DLL
6 * PROGRAMMERS: Casper S. Hornstrup (chorns@users.sourceforge.net)
8 * CSH 01/09-2000 Created
23 IN OUT INT FAR
* namelen
)
27 PCATALOG_ENTRY Provider
;
31 WSASetLastError(WSANOTINITIALISED
);
35 if (!ReferenceProviderByHandle((HANDLE
)s
, &Provider
))
37 WSASetLastError(WSAENOTSOCK
);
41 Error
= Provider
->ProcTable
.lpWSPGetPeerName(s
,
46 DereferenceProviderByPointer(Provider
);
48 if (Error
== SOCKET_ERROR
)
50 WSASetLastError(Errno
);
66 IN OUT INT FAR
* namelen
)
70 PCATALOG_ENTRY Provider
;
74 WSASetLastError(WSANOTINITIALISED
);
78 if (!ReferenceProviderByHandle((HANDLE
)s
, &Provider
))
80 WSASetLastError(WSAENOTSOCK
);
84 Error
= Provider
->ProcTable
.lpWSPGetSockName(s
,
89 DereferenceProviderByPointer(Provider
);
91 if (Error
== SOCKET_ERROR
)
93 WSASetLastError(Errno
);
109 OUT CHAR FAR
* optval
,
110 IN OUT INT FAR
* optlen
)
112 PCATALOG_ENTRY Provider
;
118 WSASetLastError(WSANOTINITIALISED
);
122 if (!ReferenceProviderByHandle((HANDLE
)s
, &Provider
))
124 WSASetLastError(WSAENOTSOCK
);
128 Error
= Provider
->ProcTable
.lpWSPGetSockOpt(s
,
135 DereferenceProviderByPointer(Provider
);
137 if (Error
== SOCKET_ERROR
)
139 WSASetLastError(Errno
);
155 IN CONST CHAR FAR
* optval
,
158 PCATALOG_ENTRY Provider
;
164 WSASetLastError(WSANOTINITIALISED
);
168 if (!ReferenceProviderByHandle((HANDLE
)s
, &Provider
))
170 WSASetLastError(WSAENOTSOCK
);
174 Error
= Provider
->ProcTable
.lpWSPSetSockOpt(s
,
181 DereferenceProviderByPointer(Provider
);
183 if (Error
== SOCKET_ERROR
)
185 WSASetLastError(Errno
);
201 PCATALOG_ENTRY Provider
;
207 WSASetLastError(WSANOTINITIALISED
);
211 if (!ReferenceProviderByHandle((HANDLE
)s
, &Provider
))
213 WSASetLastError(WSAENOTSOCK
);
217 Error
= Provider
->ProcTable
.lpWSPShutdown(s
,
221 DereferenceProviderByPointer(Provider
);
223 if (Error
== SOCKET_ERROR
)
225 WSASetLastError(Errno
);
243 PCATALOG_ENTRY Provider
;
249 WSASetLastError(WSANOTINITIALISED
);
253 if (!ReferenceProviderByHandle((HANDLE
)s
, &Provider
))
255 WSASetLastError(WSAENOTSOCK
);
259 Error
= Provider
->ProcTable
.lpWSPAsyncSelect(s
,
265 DereferenceProviderByPointer(Provider
);
267 if (Error
== SOCKET_ERROR
)
269 WSASetLastError(Errno
);
281 WSACancelBlockingCall(VOID
)
286 PCATALOG_ENTRY Provider
;
290 WSASetLastError(WSANOTINITIALISED
);
294 if (!ReferenceProviderByHandle((HANDLE
)s
, &Provider
))
296 WSASetLastError(WSAENOTSOCK
);
300 Error
= Provider
->ProcTable
.lpWSPCancelBlockingCall(&Errno
);
302 DereferenceProviderByPointer(Provider
);
304 if (Error
== SOCKET_ERROR
)
306 WSASetLastError(Errno
);
325 IN DWORD dwProcessId
,
326 OUT LPWSAPROTOCOL_INFOA lpProtocolInfo
)
329 WSAPROTOCOL_INFOA ProtocolInfoU
;
331 Error
= WSADuplicateSocketW(s
,
335 if (Error
== NO_ERROR
)
337 UnicodeToAnsi(lpProtocolInfo
, ProtocolInfoU
, sizeof(
358 IN DWORD dwProcessId
,
359 OUT LPWSAPROTOCOL_INFOW lpProtocolInfo
)
363 PCATALOG_ENTRY Provider
;
367 WSASetLastError(WSANOTINITIALISED
);
371 if (!ReferenceProviderByHandle((HANDLE
)s
, &Provider
))
373 WSASetLastError(WSAENOTSOCK
);
377 Error
= Provider
->ProcTable
.lpWSPDuplicateSocket(s
,
381 DereferenceProviderByPointer(Provider
);
383 if (Error
== SOCKET_ERROR
)
385 WSASetLastError(Errno
);
398 IN LPINT lpiProtocols
,
399 OUT LPWSAPROTOCOL_INFOA lpProtocolBuffer
,
400 IN OUT LPDWORD lpdwBufferLength
)
414 IN LPINT lpiProtocols
,
415 OUT LPWSAPROTOCOL_INFOW lpProtocolBuffer
,
416 IN OUT LPDWORD lpdwBufferLength
)
429 WSAGetOverlappedResult(
431 IN LPWSAOVERLAPPED lpOverlapped
,
432 OUT LPDWORD lpcbTransfer
,
434 OUT LPDWORD lpdwFlags
)
438 PCATALOG_ENTRY Provider
;
442 WSASetLastError(WSANOTINITIALISED
);
446 if (!ReferenceProviderByHandle((HANDLE
)s
, &Provider
))
448 WSASetLastError(WSAENOTSOCK
);
452 Success
= Provider
->ProcTable
.lpWSPGetOverlappedResult(s
,
458 DereferenceProviderByPointer(Provider
);
460 if (Success
== FALSE
)
462 WSASetLastError(Errno
);
476 IN OUT LPWSABUF lpQOSName
,
493 OUT ULONG FAR
* lpnetlong
)
509 OUT USHORT FAR
* lpnetshort
)
537 IN CONST
struct sockaddr
*name
,
539 IN LPWSABUF lpCallerData
,
540 OUT LPWSABUF lpCalleeData
,
547 return INVALID_SOCKET
;
559 OUT ULONG FAR
* lphostlong
)
575 OUT USHORT FAR
* lphostshort
)
589 IN FARPROC lpBlockFunc
)
602 WSAUnhookBlockingHook(VOID
)
615 WSAProviderConfigChange(
616 IN OUT LPHANDLE lpNotificationHandle
,
617 IN LPWSAOVERLAPPED lpOverlapped
,
618 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
)
631 WSACancelAsyncRequest(
632 IN HANDLE hAsyncTaskHandle
)
639 /* WinSock Service Provider support functions */
646 WPUCompleteOverlappedRequest(
648 IN LPWSAOVERLAPPED lpOverlapped
,
650 IN DWORD cbTransferred
,
665 IN WORD wVersionRequested
,
666 OUT LPWSPDATA lpWSPData
,
667 IN LPWSAPROTOCOL_INFOW lpProtocolInfo
,
668 IN WSPUPCALLTABLE UpcallTable
,
669 OUT LPWSPPROC_TABLE lpProcTable
)
682 WSCDeinstallProvider(
683 IN LPGUID lpProviderId
,
698 IN LPINT lpiProtocols
,
699 OUT LPWSAPROTOCOL_INFOW lpProtocolBuffer
,
700 IN OUT LPDWORD lpdwBufferLength
,
715 IN LPGUID lpProviderId
,
716 OUT LPWSTR lpszProviderDllPath
,
717 IN OUT LPINT lpProviderDllPathLen
,
732 IN CONST LPGUID lpProviderId
,
733 IN CONST LPWSTR lpszProviderDllPath
,
734 IN CONST LPWSAPROTOCOL_INFOW lpProtocolInfoList
,
735 IN DWORD dwNumberOfEntries
,
750 IN LPGUID lpProviderId
,
765 IN LPWSTR lpszIdentifier
,
766 IN LPWSTR lpszPathName
,
767 IN DWORD dwNameSpace
,
769 IN LPGUID lpProviderId
)
782 WSCUnInstallNameSpace(
783 IN LPGUID lpProviderId
)
796 WSCWriteProviderOrder(
797 IN LPDWORD lpwdCatalogEntryId
,
798 IN DWORD dwNumberOfEntries
)
817 LPDWORD lpcbBytesReturned
,
818 LPWSACOMPLETION lpCompletion
834 const WCHAR FAR
* lpszProviderDllPath
,
835 const LPWSAPROTOCOL_INFOW lpProtocolInfoList
,
836 DWORD dwNumberOfEntries
,
850 WSCWriteNameSpaceOrder (
852 DWORD dwNumberOfEntries
866 struct addrinfo
*pAddrInfo
878 const char FAR
* nodename
,
879 const char FAR
* servname
,
880 const struct addrinfo FAR
* hints
,
881 struct addrinfo FAR
* FAR
* res
895 const struct sockaddr FAR
* sa
,
920 BOOL EXPORT
WSApSetPostRoutine(PVOID Routine
)