reactos/reactos/lib/ws2_32/misc/stubs.c

928 lines
14 KiB
C
Raw Normal View History

/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS WinSock 2 DLL
* FILE: misc/stubs.c
* PURPOSE: Stubs
* PROGRAMMERS: Casper S. Hornstrup (chorns@users.sourceforge.net)
* REVISIONS:
* CSH 01/09-2000 Created
*/
#include <ws2_32.h>
#include <catalog.h>
#include <handle.h>
/*
* @implemented
*/
INT
EXPORT
getpeername(
IN SOCKET s,
OUT LPSOCKADDR name,
IN OUT INT FAR* namelen)
{
int Error;
INT Errno;
PCATALOG_ENTRY Provider;
if (!WSAINITIALIZED)
{
WSASetLastError(WSANOTINITIALISED);
return SOCKET_ERROR;
}
if (!ReferenceProviderByHandle((HANDLE)s, &Provider))
{
WSASetLastError(WSAENOTSOCK);
return SOCKET_ERROR;
}
Error = Provider->ProcTable.lpWSPGetPeerName(s,
name,
namelen,
&Errno);
DereferenceProviderByPointer(Provider);
if (Error == SOCKET_ERROR)
{
WSASetLastError(Errno);
}
return Error;
}
/*
* @implemented
*/
INT
EXPORT
getsockname(
IN SOCKET s,
OUT LPSOCKADDR name,
IN OUT INT FAR* namelen)
{
int Error;
INT Errno;
PCATALOG_ENTRY Provider;
if (!WSAINITIALIZED)
{
WSASetLastError(WSANOTINITIALISED);
return SOCKET_ERROR;
}
if (!ReferenceProviderByHandle((HANDLE)s, &Provider))
{
WSASetLastError(WSAENOTSOCK);
return SOCKET_ERROR;
}
Error = Provider->ProcTable.lpWSPGetSockName(s,
name,
namelen,
&Errno);
DereferenceProviderByPointer(Provider);
if (Error == SOCKET_ERROR)
{
WSASetLastError(Errno);
}
return Error;
}
/*
* @implemented
*/
INT
EXPORT
getsockopt(
IN SOCKET s,
IN INT level,
IN INT optname,
OUT CHAR FAR* optval,
IN OUT INT FAR* optlen)
{
PCATALOG_ENTRY Provider;
INT Errno;
int Error;
if (!WSAINITIALIZED)
{
WSASetLastError(WSANOTINITIALISED);
return SOCKET_ERROR;
}
if (!ReferenceProviderByHandle((HANDLE)s, &Provider))
{
WSASetLastError(WSAENOTSOCK);
return SOCKET_ERROR;
}
Error = Provider->ProcTable.lpWSPGetSockOpt(s,
level,
optname,
optval,
optlen,
&Errno);
DereferenceProviderByPointer(Provider);
if (Error == SOCKET_ERROR)
{
WSASetLastError(Errno);
}
return Error;
}
/*
* @implemented
*/
INT
EXPORT
setsockopt(
IN SOCKET s,
IN INT level,
IN INT optname,
IN CONST CHAR FAR* optval,
IN INT optlen)
{
PCATALOG_ENTRY Provider;
INT Errno;
int Error;
if (!WSAINITIALIZED)
{
WSASetLastError(WSANOTINITIALISED);
return SOCKET_ERROR;
}
if (!ReferenceProviderByHandle((HANDLE)s, &Provider))
{
WSASetLastError(WSAENOTSOCK);
return SOCKET_ERROR;
}
Error = Provider->ProcTable.lpWSPSetSockOpt(s,
level,
optname,
optval,
optlen,
&Errno);
DereferenceProviderByPointer(Provider);
if (Error == SOCKET_ERROR)
{
WSASetLastError(Errno);
}
return Error;
}
/*
* @implemented
*/
INT
EXPORT
shutdown(
IN SOCKET s,
IN INT how)
{
PCATALOG_ENTRY Provider;
INT Errno;
int Error;
if (!WSAINITIALIZED)
{
WSASetLastError(WSANOTINITIALISED);
return SOCKET_ERROR;
}
if (!ReferenceProviderByHandle((HANDLE)s, &Provider))
{
WSASetLastError(WSAENOTSOCK);
return SOCKET_ERROR;
}
Error = Provider->ProcTable.lpWSPShutdown(s,
how,
&Errno);
DereferenceProviderByPointer(Provider);
if (Error == SOCKET_ERROR)
{
WSASetLastError(Errno);
}
return Error;
}
/*
* @implemented
*/
INT
EXPORT
WSAAsyncSelect(
IN SOCKET s,
IN HWND hWnd,
IN UINT wMsg,
IN LONG lEvent)
{
PCATALOG_ENTRY Provider;
INT Errno;
int Error;
if (!WSAINITIALIZED)
{
WSASetLastError(WSANOTINITIALISED);
return SOCKET_ERROR;
}
if (!ReferenceProviderByHandle((HANDLE)s, &Provider))
{
WSASetLastError(WSAENOTSOCK);
return SOCKET_ERROR;
}
Error = Provider->ProcTable.lpWSPAsyncSelect(s,
hWnd,
wMsg,
lEvent,
&Errno);
DereferenceProviderByPointer(Provider);
if (Error == SOCKET_ERROR)
{
WSASetLastError(Errno);
}
return Error;
}
/*
* @unimplemented
*/
INT
EXPORT
WSACancelBlockingCall(VOID)
{
#if 0
INT Errno;
int Error;
PCATALOG_ENTRY Provider;
if (!WSAINITIALIZED)
{
WSASetLastError(WSANOTINITIALISED);
return SOCKET_ERROR;
}
if (!ReferenceProviderByHandle((HANDLE)s, &Provider))
{
WSASetLastError(WSAENOTSOCK);
return SOCKET_ERROR;
}
Error = Provider->ProcTable.lpWSPCancelBlockingCall(&Errno);
DereferenceProviderByPointer(Provider);
if (Error == SOCKET_ERROR)
{
WSASetLastError(Errno);
}
return Error;
#endif
UNIMPLEMENTED
return 0;
}
/*
* @unimplemented
*/
INT
EXPORT
WSADuplicateSocketA(
IN SOCKET s,
IN DWORD dwProcessId,
OUT LPWSAPROTOCOL_INFOA lpProtocolInfo)
{
#if 0
WSAPROTOCOL_INFOA ProtocolInfoU;
Error = WSADuplicateSocketW(s,
dwProcessId,
&ProtocolInfoU);
if (Error == NO_ERROR)
{
UnicodeToAnsi(lpProtocolInfo, ProtocolInfoU, sizeof(
}
return Error;
#endif
UNIMPLEMENTED
return 0;
}
/*
* @implemented
*/
INT
EXPORT
WSADuplicateSocketW(
IN SOCKET s,
IN DWORD dwProcessId,
OUT LPWSAPROTOCOL_INFOW lpProtocolInfo)
{
INT Errno;
int Error;
PCATALOG_ENTRY Provider;
if (!WSAINITIALIZED)
{
WSASetLastError(WSANOTINITIALISED);
return SOCKET_ERROR;
}
if (!ReferenceProviderByHandle((HANDLE)s, &Provider))
{
WSASetLastError(WSAENOTSOCK);
return SOCKET_ERROR;
}
Error = Provider->ProcTable.lpWSPDuplicateSocket(s,
dwProcessId,
lpProtocolInfo,
&Errno);
DereferenceProviderByPointer(Provider);
if (Error == SOCKET_ERROR)
{
WSASetLastError(Errno);
}
return Error;
}
/*
* @unimplemented
*/
INT
EXPORT
WSAEnumProtocolsA(
IN LPINT lpiProtocols,
OUT LPWSAPROTOCOL_INFOA lpProtocolBuffer,
IN OUT LPDWORD lpdwBufferLength)
{
UNIMPLEMENTED
return 0;
}
/*
* @unimplemented
*/
INT
EXPORT
WSAEnumProtocolsW(
IN LPINT lpiProtocols,
OUT LPWSAPROTOCOL_INFOW lpProtocolBuffer,
IN OUT LPDWORD lpdwBufferLength)
{
UNIMPLEMENTED
return 0;
}
/*
* @implemented
*/
BOOL
EXPORT
WSAGetOverlappedResult(
IN SOCKET s,
IN LPWSAOVERLAPPED lpOverlapped,
OUT LPDWORD lpcbTransfer,
IN BOOL fWait,
OUT LPDWORD lpdwFlags)
{
INT Errno;
BOOL Success;
PCATALOG_ENTRY Provider;
if (!WSAINITIALIZED)
{
WSASetLastError(WSANOTINITIALISED);
return SOCKET_ERROR;
}
if (!ReferenceProviderByHandle((HANDLE)s, &Provider))
{
WSASetLastError(WSAENOTSOCK);
return SOCKET_ERROR;
}
Success = Provider->ProcTable.lpWSPGetOverlappedResult(s,
lpOverlapped,
lpcbTransfer,
fWait,
lpdwFlags,
&Errno);
DereferenceProviderByPointer(Provider);
if (Success == FALSE)
{
WSASetLastError(Errno);
}
return Success;
}
/*
* @unimplemented
*/
BOOL
EXPORT
WSAGetQOSByName(
IN SOCKET s,
IN OUT LPWSABUF lpQOSName,
OUT LPQOS lpQOS)
{
UNIMPLEMENTED
return FALSE;
}
/*
* @unimplemented
*/
INT
EXPORT
WSAHtonl(
IN SOCKET s,
IN ULONG hostLONG,
OUT ULONG FAR* lpnetlong)
{
UNIMPLEMENTED
return 0;
}
/*
* @unimplemented
*/
INT
EXPORT
WSAHtons(
IN SOCKET s,
IN USHORT hostshort,
OUT USHORT FAR* lpnetshort)
{
UNIMPLEMENTED
return 0;
}
/*
* @unimplemented
*/
BOOL
EXPORT
WSAIsBlocking(VOID)
{
UNIMPLEMENTED
return FALSE;
}
/*
* @unimplemented
*/
SOCKET
EXPORT
WSAJoinLeaf(
IN SOCKET s,
IN CONST struct sockaddr *name,
IN INT namelen,
IN LPWSABUF lpCallerData,
OUT LPWSABUF lpCalleeData,
IN LPQOS lpSQOS,
IN LPQOS lpGQOS,
IN DWORD dwFlags)
{
UNIMPLEMENTED
return INVALID_SOCKET;
}
/*
* @unimplemented
*/
INT
EXPORT
WSANtohl(
IN SOCKET s,
IN ULONG netlong,
OUT ULONG FAR* lphostlong)
{
UNIMPLEMENTED
return 0;
}
/*
* @unimplemented
*/
INT
EXPORT
WSANtohs(
IN SOCKET s,
IN USHORT netshort,
OUT USHORT FAR* lphostshort)
{
UNIMPLEMENTED
return 0;
}
/*
* @unimplemented
*/
FARPROC
EXPORT
WSASetBlockingHook(
IN FARPROC lpBlockFunc)
{
UNIMPLEMENTED
return (FARPROC)0;
}
/*
* @unimplemented
*/
INT
EXPORT
WSAUnhookBlockingHook(VOID)
{
UNIMPLEMENTED
return 0;
}
/*
* @unimplemented
*/
INT
EXPORT
WSAProviderConfigChange(
IN OUT LPHANDLE lpNotificationHandle,
IN LPWSAOVERLAPPED lpOverlapped,
IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine)
{
UNIMPLEMENTED
return 0;
}
/*
* @unimplemented
*/
INT
EXPORT
WSACancelAsyncRequest(
IN HANDLE hAsyncTaskHandle)
{
UNIMPLEMENTED
return 0;
}
/* WinSock Service Provider support functions */
/*
* @unimplemented
*/
INT
EXPORT
WPUCompleteOverlappedRequest(
IN SOCKET s,
IN LPWSAOVERLAPPED lpOverlapped,
IN DWORD dwError,
IN DWORD cbTransferred,
OUT LPINT lpErrno)
{
UNIMPLEMENTED
return 0;
}
/*
* @unimplemented
*/
INT
EXPORT
WSPStartup(
IN WORD wVersionRequested,
OUT LPWSPDATA lpWSPData,
IN LPWSAPROTOCOL_INFOW lpProtocolInfo,
IN WSPUPCALLTABLE UpcallTable,
OUT LPWSPPROC_TABLE lpProcTable)
{
UNIMPLEMENTED
return 0;
}
/*
* @unimplemented
*/
INT
EXPORT
WSCDeinstallProvider(
IN LPGUID lpProviderId,
OUT LPINT lpErrno)
{
UNIMPLEMENTED
return 0;
}
/*
* @unimplemented
*/
INT
EXPORT
WSCEnumProtocols(
IN LPINT lpiProtocols,
OUT LPWSAPROTOCOL_INFOW lpProtocolBuffer,
IN OUT LPDWORD lpdwBufferLength,
OUT LPINT lpErrno)
{
UNIMPLEMENTED
return 0;
}
/*
* @unimplemented
*/
INT
EXPORT
WSCGetProviderPath(
IN LPGUID lpProviderId,
OUT LPWSTR lpszProviderDllPath,
IN OUT LPINT lpProviderDllPathLen,
OUT LPINT lpErrno)
{
UNIMPLEMENTED
return 0;
}
/*
* @unimplemented
*/
INT
EXPORT
WSCInstallProvider(
IN CONST LPGUID lpProviderId,
IN CONST LPWSTR lpszProviderDllPath,
IN CONST LPWSAPROTOCOL_INFOW lpProtocolInfoList,
IN DWORD dwNumberOfEntries,
OUT LPINT lpErrno)
{
UNIMPLEMENTED
return 0;
}
/*
* @unimplemented
*/
INT
EXPORT
WSCEnableNSProvider(
IN LPGUID lpProviderId,
IN BOOL fEnable)
{
UNIMPLEMENTED
return 0;
}
/*
* @unimplemented
*/
INT
EXPORT
WSCInstallNameSpace(
IN LPWSTR lpszIdentifier,
IN LPWSTR lpszPathName,
IN DWORD dwNameSpace,
IN DWORD dwVersion,
IN LPGUID lpProviderId)
{
UNIMPLEMENTED
return 0;
}
/*
* @unimplemented
*/
INT
EXPORT
WSCUnInstallNameSpace(
IN LPGUID lpProviderId)
{
UNIMPLEMENTED
return 0;
}
/*
* @unimplemented
*/
INT
EXPORT
WSCWriteProviderOrder(
IN LPDWORD lpwdCatalogEntryId,
IN DWORD dwNumberOfEntries)
{
UNIMPLEMENTED
return 0;
}
changes in this patch by Jonathon Wilson: 1.add some definitions to ascii.h 2.add some definitions to base.h 3.add some definitions to defines.h 4.add some definitions to funcs.h 5.add some definitions to structs.h 6.add some definitions to unicode.h 7.add some definitions to winsock2.h 8.fix it so that the ACCESS_MODE definition in ntos\security.h is only visible in kernel mode 9.add lots of stubs to advapi32.dll (some stuff from appmgmt.h, winsafer.h, evntrace.h, winefs.h, sddl.h, wincred.h & mschapp.h still to be added) 10.add a bunch of stubs to iphlpapi.dll 11.modify kernel32.dll so that certain functions are forwarded to ntdll.dll instead of being stubs in kernel32.dll 12.modify lz32.dll so that everything points at kernel32.dll 13.fix msafd.h to account for changes to winsock2.h (winsock2.h now needs stdlib.h to get the size_t type) 14.add stubs for SendIMEMessageExW and SendIMEMessageExA to user32.dll 15.add some stubs to ws2_32.dll 16.rename WahCreateNotificationTable to WahCreateNotificationHandle in ws2help.dll (WahCreateNotificationHandle is what microsoft calls it) 17.fix ws2help.h to account for changes to winsock2.h (winsock2.h now needs stdlib.h to get the size_t type) 18.fix wshirda.h to account for changes to winsock2.h (winsock2.h now needs stdlib.h to get the size_t type) 19.fix wsock32\stubs.c to account for changes to winsock2.h (winsock2.h now needs stdlib.h to get the size_t type) 20.add some stubs/fix some others for wsock32.dll 21.add some stubs to secur32.dll (more to come when I get sspi.h, secext.h & ntsecpkg.h) 22.add stubs for GetConsoleKeyboardLayoutNameA & GetConsoleKeyboardLayoutNameW to kernel32 23.add stub for SetupChangeFontSize to syssetup.dll 24.add some header files from WINE (related to advapi, secur32 and others) and 25.made lsass\ntsecapi.h redundant (the stuff that was in it is now in the WINE ntsecapi.h). Therefore, it should probobly be removed. There are also a bunch of things in the defs/edfs that are there but commented out. This is because I have yet to find the prototype for them. svn path=/trunk/; revision=6012
2003-09-08 09:56:57 +00:00
/*
* @unimplemented
*/
INT
EXPORT
WSANSPIoctl(
HANDLE hLookup,
DWORD dwControlCode,
LPVOID lpvInBuffer,
DWORD cbInBuffer,
LPVOID lpvOutBuffer,
DWORD cbOutBuffer,
LPDWORD lpcbBytesReturned,
LPWSACOMPLETION lpCompletion
)
{
//UNIMPLEMENTED
changes in this patch by Jonathon Wilson: 1.add some definitions to ascii.h 2.add some definitions to base.h 3.add some definitions to defines.h 4.add some definitions to funcs.h 5.add some definitions to structs.h 6.add some definitions to unicode.h 7.add some definitions to winsock2.h 8.fix it so that the ACCESS_MODE definition in ntos\security.h is only visible in kernel mode 9.add lots of stubs to advapi32.dll (some stuff from appmgmt.h, winsafer.h, evntrace.h, winefs.h, sddl.h, wincred.h & mschapp.h still to be added) 10.add a bunch of stubs to iphlpapi.dll 11.modify kernel32.dll so that certain functions are forwarded to ntdll.dll instead of being stubs in kernel32.dll 12.modify lz32.dll so that everything points at kernel32.dll 13.fix msafd.h to account for changes to winsock2.h (winsock2.h now needs stdlib.h to get the size_t type) 14.add stubs for SendIMEMessageExW and SendIMEMessageExA to user32.dll 15.add some stubs to ws2_32.dll 16.rename WahCreateNotificationTable to WahCreateNotificationHandle in ws2help.dll (WahCreateNotificationHandle is what microsoft calls it) 17.fix ws2help.h to account for changes to winsock2.h (winsock2.h now needs stdlib.h to get the size_t type) 18.fix wshirda.h to account for changes to winsock2.h (winsock2.h now needs stdlib.h to get the size_t type) 19.fix wsock32\stubs.c to account for changes to winsock2.h (winsock2.h now needs stdlib.h to get the size_t type) 20.add some stubs/fix some others for wsock32.dll 21.add some stubs to secur32.dll (more to come when I get sspi.h, secext.h & ntsecpkg.h) 22.add stubs for GetConsoleKeyboardLayoutNameA & GetConsoleKeyboardLayoutNameW to kernel32 23.add stub for SetupChangeFontSize to syssetup.dll 24.add some header files from WINE (related to advapi, secur32 and others) and 25.made lsass\ntsecapi.h redundant (the stuff that was in it is now in the WINE ntsecapi.h). Therefore, it should probobly be removed. There are also a bunch of things in the defs/edfs that are there but commented out. This is because I have yet to find the prototype for them. svn path=/trunk/; revision=6012
2003-09-08 09:56:57 +00:00
return 0;
}
/*
* @unimplemented
*/
INT
EXPORT
WSCUpdateProvider(
LPGUID lpProviderId,
const WCHAR FAR * lpszProviderDllPath,
const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
DWORD dwNumberOfEntries,
LPINT lpErrno
)
{
UNIMPLEMENTED
return 0;
}
/*
* @unimplemented
*/
INT
EXPORT
WSCWriteNameSpaceOrder (
LPGUID lpProviderId,
DWORD dwNumberOfEntries
)
{
UNIMPLEMENTED
return 0;
}
/*
* @unimplemented
*/
VOID
EXPORT
freeaddrinfo(
struct addrinfo *pAddrInfo
changes in this patch by Jonathon Wilson: 1.add some definitions to ascii.h 2.add some definitions to base.h 3.add some definitions to defines.h 4.add some definitions to funcs.h 5.add some definitions to structs.h 6.add some definitions to unicode.h 7.add some definitions to winsock2.h 8.fix it so that the ACCESS_MODE definition in ntos\security.h is only visible in kernel mode 9.add lots of stubs to advapi32.dll (some stuff from appmgmt.h, winsafer.h, evntrace.h, winefs.h, sddl.h, wincred.h & mschapp.h still to be added) 10.add a bunch of stubs to iphlpapi.dll 11.modify kernel32.dll so that certain functions are forwarded to ntdll.dll instead of being stubs in kernel32.dll 12.modify lz32.dll so that everything points at kernel32.dll 13.fix msafd.h to account for changes to winsock2.h (winsock2.h now needs stdlib.h to get the size_t type) 14.add stubs for SendIMEMessageExW and SendIMEMessageExA to user32.dll 15.add some stubs to ws2_32.dll 16.rename WahCreateNotificationTable to WahCreateNotificationHandle in ws2help.dll (WahCreateNotificationHandle is what microsoft calls it) 17.fix ws2help.h to account for changes to winsock2.h (winsock2.h now needs stdlib.h to get the size_t type) 18.fix wshirda.h to account for changes to winsock2.h (winsock2.h now needs stdlib.h to get the size_t type) 19.fix wsock32\stubs.c to account for changes to winsock2.h (winsock2.h now needs stdlib.h to get the size_t type) 20.add some stubs/fix some others for wsock32.dll 21.add some stubs to secur32.dll (more to come when I get sspi.h, secext.h & ntsecpkg.h) 22.add stubs for GetConsoleKeyboardLayoutNameA & GetConsoleKeyboardLayoutNameW to kernel32 23.add stub for SetupChangeFontSize to syssetup.dll 24.add some header files from WINE (related to advapi, secur32 and others) and 25.made lsass\ntsecapi.h redundant (the stuff that was in it is now in the WINE ntsecapi.h). Therefore, it should probobly be removed. There are also a bunch of things in the defs/edfs that are there but commented out. This is because I have yet to find the prototype for them. svn path=/trunk/; revision=6012
2003-09-08 09:56:57 +00:00
)
{
UNIMPLEMENTED
}
/*
* @unimplemented
*/
INT
EXPORT
changes in this patch by Jonathon Wilson: 1.add some definitions to ascii.h 2.add some definitions to base.h 3.add some definitions to defines.h 4.add some definitions to funcs.h 5.add some definitions to structs.h 6.add some definitions to unicode.h 7.add some definitions to winsock2.h 8.fix it so that the ACCESS_MODE definition in ntos\security.h is only visible in kernel mode 9.add lots of stubs to advapi32.dll (some stuff from appmgmt.h, winsafer.h, evntrace.h, winefs.h, sddl.h, wincred.h & mschapp.h still to be added) 10.add a bunch of stubs to iphlpapi.dll 11.modify kernel32.dll so that certain functions are forwarded to ntdll.dll instead of being stubs in kernel32.dll 12.modify lz32.dll so that everything points at kernel32.dll 13.fix msafd.h to account for changes to winsock2.h (winsock2.h now needs stdlib.h to get the size_t type) 14.add stubs for SendIMEMessageExW and SendIMEMessageExA to user32.dll 15.add some stubs to ws2_32.dll 16.rename WahCreateNotificationTable to WahCreateNotificationHandle in ws2help.dll (WahCreateNotificationHandle is what microsoft calls it) 17.fix ws2help.h to account for changes to winsock2.h (winsock2.h now needs stdlib.h to get the size_t type) 18.fix wshirda.h to account for changes to winsock2.h (winsock2.h now needs stdlib.h to get the size_t type) 19.fix wsock32\stubs.c to account for changes to winsock2.h (winsock2.h now needs stdlib.h to get the size_t type) 20.add some stubs/fix some others for wsock32.dll 21.add some stubs to secur32.dll (more to come when I get sspi.h, secext.h & ntsecpkg.h) 22.add stubs for GetConsoleKeyboardLayoutNameA & GetConsoleKeyboardLayoutNameW to kernel32 23.add stub for SetupChangeFontSize to syssetup.dll 24.add some header files from WINE (related to advapi, secur32 and others) and 25.made lsass\ntsecapi.h redundant (the stuff that was in it is now in the WINE ntsecapi.h). Therefore, it should probobly be removed. There are also a bunch of things in the defs/edfs that are there but commented out. This is because I have yet to find the prototype for them. svn path=/trunk/; revision=6012
2003-09-08 09:56:57 +00:00
getaddrinfo(
const char FAR * nodename,
const char FAR * servname,
const struct addrinfo FAR * hints,
struct addrinfo FAR * FAR * res
)
{
UNIMPLEMENTED
return 0;
}
/*
* @unimplemented
*/
INT
EXPORT
getnameinfo(
const struct sockaddr FAR * sa,
socklen_t salen,
char FAR * host,
DWORD hostlen,
char FAR * serv,
DWORD servlen,
INT flags
)
{
UNIMPLEMENTED
return 0;
}
/*
* @unimplemented
*/
VOID EXPORT WEP()
{
UNIMPLEMENTED
}
/*
* @unimplemented
*/
BOOL EXPORT WSApSetPostRoutine(PVOID Routine)
{
UNIMPLEMENTED
return 0;
}
/* EOF */