2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS WinSock 2 DLL
5 * PURPOSE: Namespace APIs
6 * PROGRAMMERS: Casper S. Hornstrup (chorns@users.sourceforge.net)
8 * CSH 01/09-2000 Created
12 /* Name resolution APIs */
17 IN LPSOCKADDR lpsaAddress,
18 IN DWORD dwAddressLength,
19 IN LPWSAPROTOCOL_INFOA lpProtocolInfo,
20 OUT LPSTR lpszAddressString,
21 IN OUT LPDWORD lpdwAddressStringLength)
32 IN LPSOCKADDR lpsaAddress,
33 IN DWORD dwAddressLength,
34 IN LPWSAPROTOCOL_INFOW lpProtocolInfo,
35 OUT LPWSTR lpszAddressString,
36 IN OUT LPDWORD lpdwAddressStringLength)
46 WSAEnumNameSpaceProvidersA(
47 IN OUT LPDWORD lpdwBufferLength,
48 OUT LPWSANAMESPACE_INFOA lpnspBuffer)
58 WSAEnumNameSpaceProvidersW(
59 IN OUT LPDWORD lpdwBufferLength,
60 OUT LPWSANAMESPACE_INFOW lpnspBuffer)
70 WSAGetServiceClassInfoA(
71 IN LPGUID lpProviderId,
72 IN LPGUID lpServiceClassId,
73 IN OUT LPDWORD lpdwBufferLength,
74 OUT LPWSASERVICECLASSINFOA lpServiceClassInfo)
84 WSAGetServiceClassInfoW(
85 IN LPGUID lpProviderId,
86 IN LPGUID lpServiceClassId,
87 IN OUT LPDWORD lpdwBufferLength,
88 OUT LPWSASERVICECLASSINFOW lpServiceClassInfo)
98 WSAGetServiceClassNameByClassIdA(
99 IN LPGUID lpServiceClassId,
100 OUT LPSTR lpszServiceClassName,
101 IN OUT LPDWORD lpdwBufferLength)
111 WSAGetServiceClassNameByClassIdW(
112 IN LPGUID lpServiceClassId,
113 OUT LPWSTR lpszServiceClassName,
114 IN OUT LPDWORD lpdwBufferLength)
124 WSAInstallServiceClassA(
125 IN LPWSASERVICECLASSINFOA lpServiceClassInfo)
135 WSAInstallServiceClassW(
136 IN LPWSASERVICECLASSINFOW lpServiceClassInfo)
146 WSALookupServiceBeginA(
147 IN LPWSAQUERYSETA lpqsRestrictions,
148 IN DWORD dwControlFlags,
149 OUT LPHANDLE lphLookup)
159 WSALookupServiceBeginW(
160 IN LPWSAQUERYSETW lpqsRestrictions,
161 IN DWORD dwControlFlags,
162 OUT LPHANDLE lphLookup)
183 WSALookupServiceNextA(
185 IN DWORD dwControlFlags,
186 IN OUT LPDWORD lpdwBufferLength,
187 OUT LPWSAQUERYSETA lpqsResults)
197 WSALookupServiceNextW(
199 IN DWORD dwControlFlags,
200 IN OUT LPDWORD lpdwBufferLength,
201 OUT LPWSAQUERYSETW lpqsResults)
211 WSARemoveServiceClass(
212 IN LPGUID lpServiceClassId)
223 IN LPWSAQUERYSETA lpqsRegInfo,
224 IN WSAESETSERVICEOP essOperation,
225 IN DWORD dwControlFlags)
236 IN LPWSAQUERYSETW lpqsRegInfo,
237 IN WSAESETSERVICEOP essOperation,
238 IN DWORD dwControlFlags)
249 IN LPSTR AddressString,
250 IN INT AddressFamily,
251 IN LPWSAPROTOCOL_INFOA lpProtocolInfo,
252 OUT LPSOCKADDR lpAddress,
253 IN OUT LPINT lpAddressLength)
264 IN LPWSTR AddressString,
265 IN INT AddressFamily,
266 IN LPWSAPROTOCOL_INFOW lpProtocolInfo,
267 OUT LPSOCKADDR lpAddress,
268 IN OUT LPINT lpAddressLength)
276 /* WinSock 1.1 compatible name resolution APIs */
281 IN CONST CHAR FAR* addr,
287 return (LPHOSTENT)NULL;
293 IN CONST CHAR FAR* name)
297 return (LPHOSTENT)NULL;
316 IN CONST CHAR FAR* name)
320 return (LPPROTOENT)NULL;
331 return (LPPROTOENT)NULL;
337 IN CONST CHAR FAR* name,
338 IN CONST CHAR FAR* proto)
342 return (LPSERVENT)NULL;
350 IN CONST CHAR FAR* proto)
354 return (LPSERVENT)NULL;
361 IN CONST CHAR FAR* cp)
363 * FUNCTION: Converts a string containing an IPv4 address to an unsigned long
365 * cp = Pointer to string with address to convert
367 * Binary representation of IPv4 address, or INADDR_NONE
379 if (strcmp(p, " ") == 0)
382 for (i = 0; i <= 3; i++) {
383 u += (strtoul(p, &p, 0) << (i * 8));
406 p = ((PWINSOCK_THREAD_BLOCK)NtCurrentTeb()->WinSockData)->Intoa;
407 _itoa(in.S_un.S_addr & 0xFF, b, 10);
409 _itoa((in.S_un.S_addr >> 8) & 0xFF, b, 10);
412 _itoa((in.S_un.S_addr >> 16) & 0xFF, b, 10);
415 _itoa((in.S_un.S_addr >> 24) & 0xFF, b, 10);
424 WSAAsyncGetHostByAddr(
427 IN CONST CHAR FAR* addr,
441 WSAAsyncGetHostByName(
444 IN CONST CHAR FAR* name,
456 WSAAsyncGetProtoByName(
459 IN CONST CHAR FAR* name,
471 WSAAsyncGetProtoByNumber(
486 WSAAsyncGetServByName(
489 IN CONST CHAR FAR* name,
490 IN CONST CHAR FAR* proto,
502 WSAAsyncGetServByPort(
506 IN CONST CHAR FAR* proto,