PRB: WSAStartup() May Return WSAVERNOTSUPPORTED on Second Call

ID: Q130942


The information in this article applies to:
  • Microsoft Windows Software Development Kit (SDK) 3.1, used with:
    • Microsoft Windows 3.1
  • Microsoft Win32 Software Development Kit (SDK), used with:
    • Microsoft Windows NT versions 3.1, 3.5, 3.51, 4.0
    • Microsoft Windows 2000


SYMPTOMS

If two sections of code within the same process call WSAStartup(), the second call to WSAStartup() fails and returns error WSAVERNOTSUPPORTED unless the second call specifies the version negotiated in the first call.

This happens even if the requested version would normally be accepted. Often the extra calls to WSAStartup() come from one or more DLLs loaded by the process.


RESOLUTION

If multiple calls are made to WSAStartup(), the second call must request the same version negotiated in the first call.


MORE INFORMATION

Some specific examples may help. Currently, if the version of Winsock requested is 1.1 or greater, the negotiated version will be 1.1. If a version less than 1.1 is requested, the call fails and returns the WSAVERNOTSUPPORTED error.

Example One

First call : 1.1 requested
Second call: 1.1 requested
Result : Success

Example Two

First call : 2.0 requested
Second call: 1.1 requested
Result : Success

Example Three

First call : 2.0 requested
Second call: 2.0 requested
Result : WSAVERNOTSUPPORTED

Example Four

First call : 1.1 requested
Second call: 2.0 requested
Result : WSAVERNOTSUPPORTED

Additional query words:

Keywords : kbnetwork kbAPI kbNTOS350 kbNTOS351 kbWinOS2000 kbSDKPlatform kbWinOS310 kbWinOS95 kbWinsock kbGrpNet
Version : WINDOWS:3.1
Platform : WINDOWS
Issue type : kbprb


Last Reviewed: February 3, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.