The information in this article applies to:
SYMPTOMSUnder Windows CE, a memory leak exists when you use a UDP (datagram) socket. The leak occurs when you call either the send() or sendto() API on either a connected or unconnected socket, respectively. A call causes a small leak in the kernel. Eventually, the handheld PC runs low on memory, which triggers message boxes detailing the error. As a result, other applications might terminate due to insufficient memory. CAUSEA kernel critical section object in the route cache of the IP layer. Calls to send/sendto on UDP sockets cause a leak per call. RESOLUTIONThere are no hot fixes available. The only viable solution is to avoid using datagram sockets and use stream sockets instead. STATUSMicrosoft has confirmed this to be a problem in the Microsoft products listed at the beginning of this article. This problem was corrected Windows CE, version 2.1. MORE INFORMATIONSteps to Reproduce BehaviorTo reproduce the problem put the following code into a file and compile it using the winsock.lib. This sample code creates a datagram socket and sends out 1 byte of data on each call to the sendto() API.Sample Code
Additional query words:
Keywords : kbnetwork kbAPI kbIP kbSDKPlatform kbWinCE200bug kbWinsock kbWinCE210fix kbGrpNet |
Last Reviewed: October 15, 1999 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |