Microsoft KB Archive/297110

= Program May Hang When It Calls the ioctlsocket Function =

Article ID: 297110

Article Last Modified on 2/21/2007

-

APPLIES TO


 * Microsoft Windows 2000 Service Pack 1
 * Microsoft Windows 2000 Advanced Server
 * Microsoft Windows 2000 Service Pack 1

-



This article was previously published under Q297110



SYMPTOMS
If you have a socket based client/server program in which the client and server are running on two different physical computer, and if the client programs uses the ioctlsocket function to make a socket non-blocking, the client program may stop responding (hang). When this problem occurs, the only way to recover is to &quot;kill&quot; the client program.



CAUSE
This problem occurs because the Windows 2000 Socket services are not handling the socket non-blocking request correctly.



RESOLUTION
To resolve this problem, obtain the latest service pack for Windows 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

260910 How to Obtain the Latest Windows 2000 Service Pack

The English version of this fix should have the following file attributes or later:   Date         Time      Version        Size     File name --  4/16/2001   04:40p   5.0.2195.3503   118,800   Afd.sys 5/2/2001   07:53p   5.0.2195.3566   104,720   Msafd.dll 5/2/2001   06:07p   5.0.2195.3560   311,696   Tcpip.sys 4/6/2001   05:55p   5.0.2195.3474    16,208   Tdi.sys 5/2/2001   07:53p   5.0.2195.2104    17,680   Wshtcpip.dll



STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Windows 2000 Service Pack 3.



MORE INFORMATION
For additional information about how to obtain a hotfix for Windows 2000 Datacenter Server, click the article number below to view the article in the Microsoft Knowledge Base:

265173 The Datacenter Program and Windows 2000 Datacenter Server Product

For additional information about how to install multiple hotfixes with only one reboot, click the article number below to view the article in the Microsoft Knowledge Base:

296861 Use QChain.exe to Install Multiple Hotfixes with One Reboot

When this problem occurs, if you attach a User-mode debugger (such as Windbg) to the client program, the top of the call stack may be similar to this:

0:000> kb ChildEBP RetAddr Args to Child 0012ef40 77f82474 000001a0 00000000 00000000 ntdll!_ZwWaitForSingleObject+0xb 0012efb4 77f823e5 01302800 74fd1777 01302848 ntdll!RtlpWaitForCriticalSection+0x9e 0012efbc 74fd1777 01302848 008650e0 0012f060 ntdll!_RtlEnterCriticalSection+0x46 0012f008 55610122 000001d4 0000ffff 00002005 msafd!WSPGetSockOpt+0x93 0012f034 75036bf4 000001d4 0000ffff 00002005 wspwsp+0x10122 0012f2e4 750373cb 000001d4 ffffffff 004a6c80 WS2_32!DCATALOG__FindIFSProviderForSocket+0x80 0012f2f8 75038ca4 00000000 ffffffff 004a6c80 WS2_32!DSOCKET__FindIFSSocket+0x35 0012f314 75038c6b 000001d4 8004667e 0012f3c0 WS2_32!WSAIoctl+0x62 0012f340 00416ec3 000001d4 8004667e 0012f3c0 WS2_32!ioctlsocket+0x20 ..........

For additional information about how to install Windows 2000 and Windows 2000 hotfixes at the same time, click the article number below to view the article in the Microsoft Knowledge Base:

249149 Installing Microsoft Windows 2000 and Windows 2000 Hotfixes

Additional query words: kbNetworking

Keywords: kbbug kbfix kbwin2000presp3fix kbqfe kbwin2000sp3fix kbnetwork kbhotfixserver KB297110

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.