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 "kill" 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