Microsoft KB Archive/329001

= An Exception Occurs When a Windows API Is Called with a Pointer Value of -1 =

Article ID: 329001

Article Last Modified on 5/27/2005

-

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.

Keywords: kbbug kbfix kbqfe KB329001

-

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

© Microsoft Corporation. All rights reserved.