[PATCH] ws2_32: Add stub implementation for WSCGetProviderInfo.
Zhiyi Zhang
zzhang at codeweavers.com
Wed Mar 18 21:29:44 CDT 2020
On 3/19/20 1:14 AM, Bernhard Übelacker wrote:
> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48765
> ---
> dlls/ws2_32/socket.c | 12 ++++++++++++
> dlls/ws2_32/ws2_32.spec | 1 +
> include/winsock2.h | 5 +++++
> include/ws2spi.h | 1 +
> 4 files changed, 19 insertions(+)
>
> diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c
> index c284f595ab..29eff3cd64 100644
> --- a/dlls/ws2_32/socket.c
> +++ b/dlls/ws2_32/socket.c
> @@ -9001,6 +9001,18 @@ INT WINAPI WSCEnableNSProvider( LPGUID provider, BOOL 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 0x%08x 0x%08x %p) Stub!\n",
> + debugstr_guid(provider), info_type, info, len, flags, errcode );
> +
> + return ERROR_CALL_NOT_IMPLEMENTED;
> +}
> +
From what MSDN says, it returns SOCKET_ERROR and put an ERROR_CALL_NOT_IMPLEMENTED
in 'errcode' parameter if it's unimplemented. You can add some tests for this. And it's better
to have at least some basic parameter validation checks even for a stub.
Thanks,
Zhiyi
> /***********************************************************************
> * WSCGetProviderPath (WS2_32.86)
> */
> diff --git a/dlls/ws2_32/ws2_32.spec b/dlls/ws2_32/ws2_32.spec
> index 37b02e5712..6b1dbfca26 100644
> --- a/dlls/ws2_32/ws2_32.spec
> +++ b/dlls/ws2_32/ws2_32.spec
> @@ -117,6 +117,7 @@
> @ stdcall WSCDeinstallProvider(ptr ptr)
> @ stdcall WSCEnableNSProvider(ptr long)
> @ stdcall WSCEnumProtocols(ptr ptr ptr ptr)
> +@ stdcall WSCGetProviderInfo(ptr long ptr long long ptr)
> @ stdcall WSCGetProviderPath(ptr ptr ptr ptr)
> @ stdcall WSCInstallNameSpace(wstr wstr long long ptr)
> @ stdcall WSCInstallProvider(ptr wstr ptr long ptr)
> diff --git a/include/winsock2.h b/include/winsock2.h
> index e8d033976f..04a55c4dbe 100644
> --- a/include/winsock2.h
> +++ b/include/winsock2.h
> @@ -628,6 +628,11 @@ typedef struct _WSACOMPLETION {
> } Parameters;
> } WSACOMPLETION, *PWSACOMPLETION, *LPWSACOMPLETION;
>
> +typedef enum _WSC_PROVIDER_INFO_TYPE {
> + ProviderInfoLspCategories,
> + ProviderInfoAudit,
> +} WSC_PROVIDER_INFO_TYPE;
> +
> /*
> * Winsock Function Typedefs
> *
> diff --git a/include/ws2spi.h b/include/ws2spi.h
> index 3d2ca84dfa..be3cf1f967 100644
> --- a/include/ws2spi.h
> +++ b/include/ws2spi.h
> @@ -39,6 +39,7 @@ INT WINAPI WSCInstallProvider(const LPGUID,LPCWSTR,const LPWSAPROTOCOL_INFO
> INT WINAPI WSCDeinstallProvider(LPGUID,LPINT);
> INT WINAPI WSCEnableNSProvider(LPGUID,BOOL);
> INT WINAPI WSCEnumProtocols(LPINT,LPWSAPROTOCOL_INFOW,LPDWORD,LPINT);
> +INT WINAPI WSCGetProviderInfo(LPGUID,WSC_PROVIDER_INFO_TYPE,PBYTE,size_t,DWORD,LPINT);
> INT WINAPI WSCGetProviderPath(LPGUID,LPWSTR,LPINT,LPINT);
> INT WINAPI WSCInstallNameSpace(LPWSTR,LPWSTR,DWORD,DWORD,LPGUID);
> INT WINAPI WSCSetApplicationCategory(LPCWSTR,DWORD,LPCWSTR,DWORD,DWORD,DWORD*,LPINT);
More information about the wine-devel
mailing list