FIX: The WaitForSingleObject function sometimes returns a WAIT_FAILED value in Windows CE 5.0

Article translations Article translations
Article ID: 953311 - View products that this article applies to.
Expand all | Collapse all

On This Page

SYMPTOMS

Consider the following scenario:
  • You use the InterruptInitialize function to initialize a hardware interrupt together with the kernel in Microsoft Windows CE 5.0.
  • You use the CreateEvent function to create an event object. When you call the InterruptInitialize function, the handle of the event object is passed to the hEvent parameter of the function.
  • The interrupt service thread (IST) uses the WaitForSingleObject function to wait for the kernel to signal the event object. The kernel signals the event object when the interrupt service routine (ISR) indicates that the associated interrupt has fired.
  • You specify a time-out interval for the dwMilliseconds parameter in the WaitForSingleObject function.
In this scenario, the function sometimes returns a WAIT_FAILED value. Additionally, if this problem occurs, the WaitForSingleObject function always returns a WAIT_FAILED value until the kernel signals the event.

Note If the value of the dwMilliseconds parameter in the WaitForSingleObject function is set to INFINITE, this problem does not occur.

CAUSE

This problem occurs when the time-out expires while the WaitForSingleObject function waits for the event object to be signaled, and the proxy list of the interrupt is not cleaned up.

RESOLUTION

Software update information

A supported software update is now available from Microsoft as Windows CE 5.0 Platform Builder Monthly Update (June 2008). You can confirm this by scrolling to the "File information" section of this article. The package file name contains the product version, date, Knowledge Base article number, and processor type. The package file name format is:
Product version-yymmdd-kbnnnnnn-processor type
For example: Wincepb50-060503-kb917590-armv4i.msi is the ARMV4i Windows CE 5.0 Platform Builder fix that is documented in KB article 917590 and that is contained in the May 2006 monthly update. To resolve this problem immediately, click the following article number for information about obtaining Windows CE Platform Builder and core operating system software updates:
837392 How to locate core operating system fixes for Microsoft Windows CE Platform Builder products

Prerequisites

This update is supported only if all previously issued updates for this product have also been installed.

Restart requirement

After you apply this software update, you must perform a clean build of the whole platform. To clean the platform, click Clean on the Build menu. To build the platform, click Build Platform on the Build menu. You do not have to restart the computer after you apply this software update.

Update replacement information

This update does not replace a previously released update.

File information

The English version of this software update package has the file attributes or the later file attributes that are listed in the following table.
Collapse this tableExpand this table
File nameFile sizeDateTime
Wincepb50-080606-kb953311-armv4i.msi2,896,89606-Jun-200821:30
Wincepb50-080606-kb953311-mipsii.msi3,056,12806-Jun-200821:30
Wincepb50-080606-kb953311-mipsii_fp.msi3,170,81606-Jun-200821:30
Wincepb50-080606-kb953311-mipsiv.msi3,100,67206-Jun-200821:30
Wincepb50-080606-kb953311-mipsiv_fp.msi3,225,08806-Jun-200821:30
Wincepb50-080606-kb953311-sh4.msi2,761,21606-Jun-200821:30
Wincepb50-080606-kb953311-x86.msi2,580,48006-Jun-200821:30
The English version of this software update has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.
Collapse this tableExpand this table
File nameFile sizeDateTimePath
Schedule.c252,84023-May-200823:29Private\Winceos\Coreos\Nk\Kernel
Nkmain.lib2,132,55623-May-200823:23Public\Common\Oak\Lib\Armv4i\Debug
Nkprmain.lib2,291,64023-May-200823:22Public\Common\Oak\Lib\Armv4i\Debug
Nkmain.lib1,371,51023-May-200823:22Public\Common\Oak\Lib\Armv4i\Retail
Nkprmain.lib1,503,26423-May-200823:22Public\Common\Oak\Lib\Armv4i\Retail
Nkmain.lib2,132,20223-May-200823:24Public\Common\Oak\Lib\Mipsii\Debug
Nkprmain.lib2,304,76023-May-200823:25Public\Common\Oak\Lib\Mipsii\Debug
Nkmain.lib1,387,51023-May-200823:24Public\Common\Oak\Lib\Mipsii\Retail
Nkprmain.lib1,530,90023-May-200823:23Public\Common\Oak\Lib\Mipsii\Retail
Nkmain.lib2,198,75223-May-200823:26Public\Common\Oak\Lib\Mipsii_fp\Debug
Nkprmain.lib2,371,45623-May-200823:26Public\Common\Oak\Lib\Mipsii_fp\Debug
Nkmain.lib1,442,01823-May-200823:26Public\Common\Oak\Lib\Mipsii_fp\Retail
Nkprmain.lib1,585,41823-May-200823:25Public\Common\Oak\Lib\Mipsii_fp\Retail
Nkmain.lib2,165,71823-May-200823:27Public\Common\Oak\Lib\Mipsiv\Debug
Nkprmain.lib2,339,99623-May-200823:27Public\Common\Oak\Lib\Mipsiv\Debug
Nkmain.lib1,396,23023-May-200823:27Public\Common\Oak\Lib\Mipsiv\Retail
Nkprmain.lib1,540,29623-May-200823:26Public\Common\Oak\Lib\Mipsiv\Retail
Nkmain.lib2,237,32623-May-200823:28Public\Common\Oak\Lib\Mipsiv_fp\Debug
Nkprmain.lib2,411,75423-May-200823:29Public\Common\Oak\Lib\Mipsiv_fp\Debug
Nkmain.lib1,456,44423-May-200823:28Public\Common\Oak\Lib\Mipsiv_fp\Retail
Nkprmain.lib1,600,53023-May-200823:28Public\Common\Oak\Lib\Mipsiv_fp\Retail
Nkmain.lib1,768,67223-May-200823:21Public\Common\Oak\Lib\Sh4\Debug
Nkprmain.lib1,909,54223-May-200823:21Public\Common\Oak\Lib\Sh4\Debug
Nkmain.lib1,227,73823-May-200823:21Public\Common\Oak\Lib\Sh4\Retail
Nkprmain.lib1,356,00223-May-200823:21Public\Common\Oak\Lib\Sh4\Retail
Nkmain.lib1,760,27223-May-200823:21Public\Common\Oak\Lib\X86\Debug
Nkprmain.lib1,902,20023-May-200823:20Public\Common\Oak\Lib\X86\Debug
Nkmain.lib1,241,88823-May-200823:20Public\Common\Oak\Lib\X86\Retail
Nkprmain.lib1,365,63223-May-200823:20Public\Common\Oak\Lib\X86\Retail

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

MORE INFORMATION

For more information about the InterruptInitialize function, visit the following Microsoft Developer Network (MSDN) Web site:
http://msdn.microsoft.com/en-us/library/ms885677.aspx
For more information about the WaitForSingleObject function, visit the following MSDN Web site:
http://msdn.microsoft.com/en-us/library/aa450988.aspx
For more information about software update terminology, click the following article number to view the article in the Microsoft Knowledge Base:
824684 Description of the standard terminology that is used to describe Microsoft software updates

Properties

Article ID: 953311 - Last Review: June 24, 2008 - Revision: 1.0
APPLIES TO
  • Microsoft Windows CE 5.0
Keywords: 
kbexpertiseadvanced kbfix kbqfe KB953311

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com