An Exception Occurs When a Windows API Is Called with a Pointer Value of -1 (329001)



The information in this article applies to:

  • Microsoft Windows CE .NET 4.0

This article was previously published under Q329001

SYMPTOMS

When operating system API functions are called, an incorrect pointer value of -1 (0xFFFFFFFF) may pass through kernel checks and be dereferenced. This causes an exception to occur.

RESOLUTION

A supported software update is now available from Microsoft as Windows CE 4.0 Core OS QFE 329001. 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

The English version of this package has the following file attributes or later:
   Date         Time   Version     Size       File name
   -----------------------------------------------------------------------------
   16-Dec-2002  17:46  4.0.2.1216  2,214,496  021216_armv4i_wce40-q329001.exe   
   16-Dec-2002  17:46  4.0.2.1216  2,202,208  021216_armv4t_wce40-q329001.exe   
   16-Dec-2002  17:46  4.0.2.1216  2,210,400  021216_armv4_wce40-q329001.exe    
   16-Dec-2002  17:46  4.0.2.1216  2,206,304  021216_mips16_wce40-q329001.exe   
   16-Dec-2002  17:46  4.0.2.1216  2,394,720  021216_mipsii_fp_wce40-q329001.exe
   16-Dec-2002  17:46  4.0.2.1216  4,319,840  021216_mipsii_wce40-q329001.exe  
   16-Dec-2002  17:46  4.0.2.1216  2,501,216  021216_mipsiv_fp_wce40-q329001.exe
   16-Dec-2002  17:46  4.0.2.1216  2,374,240  021216_mipsiv_wce40-q329001.exe  
   16-Dec-2002  17:46  4.0.2.1216  2,050,656  021216_sh3_wce40-q329001.exe  
   16-Dec-2002  17:46  4.0.2.1216  2,075,232  021216_sh4_wce40-q329001.exe  
   16-Dec-2002  17:46  4.0.2.1216  1,931,872  021216_x86_wce40-q329001.exe  
The English version of this fix has the file attributes (or later) 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 tool in Control Panel.
   Date         Time                   Size       File name
   --------------------------------------------------------------------
   Path: Public\Common\Oak\Lib\Armv4\Debug
   05-Dec-2002  22:55                  1,742,686  Nkmain.lib
   05-Dec-2002  22:55                    110,592  Nkmain.pdb
   05-Dec-2002  22:55                  1,853,438  Nkprmain.lib
   05-Dec-2002  22:55                    110,592  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Armv4\Retail
   05-Dec-2002  22:55                  1,115,324  Nkmain.lib
   05-Dec-2002  22:55                    110,592  Nkmain.pdb
   05-Dec-2002  22:55                  1,207,328  Nkprmain.lib
   05-Dec-2002  22:55                    110,592  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Armv4i\Debug
   05-Dec-2002  22:57                  1,746,612  Nkmain.lib
   05-Dec-2002  22:57                    110,592  Nkmain.pdb
   05-Dec-2002  22:57                  1,857,614  Nkprmain.lib
   05-Dec-2002  22:57                    110,592  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Armv4i\Retail
   05-Dec-2002  22:56                  1,119,320  Nkmain.lib
   05-Dec-2002  22:56                    110,592  Nkmain.pdb
   05-Dec-2002  22:57                  1,211,602  Nkprmain.lib
   05-Dec-2002  22:57                    110,592  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Armv4t\Debug
   05-Dec-2002  22:56                  1,615,708  Nkmain.lib
   05-Dec-2002  22:56                    110,592  Nkmain.pdb
   05-Dec-2002  22:56                  1,719,548  Nkprmain.lib
   05-Dec-2002  22:56                    110,592  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Armv4t\Retail
   05-Dec-2002  22:56                  1,102,498  Nkmain.lib
   05-Dec-2002  22:56                    110,592  Nkmain.pdb
   05-Dec-2002  22:56                  1,193,224  Nkprmain.lib
   05-Dec-2002  22:56                    110,592  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Mips16\Debug
   05-Dec-2002  23:00                  1,788,450  Nkmain.lib
   05-Dec-2002  23:00                    110,592  Nkmain.pdb
   05-Dec-2002  23:00                  1,909,938  Nkprmain.lib
   05-Dec-2002  23:00                    110,592  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Mips16\Retail
   05-Dec-2002  23:00                    997,186  Nkmain.lib
   05-Dec-2002  23:00                    110,592  Nkmain.pdb
   05-Dec-2002  23:00                  1,093,570  Nkprmain.lib
   05-Dec-2002  23:00                    110,592  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Mipsii\Debug
   05-Dec-2002  22:59                  1,784,602  Nkmipsiibmain.lib
   05-Dec-2002  22:59                    110,592  Nkmipsiibmain.pdb
   05-Dec-2002  22:58                  1,786,280  Nkmipsiimain.lib
   05-Dec-2002  22:58                    110,592  Nkmipsiimain.pdb
   05-Dec-2002  22:59                  1,906,278  Nkprofmipsiibmain.lib
   05-Dec-2002  22:59                    110,592  Nkprofmipsiibmain.pdb
   05-Dec-2002  22:58                  1,907,956  Nkprofmipsiimain.lib
   05-Dec-2002  22:58                    110,592  Nkprofmipsiimain.pdb

   Path: Public\Common\Oak\Lib\Mipsii\Retail
   05-Dec-2002  22:58                  1,134,786  Nkmipsiibmain.lib
   05-Dec-2002  22:58                    110,592  Nkmipsiibmain.pdb
   05-Dec-2002  22:57                  1,136,636  Nkmipsiimain.lib
   05-Dec-2002  22:57                    110,592  Nkmipsiimain.pdb
   05-Dec-2002  22:58                  1,237,512  Nkprofmipsiibmain.lib
   05-Dec-2002  22:58                    110,592  Nkprofmipsiibmain.pdb
   05-Dec-2002  22:58                  1,239,364  Nkprofmipsiimain.lib
   05-Dec-2002  22:58                    110,592  Nkprofmipsiimain.pdb

   Path: Public\Common\Oak\Lib\MipsII_fp\Debug
   05-Dec-2002  23:01                  1,854,422  Nkmain.lib
   05-Dec-2002  23:01                    110,592  Nkmain.pdb
   05-Dec-2002  23:01                  1,976,114  Nkprmain.lib
   05-Dec-2002  23:01                    118,784  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\MipsII_fp\Retail
   05-Dec-2002  23:01                  1,196,238  Nkmain.lib
   05-Dec-2002  23:01                    110,592  Nkmain.pdb
   05-Dec-2002  23:01                  1,299,072  Nkprmain.lib
   05-Dec-2002  23:01                    118,784  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Mipsiv\Debug
   05-Dec-2002  22:59                  1,843,534  Nkmain.lib
   05-Dec-2002  22:59                    110,592  Nkmain.pdb
   05-Dec-2002  23:00                  1,968,062  Nkprmain.lib
   05-Dec-2002  23:00                    110,592  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Mipsiv\Retail
   05-Dec-2002  22:59                  1,192,474  Nkmain.lib
   05-Dec-2002  22:59                    110,592  Nkmain.pdb
   05-Dec-2002  22:59                  1,298,596  Nkprmain.lib
   05-Dec-2002  22:59                    110,592  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Mipsiv_fp\Debug
   05-Dec-2002  23:02                  1,919,406  Nkmain.lib
   05-Dec-2002  23:02                    110,592  Nkmain.pdb
   05-Dec-2002  23:02                  2,043,948  Nkprmain.lib
   05-Dec-2002  23:02                    118,784  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Mipsiv_fp\Retail
   05-Dec-2002  23:02                  1,260,670  Nkmain.lib
   05-Dec-2002  23:02                    110,592  Nkmain.pdb
   05-Dec-2002  23:02                  1,366,846  Nkprmain.lib
   05-Dec-2002  23:02                    118,784  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Sh3\Debug
   05-Dec-2002  22:53                  1,449,792  Nkmain.lib
   05-Dec-2002  22:53                    110,592  Nkmain.pdb
   05-Dec-2002  22:54                  1,547,946  Nkprmain.lib
   05-Dec-2002  22:54                    110,592  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Sh3\Retail
   05-Dec-2002  22:53                    973,810  Nkmain.lib
   05-Dec-2002  22:53                    102,400  Nkmain.pdb
   05-Dec-2002  22:53                  1,064,484  Nkprmain.lib
   05-Dec-2002  22:53                    110,592  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Sh4\Debug
   05-Dec-2002  22:54                  1,468,068  Nkmain.lib
   05-Dec-2002  22:54                    102,400  Nkmain.pdb
   05-Dec-2002  22:54                  1,566,220  Nkprmain.lib
   05-Dec-2002  22:54                    110,592  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\Sh4\Retail
   05-Dec-2002  22:54                    991,108  Nkmain.lib
   05-Dec-2002  22:54                    102,400  Nkmain.pdb
   05-Dec-2002  22:54                  1,081,844  Nkprmain.lib
   05-Dec-2002  22:54                    110,592  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\X86\Debug
   05-Dec-2002  22:53                  1,477,386  Nkmain.lib
   05-Dec-2002  22:53                    110,592  Nkmain.pdb
   05-Dec-2002  22:53                  1,575,268  Nkprmain.lib
   05-Dec-2002  22:53                    110,592  Nkprmain.pdb

   Path: Public\Common\Oak\Lib\X86\Retail
   05-Dec-2002  22:52                    953,562  Nkmain.lib
   05-Dec-2002  22:52                    110,592  Nkmain.pdb
   05-Dec-2002  22:52                  1,037,094  Nkprmain.lib
   05-Dec-2002  22:52                    110,592  Nkprmain.pdb

This update also include an update to the Windows CE shared source file:
   05-Dec-2002  19:15                    110,726  Kmisc.c
Windows CE .NET API functions often validate parameters to catch potential pointer problems and to return an error message. One such check is by using the IsBadPtr kernel function. The IsBadPtr method that is used to check for pointer validity allows the 0xFFFFFFFF value to be accepted. This hotfix changes the validation to report all negative 32-bit values as pointers that are not valid.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

Modification Type:MinorLast Reviewed:5/27/2005
Keywords:kbQFE kbbug kbfix KB329001 kbAudOEM