Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/ws2_32/protocol.c | 337 +++++++++++++++++++++++++++++++++++++++++ dlls/ws2_32/socket.c | 333 ---------------------------------------- 2 files changed, 337 insertions(+), 333 deletions(-)
diff --git a/dlls/ws2_32/protocol.c b/dlls/ws2_32/protocol.c index abbe5738b88..64af105f0b9 100644 --- a/dlls/ws2_32/protocol.c +++ b/dlls/ws2_32/protocol.c @@ -2112,3 +2112,340 @@ int WINAPI WSANtohs( SOCKET s, WS_u_short netshort, WS_u_short *hostshort ) *hostshort = ntohs( netshort ); return 0; } + + +/*********************************************************************** + * WSAInstallServiceClassA (ws2_32.@) + */ +int WINAPI WSAInstallServiceClassA( WSASERVICECLASSINFOA *info ) +{ + FIXME( "Request to install service %s\n", debugstr_a(info->lpszServiceClassName) ); + SetLastError( WSAEACCES ); + return -1; +} + + +/*********************************************************************** + * WSAInstallServiceClassW (ws2_32.@) + */ +int WINAPI WSAInstallServiceClassW( WSASERVICECLASSINFOW *info ) +{ + FIXME( "Request to install service %s\n", debugstr_w(info->lpszServiceClassName) ); + SetLastError( WSAEACCES ); + return -1; +} + + +/*********************************************************************** + * WSARemoveServiceClass (ws2_32.@) + */ +int WINAPI WSARemoveServiceClass( GUID *info ) +{ + FIXME( "Request to remove service %s\n", debugstr_guid(info) ); + SetLastError( WSATYPE_NOT_FOUND ); + return -1; +} + + +/*********************************************************************** + * WSAGetServiceClassInfoA (ws2_32.@) + */ +int WINAPI WSAGetServiceClassInfoA( GUID *provider, GUID *service, DWORD *len, + WSASERVICECLASSINFOA *info ) +{ + FIXME( "(%s %s %p %p) Stub!\n", debugstr_guid(provider), debugstr_guid(service), len, info ); + SetLastError( WSA_NOT_ENOUGH_MEMORY ); + return -1; +} + + +/*********************************************************************** + * WSAGetServiceClassInfoW (ws2_32.@) + */ +int WINAPI WSAGetServiceClassInfoW( GUID *provider, GUID *service, DWORD *len, + WSASERVICECLASSINFOW *info ) +{ + FIXME( "(%s %s %p %p) Stub!\n", debugstr_guid(provider), debugstr_guid(service), len, info ); + SetLastError( WSA_NOT_ENOUGH_MEMORY ); + return -1; +} + + +/*********************************************************************** + * WSAGetServiceClassNameByClassIdA (ws2_32.@) + */ +int WINAPI WSAGetServiceClassNameByClassIdA( GUID *class, char *service, DWORD *len ) +{ + FIXME( "(%s %p %p) Stub!\n", debugstr_guid(class), service, len ); + SetLastError( WSA_NOT_ENOUGH_MEMORY ); + return -1; +} + + +/*********************************************************************** + * WSAGetServiceClassNameByClassIdW (ws2_32.@) + */ +int WINAPI WSAGetServiceClassNameByClassIdW( GUID *class, WCHAR *service, DWORD *len ) +{ + FIXME( "(%s %p %p) Stub!\n", debugstr_guid(class), service, len ); + SetLastError( WSA_NOT_ENOUGH_MEMORY ); + return -1; +} + + +/*********************************************************************** + * WSALookupServiceBeginA (ws2_32.@) + */ +int WINAPI WSALookupServiceBeginA( WSAQUERYSETA *query, DWORD flags, HANDLE *lookup ) +{ + FIXME( "(%p 0x%08x %p) Stub!\n", query, flags, lookup ); + SetLastError( WSA_NOT_ENOUGH_MEMORY ); + return -1; +} + + +/*********************************************************************** + * WSALookupServiceBeginW (ws2_32.@) + */ +int WINAPI WSALookupServiceBeginW( WSAQUERYSETW *query, DWORD flags, HANDLE *lookup ) +{ + FIXME( "(%p 0x%08x %p) Stub!\n", query, flags, lookup ); + SetLastError( WSA_NOT_ENOUGH_MEMORY ); + return -1; +} + + +/*********************************************************************** + * WSALookupServiceEnd (ws2_32.@) + */ +int WINAPI WSALookupServiceEnd( HANDLE lookup ) +{ + FIXME("(%p) Stub!\n", lookup ); + return 0; +} + + +/*********************************************************************** + * WSALookupServiceNextA (ws2_32.@) + */ +int WINAPI WSALookupServiceNextA( HANDLE lookup, DWORD flags, DWORD *len, WSAQUERYSETA *results ) +{ + FIXME( "(%p 0x%08x %p %p) Stub!\n", lookup, flags, len, results ); + SetLastError( WSA_E_NO_MORE ); + return -1; +} + + +/*********************************************************************** + * WSALookupServiceNextW (ws2_32.@) + */ +int WINAPI WSALookupServiceNextW( HANDLE lookup, DWORD flags, DWORD *len, WSAQUERYSETW *results ) +{ + FIXME( "(%p 0x%08x %p %p) Stub!\n", lookup, flags, len, results ); + SetLastError( WSA_E_NO_MORE ); + return -1; +} + + +/*********************************************************************** + * WSASetServiceA (ws2_32.@) + */ +int WINAPI WSASetServiceA( WSAQUERYSETA *query, WSAESETSERVICEOP operation, DWORD flags ) +{ + FIXME( "(%p 0x%08x 0x%08x) Stub!\n", query, operation, flags ); + return 0; +} + + +/*********************************************************************** + * WSASetServiceW (ws2_32.@) + */ +int WINAPI WSASetServiceW( WSAQUERYSETW *query, WSAESETSERVICEOP operation, DWORD flags ) +{ + FIXME( "(%p 0x%08x 0x%08x) Stub!\n", query, operation, flags ); + return 0; +} + + +/*********************************************************************** + * WSAEnumNameSpaceProvidersA (ws2_32.@) + */ +int WINAPI WSAEnumNameSpaceProvidersA( DWORD *len, WSANAMESPACE_INFOA *buffer ) +{ + FIXME( "(%p %p) Stub!\n", len, buffer ); + return 0; +} + + +/*********************************************************************** + * WSAEnumNameSpaceProvidersW (ws2_32.@) + */ +int WINAPI WSAEnumNameSpaceProvidersW( DWORD *len, WSANAMESPACE_INFOW *buffer ) +{ + FIXME( "(%p %p) Stub!\n", len, buffer ); + return 0; +} + + +/*********************************************************************** + * WSAProviderConfigChange (ws2_32.@) + */ +int WINAPI WSAProviderConfigChange( HANDLE *handle, OVERLAPPED *overlapped, + LPWSAOVERLAPPED_COMPLETION_ROUTINE completion ) +{ + FIXME( "(%p %p %p) Stub!\n", handle, overlapped, completion ); + return -1; +} + + +/*********************************************************************** + * WSANSPIoctl (ws2_32.@) + */ +int WINAPI WSANSPIoctl( HANDLE lookup, DWORD code, void *in_buffer, + DWORD in_size, void *out_buffer, DWORD out_size, + DWORD *ret_size, WSACOMPLETION *completion ) +{ + FIXME( "(%p, 0x%08x, %p, 0x%08x, %p, 0x%08x, %p, %p) Stub!\n", lookup, code, + in_buffer, in_size, out_buffer, out_size, ret_size, completion ); + SetLastError( WSA_NOT_ENOUGH_MEMORY ); + return -1; +} + + +/*********************************************************************** + * WSCEnableNSProvider (ws2_32.@) + */ +int WINAPI WSCEnableNSProvider( GUID *provider, BOOL enable ) +{ + FIXME( "(%s 0x%08x) Stub!\n", debugstr_guid(provider), enable ); + return 0; +} + + +/*********************************************************************** + * WSCGetProviderInfo (ws2_32.@) + */ +int WINAPI WSCGetProviderInfo( GUID *provider, WSC_PROVIDER_INFO_TYPE info_type, + BYTE *info, size_t *len, DWORD flags, int *errcode ) +{ + FIXME( "(%s 0x%08x %p %p 0x%08x %p) Stub!\n", + debugstr_guid(provider), info_type, info, len, flags, errcode ); + + if (!errcode) + return -1; + + if (!provider) + { + *errcode = WSAEFAULT; + return -1; + } + + *errcode = WSANO_RECOVERY; + return -1; +} + + +/*********************************************************************** + * WSCGetProviderPath (ws2_32.@) + */ +int WINAPI WSCGetProviderPath( GUID *provider, WCHAR *path, int *len, int *errcode ) +{ + FIXME( "(%s %p %p %p) Stub!\n", debugstr_guid(provider), path, len, errcode ); + + if (!provider || !len) + { + if (errcode) + *errcode = WSAEFAULT; + return -1; + } + + if (*len <= 0) + { + if (errcode) + *errcode = WSAEINVAL; + return -1; + } + + return 0; +} + + +/*********************************************************************** + * WSCInstallNameSpace (ws2_32.@) + */ +int WINAPI WSCInstallNameSpace( WCHAR *identifier, WCHAR *path, DWORD namespace, + DWORD version, GUID *provider ) +{ + FIXME( "(%s %s 0x%08x 0x%08x %s) Stub!\n", debugstr_w(identifier), debugstr_w(path), + namespace, version, debugstr_guid(provider) ); + return 0; +} + + +/*********************************************************************** + * WSCUnInstallNameSpace (ws2_32.@) + */ +int WINAPI WSCUnInstallNameSpace( GUID *provider ) +{ + FIXME( "(%s) Stub!\n", debugstr_guid(provider) ); + return NO_ERROR; +} + + +/*********************************************************************** + * WSCWriteProviderOrder (ws2_32.@) + */ +int WINAPI WSCWriteProviderOrder( DWORD *entry, DWORD number ) +{ + FIXME( "(%p 0x%08x) Stub!\n", entry, number ); + return 0; +} + + +/*********************************************************************** + * WSCInstallProvider (ws2_32.@) + */ +int WINAPI WSCInstallProvider( GUID *provider, const WCHAR *path, + WSAPROTOCOL_INFOW *protocol_info, DWORD count, int *err ) +{ + FIXME( "(%s, %s, %p, %d, %p): stub !\n", debugstr_guid(provider), + debugstr_w(path), protocol_info, count, err ); + *err = 0; + return 0; +} + + +/*********************************************************************** + * WSCDeinstallProvider (ws2_32.@) + */ +int WINAPI WSCDeinstallProvider( GUID *provider, int *err ) +{ + FIXME( "(%s, %p): stub !\n", debugstr_guid(provider), err ); + *err = 0; + return 0; +} + + +/*********************************************************************** + * WSCSetApplicationCategory (ws2_32.@) + */ +int WINAPI WSCSetApplicationCategory( const WCHAR *path, DWORD len, const WCHAR *extra, DWORD extralen, + DWORD lspcat, DWORD *prev_lspcat, int *err ) +{ + FIXME( "(%s %d %s %d %d %p) Stub!\n", debugstr_w(path), len, debugstr_w(extra), + extralen, lspcat, prev_lspcat ); + return 0; +} + + +/*********************************************************************** + * WSCEnumProtocols (ws2_32.@) + */ +int WINAPI WSCEnumProtocols( int *protocols, WSAPROTOCOL_INFOW *info, DWORD *len, int *err ) +{ + int ret = WSAEnumProtocolsW( protocols, info, len ); + + if (ret == SOCKET_ERROR) *err = WSAENOBUFS; + + return ret; +} diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c index 3c63b93d737..5dc725c4a58 100644 --- a/dlls/ws2_32/socket.c +++ b/dlls/ws2_32/socket.c @@ -6199,33 +6199,6 @@ INT WINAPI WSARecvFrom( SOCKET s, LPWSABUF lpBuffers, DWORD dwBufferCount, lpOverlapped, lpCompletionRoutine, NULL ); }
-/*********************************************************************** - * WSCInstallProvider (WS2_32.88) - */ -INT WINAPI WSCInstallProvider( const LPGUID lpProviderId, - LPCWSTR lpszProviderDllPath, - const LPWSAPROTOCOL_INFOW lpProtocolInfoList, - DWORD dwNumberOfEntries, - LPINT lpErrno ) -{ - FIXME("(%s, %s, %p, %d, %p): stub !\n", debugstr_guid(lpProviderId), - debugstr_w(lpszProviderDllPath), lpProtocolInfoList, - dwNumberOfEntries, lpErrno); - *lpErrno = 0; - return 0; -} - - -/*********************************************************************** - * WSCDeinstallProvider (WS2_32.83) - */ -INT WINAPI WSCDeinstallProvider(LPGUID lpProviderId, LPINT lpErrno) -{ - FIXME("(%s, %p): stub !\n", debugstr_guid(lpProviderId), lpErrno); - *lpErrno = 0; - return 0; -} -
/*********************************************************************** * WSAAccept (WS2_32.26) @@ -6316,53 +6289,6 @@ int WINAPI WSADuplicateSocketW( SOCKET s, DWORD dwProcessId, LPWSAPROTOCOL_INFOW return WS_DuplicateSocket(TRUE, s, dwProcessId, lpProtocolInfo); }
-/*********************************************************************** - * WSAInstallServiceClassA (WS2_32.48) - */ -int WINAPI WSAInstallServiceClassA(LPWSASERVICECLASSINFOA info) -{ - FIXME("Request to install service %s\n",debugstr_a(info->lpszServiceClassName)); - SetLastError(WSAEACCES); - return SOCKET_ERROR; -} - -/*********************************************************************** - * WSAInstallServiceClassW (WS2_32.49) - */ -int WINAPI WSAInstallServiceClassW(LPWSASERVICECLASSINFOW info) -{ - FIXME("Request to install service %s\n",debugstr_w(info->lpszServiceClassName)); - SetLastError(WSAEACCES); - return SOCKET_ERROR; -} - -/*********************************************************************** - * WSARemoveServiceClass (WS2_32.70) - */ -int WINAPI WSARemoveServiceClass(LPGUID info) -{ - FIXME("Request to remove service %s\n", debugstr_guid(info)); - SetLastError(WSATYPE_NOT_FOUND); - return SOCKET_ERROR; -} - -/*********************************************************************** - * WSAEnumNameSpaceProvidersA (WS2_32.34) - */ -INT WINAPI WSAEnumNameSpaceProvidersA( LPDWORD len, LPWSANAMESPACE_INFOA buffer ) -{ - FIXME( "(%p %p) Stub!\n", len, buffer ); - return 0; -} - -/*********************************************************************** - * WSAEnumNameSpaceProvidersW (WS2_32.35) - */ -INT WINAPI WSAEnumNameSpaceProvidersW( LPDWORD len, LPWSANAMESPACE_INFOW buffer ) -{ - FIXME( "(%p %p) Stub!\n", len, buffer ); - return 0; -}
/*********************************************************************** * WSAGetQOSByName (WS2_32.41) @@ -6373,115 +6299,6 @@ BOOL WINAPI WSAGetQOSByName( SOCKET s, LPWSABUF lpQOSName, LPQOS lpQOS ) return FALSE; }
-/*********************************************************************** - * WSAGetServiceClassInfoA (WS2_32.42) - */ -INT WINAPI WSAGetServiceClassInfoA( LPGUID provider, LPGUID service, LPDWORD len, - LPWSASERVICECLASSINFOA info ) -{ - FIXME( "(%s %s %p %p) Stub!\n", debugstr_guid(provider), debugstr_guid(service), - len, info ); - SetLastError(WSA_NOT_ENOUGH_MEMORY); - return SOCKET_ERROR; -} - -/*********************************************************************** - * WSAGetServiceClassInfoW (WS2_32.43) - */ -INT WINAPI WSAGetServiceClassInfoW( LPGUID provider, LPGUID service, LPDWORD len, - LPWSASERVICECLASSINFOW info ) -{ - FIXME( "(%s %s %p %p) Stub!\n", debugstr_guid(provider), debugstr_guid(service), - len, info ); - SetLastError(WSA_NOT_ENOUGH_MEMORY); - return SOCKET_ERROR; -} - -/*********************************************************************** - * WSAGetServiceClassNameByClassIdA (WS2_32.44) - */ -INT WINAPI WSAGetServiceClassNameByClassIdA( LPGUID class, LPSTR service, LPDWORD len ) -{ - FIXME( "(%s %p %p) Stub!\n", debugstr_guid(class), service, len ); - SetLastError(WSA_NOT_ENOUGH_MEMORY); - return SOCKET_ERROR; -} - -/*********************************************************************** - * WSAGetServiceClassNameByClassIdW (WS2_32.45) - */ -INT WINAPI WSAGetServiceClassNameByClassIdW( LPGUID class, LPWSTR service, LPDWORD len ) -{ - FIXME( "(%s %p %p) Stub!\n", debugstr_guid(class), service, len ); - SetLastError(WSA_NOT_ENOUGH_MEMORY); - return SOCKET_ERROR; -} - -/*********************************************************************** - * WSALookupServiceBeginA (WS2_32.59) - */ -INT WINAPI WSALookupServiceBeginA( LPWSAQUERYSETA lpqsRestrictions, - DWORD dwControlFlags, - LPHANDLE lphLookup) -{ - FIXME("(%p 0x%08x %p) Stub!\n", lpqsRestrictions, dwControlFlags, - lphLookup); - SetLastError(WSA_NOT_ENOUGH_MEMORY); - return SOCKET_ERROR; -} - -/*********************************************************************** - * WSALookupServiceBeginW (WS2_32.60) - */ -INT WINAPI WSALookupServiceBeginW( LPWSAQUERYSETW lpqsRestrictions, - DWORD dwControlFlags, - LPHANDLE lphLookup) -{ - FIXME("(%p 0x%08x %p) Stub!\n", lpqsRestrictions, dwControlFlags, - lphLookup); - SetLastError(WSA_NOT_ENOUGH_MEMORY); - return SOCKET_ERROR; -} - -/*********************************************************************** - * WSALookupServiceEnd (WS2_32.61) - */ -INT WINAPI WSALookupServiceEnd( HANDLE lookup ) -{ - FIXME("(%p) Stub!\n", lookup ); - return 0; -} - -/*********************************************************************** - * WSALookupServiceNextA (WS2_32.62) - */ -INT WINAPI WSALookupServiceNextA( HANDLE lookup, DWORD flags, LPDWORD len, LPWSAQUERYSETA results ) -{ - FIXME( "(%p 0x%08x %p %p) Stub!\n", lookup, flags, len, results ); - SetLastError(WSA_E_NO_MORE); - return SOCKET_ERROR; -} - -/*********************************************************************** - * WSALookupServiceNextW (WS2_32.63) - */ -INT WINAPI WSALookupServiceNextW( HANDLE lookup, DWORD flags, LPDWORD len, LPWSAQUERYSETW results ) -{ - FIXME( "(%p 0x%08x %p %p) Stub!\n", lookup, flags, len, results ); - SetLastError(WSA_E_NO_MORE); - return SOCKET_ERROR; -} - - -/*********************************************************************** - * WSAProviderConfigChange (WS2_32.66) - */ -INT WINAPI WSAProviderConfigChange( LPHANDLE handle, LPWSAOVERLAPPED overlapped, - LPWSAOVERLAPPED_COMPLETION_ROUTINE completion ) -{ - FIXME( "(%p %p %p) Stub!\n", handle, overlapped, completion ); - return SOCKET_ERROR; -}
/*********************************************************************** * WSARecvDisconnect (WS2_32.68) @@ -6493,130 +6310,6 @@ INT WINAPI WSARecvDisconnect( SOCKET s, LPWSABUF disconnectdata ) return WS_shutdown( s, SD_RECEIVE ); }
-/*********************************************************************** - * WSASetServiceA (WS2_32.76) - */ -INT WINAPI WSASetServiceA( LPWSAQUERYSETA query, WSAESETSERVICEOP operation, DWORD flags ) -{ - FIXME( "(%p 0x%08x 0x%08x) Stub!\n", query, operation, flags ); - return 0; -} - -/*********************************************************************** - * WSASetServiceW (WS2_32.77) - */ -INT WINAPI WSASetServiceW( LPWSAQUERYSETW query, WSAESETSERVICEOP operation, DWORD flags ) -{ - FIXME( "(%p 0x%08x 0x%08x) Stub!\n", query, operation, flags ); - return 0; -} - -/*********************************************************************** - * WSCEnableNSProvider (WS2_32.84) - */ -INT WINAPI WSCEnableNSProvider( LPGUID provider, BOOL enable ) -{ - FIXME( "(%s 0x%08x) Stub!\n", debugstr_guid(provider), enable ); - return 0; -} - -/*********************************************************************** - * WSCGetProviderInfo - */ -INT WINAPI WSCGetProviderInfo( LPGUID provider, WSC_PROVIDER_INFO_TYPE info_type, - PBYTE info, size_t* len, DWORD flags, LPINT errcode ) -{ - FIXME( "(%s 0x%08x %p %p 0x%08x %p) Stub!\n", - debugstr_guid(provider), info_type, info, len, flags, errcode ); - - if (!errcode) - return SOCKET_ERROR; - - if (!provider) { - *errcode = WSAEFAULT; - return SOCKET_ERROR; - } - - *errcode = WSANO_RECOVERY; - return SOCKET_ERROR; -} - -/*********************************************************************** - * WSCGetProviderPath (WS2_32.86) - */ -INT WINAPI WSCGetProviderPath( LPGUID provider, LPWSTR path, LPINT len, LPINT errcode ) -{ - FIXME( "(%s %p %p %p) Stub!\n", debugstr_guid(provider), path, len, errcode ); - - if (!provider || !len) - { - if (errcode) - *errcode = WSAEFAULT; - return SOCKET_ERROR; - } - - if (*len <= 0) - { - if (errcode) - *errcode = WSAEINVAL; - return SOCKET_ERROR; - } - - return 0; -} - -/*********************************************************************** - * WSCInstallNameSpace (WS2_32.87) - */ -INT WINAPI WSCInstallNameSpace( LPWSTR identifier, LPWSTR path, DWORD namespace, - DWORD version, LPGUID provider ) -{ - FIXME( "(%s %s 0x%08x 0x%08x %s) Stub!\n", debugstr_w(identifier), debugstr_w(path), - namespace, version, debugstr_guid(provider) ); - return 0; -} - -/*********************************************************************** - * WSCUnInstallNameSpace (WS2_32.89) - */ -INT WINAPI WSCUnInstallNameSpace( LPGUID lpProviderId ) -{ - FIXME("(%s) Stub!\n", debugstr_guid(lpProviderId)); - return NO_ERROR; -} - -/*********************************************************************** - * WSCWriteProviderOrder (WS2_32.91) - */ -INT WINAPI WSCWriteProviderOrder( LPDWORD entry, DWORD number ) -{ - FIXME("(%p 0x%08x) Stub!\n", entry, number); - return 0; -} - -/*********************************************************************** - * WSCSetApplicationCategory (WS2_32.@) - */ -INT WINAPI WSCSetApplicationCategory( LPCWSTR path, DWORD len, LPCWSTR extra, DWORD extralen, - DWORD lspcat, DWORD *prev_lspcat, LPINT err ) -{ - FIXME("(%s %d %s %d %d %p) Stub!\n", debugstr_w(path), len, debugstr_w(extra), - extralen, lspcat, prev_lspcat); - return 0; -} - -/*********************************************************************** - * WSANSPIoctl (WS2_32.91) - */ -INT WINAPI WSANSPIoctl( HANDLE hLookup, DWORD dwControlCode, LPVOID lpvInBuffer, - DWORD cbInBuffer, LPVOID lpvOutBuffer, DWORD cbOutBuffer, - LPDWORD lpcbBytesReturned, LPWSACOMPLETION lpCompletion ) -{ - FIXME("(%p, 0x%08x, %p, 0x%08x, %p, 0x%08x, %p, %p) Stub!\n", hLookup, dwControlCode, - lpvInBuffer, cbInBuffer, lpvOutBuffer, cbOutBuffer, lpcbBytesReturned, lpCompletion); - SetLastError(WSA_NOT_ENOUGH_MEMORY); - return SOCKET_ERROR; -}
static BOOL protocol_matches_filter( const int *filter, int protocol ) { @@ -6730,29 +6423,3 @@ int WINAPI WSAEnumProtocolsW( int *filter, WSAPROTOCOL_INFOW *protocols, DWORD * } return count; } - -/***************************************************************************** - * WSCEnumProtocols [WS2_32.@] - * - * PARAMS - * protocols [I] Null-terminated array of iProtocol values. - * buffer [O] Buffer of WSAPROTOCOL_INFOW structures. - * len [I/O] Size of buffer on input/output. - * errno [O] Error code. - * - * RETURNS - * Success: number of protocols to be reported on. - * Failure: SOCKET_ERROR. error is in errno. - * - * BUGS - * Doesn't supply info on layered protocols. - * - */ -INT WINAPI WSCEnumProtocols( LPINT protocols, LPWSAPROTOCOL_INFOW buffer, LPDWORD len, LPINT err ) -{ - INT ret = WSAEnumProtocolsW( protocols, buffer, len ); - - if (ret == SOCKET_ERROR) *err = WSAENOBUFS; - - return ret; -}