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 */
20 IN LPSOCKADDR lpsaAddress,
21 IN DWORD dwAddressLength,
22 IN LPWSAPROTOCOL_INFOA lpProtocolInfo,
23 OUT LPSTR lpszAddressString,
24 IN OUT LPDWORD lpdwAddressStringLength)
38 IN LPSOCKADDR lpsaAddress,
39 IN DWORD dwAddressLength,
40 IN LPWSAPROTOCOL_INFOW lpProtocolInfo,
41 OUT LPWSTR lpszAddressString,
42 IN OUT LPDWORD lpdwAddressStringLength)
55 WSAEnumNameSpaceProvidersA(
56 IN OUT LPDWORD lpdwBufferLength,
57 OUT LPWSANAMESPACE_INFOA lpnspBuffer)
70 WSAEnumNameSpaceProvidersW(
71 IN OUT LPDWORD lpdwBufferLength,
72 OUT LPWSANAMESPACE_INFOW lpnspBuffer)
85 WSAGetServiceClassInfoA(
86 IN LPGUID lpProviderId,
87 IN LPGUID lpServiceClassId,
88 IN OUT LPDWORD lpdwBufferLength,
89 OUT LPWSASERVICECLASSINFOA lpServiceClassInfo)
102 WSAGetServiceClassInfoW(
103 IN LPGUID lpProviderId,
104 IN LPGUID lpServiceClassId,
105 IN OUT LPDWORD lpdwBufferLength,
106 OUT LPWSASERVICECLASSINFOW lpServiceClassInfo)
119 WSAGetServiceClassNameByClassIdA(
120 IN LPGUID lpServiceClassId,
121 OUT LPSTR lpszServiceClassName,
122 IN OUT LPDWORD lpdwBufferLength)
135 WSAGetServiceClassNameByClassIdW(
136 IN LPGUID lpServiceClassId,
137 OUT LPWSTR lpszServiceClassName,
138 IN OUT LPDWORD lpdwBufferLength)
151 WSAInstallServiceClassA(
152 IN LPWSASERVICECLASSINFOA lpServiceClassInfo)
165 WSAInstallServiceClassW(
166 IN LPWSASERVICECLASSINFOW lpServiceClassInfo)
179 WSALookupServiceBeginA(
180 IN LPWSAQUERYSETA lpqsRestrictions,
181 IN DWORD dwControlFlags,
182 OUT LPHANDLE lphLookup)
195 WSALookupServiceBeginW(
196 IN LPWSAQUERYSETW lpqsRestrictions,
197 IN DWORD dwControlFlags,
198 OUT LPHANDLE lphLookup)
225 WSALookupServiceNextA(
227 IN DWORD dwControlFlags,
228 IN OUT LPDWORD lpdwBufferLength,
229 OUT LPWSAQUERYSETA lpqsResults)
242 WSALookupServiceNextW(
244 IN DWORD dwControlFlags,
245 IN OUT LPDWORD lpdwBufferLength,
246 OUT LPWSAQUERYSETW lpqsResults)
259 WSARemoveServiceClass(
260 IN LPGUID lpServiceClassId)
274 IN LPWSAQUERYSETA lpqsRegInfo,
275 IN WSAESETSERVICEOP essOperation,
276 IN DWORD dwControlFlags)
290 IN LPWSAQUERYSETW lpqsRegInfo,
291 IN WSAESETSERVICEOP essOperation,
292 IN DWORD dwControlFlags)
306 IN LPSTR AddressString,
307 IN INT AddressFamily,
308 IN LPWSAPROTOCOL_INFOA lpProtocolInfo,
309 OUT LPSOCKADDR lpAddress,
310 IN OUT LPINT lpAddressLength)
324 IN LPWSTR AddressString,
325 IN INT AddressFamily,
326 IN LPWSAPROTOCOL_INFOW lpProtocolInfo,
327 OUT LPSOCKADDR lpAddress,
328 IN OUT LPINT lpAddressLength)
336 /* WinSock 1.1 compatible name resolution APIs */
344 IN CONST CHAR FAR* addr,
350 return (LPHOSTENT)NULL;
359 IN CONST CHAR FAR* name)
363 return (LPHOSTENT)NULL;
388 IN CONST CHAR FAR* name)
392 return (LPPROTOENT)NULL;
406 return (LPPROTOENT)NULL;
416 IN CONST CHAR FAR* name,
417 IN CONST CHAR FAR* proto)
421 return (LPSERVENT)NULL;
432 IN CONST CHAR FAR* proto)
436 return (LPSERVENT)NULL;
446 IN CONST CHAR FAR* cp)
448 * FUNCTION: Converts a string containing an IPv4 address to an unsigned long
450 * cp = Pointer to string with address to convert
452 * Binary representation of IPv4 address, or INADDR_NONE
464 if (strcmp(p, " ") == 0)
467 for (i = 0; i <= 3; i++) {
468 u += (strtoul(p, &p, 0) << (i * 8));
494 p = ((PWINSOCK_THREAD_BLOCK)NtCurrentTeb()->WinSockData)->Intoa;
495 _itoa(in.S_un.S_addr & 0xFF, b, 10);
497 _itoa((in.S_un.S_addr >> 8) & 0xFF, b, 10);
500 _itoa((in.S_un.S_addr >> 16) & 0xFF, b, 10);
503 _itoa((in.S_un.S_addr >> 24) & 0xFF, b, 10);
515 WSAAsyncGetHostByAddr(
518 IN CONST CHAR FAR* addr,
535 WSAAsyncGetHostByName(
538 IN CONST CHAR FAR* name,
553 WSAAsyncGetProtoByName(
556 IN CONST CHAR FAR* name,
571 WSAAsyncGetProtoByNumber(
589 WSAAsyncGetServByName(
592 IN CONST CHAR FAR* name,
593 IN CONST CHAR FAR* proto,
608 WSAAsyncGetServByPort(
612 IN CONST CHAR FAR* proto,