FIX: The NDIS driver may not load, or an unhandled exception may occur in Windows CE .NET 4.2 (840880)



The information in this article applies to:

  • Microsoft Windows CE .NET 4.2

SYMPTOMS

The network driver may not load. This problem occurs when the I/O memory address range causes the VirtualCopy function in Network Driver Interface Specification (NDIS) to fail. The I/O memory address range is returned by the Personal Computer Memory Card International Association (PCMCIA) card service. This problem occurs on a non-x86 microprocessor that supports bus I/O.

Additionally, an unhandled exception may occur in Device.exe. The unhandled exception may occur when the NdisOpenFile function is used. The problem may more frequently occur after you apply the 812950 hotfix.

RESOLUTION

Software update information

A supported software update is now available from Microsoft as Windows CE 4.2 Core OS QFE 840880. 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 install this 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 your computer after you apply this update.

Update replacement information

This update does not replace any other updates.

File information

The English version of this package has the file attributes (or later) that are listed in the following table.
   Date         Time   Version            Size    File name
   --------------------------------------------------------------
   23-Apr-2004  21:07  4.21            1,583,864  Wincepb42-040423-kb840880-armv4.exe
   23-Apr-2004  21:07  4.21            1,583,864  Wincepb42-040423-kb840880-armv4i.exe
   23-Apr-2004  21:07  4.21            1,637,112  Wincepb42-040423-kb840880-mipsii.exe
   23-Apr-2004  21:07  4.21            1,637,112  Wincepb42-040423-kb840880-mipsii_fp.exe
   23-Apr-2004  21:07  4.21            1,653,496  Wincepb42-040423-kb840880-mipsiv.exe
   23-Apr-2004  21:07  4.21            1,653,496  Wincepb42-040423-kb840880-mipsiv_fp.exe
   23-Apr-2004  21:07  4.21            1,547,000  Wincepb42-040423-kb840880-sh3.exe
   23-Apr-2004  21:07  4.21            1,547,000  Wincepb42-040423-kb840880-sh4.exe
   23-Apr-2004  21:07  4.21            1,444,600  Wincepb42-040423-kb840880-x86.exe
The English version of this 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 tool in Control Panel.
   Date         Time                      Size    File name
   --------------------------------------------------------------

   Path: Public\Common\Oak\Lib\Armv4\Debug
   19-Apr-2004  18:41                  1,874,812  Ndislib.lib
   19-Apr-2004  18:41                    126,976  Ndislib.pdb

   Path: Public\Common\Oak\Lib\Armv4\Retail
   19-Apr-2004  18:41                  1,246,814  Ndislib.lib
   19-Apr-2004  18:41                    126,976  Ndislib.pdb

   Path: Public\Common\Oak\Lib\Armv4i\Debug
   19-Apr-2004  18:42                  1,877,038  Ndislib.lib
   19-Apr-2004  18:42                    126,976  Ndislib.pdb

   Path: Public\Common\Oak\Lib\Armv4i\Retail
   19-Apr-2004  18:41                  1,249,290  Ndislib.lib
   19-Apr-2004  18:41                    126,976  Ndislib.pdb

   Path: Public\Common\Oak\Lib\Mipsii\Debug
   19-Apr-2004  18:42                  1,959,790  Ndislib.lib
   19-Apr-2004  18:42                    126,976  Ndislib.pdb

   Path: Public\Common\Oak\Lib\Mipsii\Retail
   19-Apr-2004  18:42                  1,267,086  Ndislib.lib
   19-Apr-2004  18:42                    126,976  Ndislib.pdb

   Path: Public\Common\Oak\Lib\Mipsii_fp\Debug
   19-Apr-2004  18:43                  1,960,110  Ndislib.lib
   19-Apr-2004  18:43                    126,976  Ndislib.pdb

   Path: Public\Common\Oak\Lib\Mipsii_fp\Retail
   19-Apr-2004  18:43                  1,267,278  Ndislib.lib
   19-Apr-2004  18:43                    126,976  Ndislib.pdb

   Path: Public\Common\Oak\Lib\Mipsiv\Debug
   19-Apr-2004  18:43                  1,972,312  Ndislib.lib
   19-Apr-2004  18:43                    126,976  Ndislib.pdb

   Path: Public\Common\Oak\Lib\Mipsiv\Retail
   19-Apr-2004  18:43                  1,290,218  Ndislib.lib
   19-Apr-2004  18:43                    126,976  Ndislib.pdb

   Path: Public\Common\Oak\Lib\Mipsiv_fp\Debug
   19-Apr-2004  18:44                  1,972,632  Ndislib.lib
   19-Apr-2004  18:44                    126,976  Ndislib.pdb

   Path: Public\Common\Oak\Lib\Mipsiv_fp\Retail
   19-Apr-2004  18:44                  1,290,404  Ndislib.lib
   19-Apr-2004  18:44                    126,976  Ndislib.pdb

   Path: Public\Common\Oak\Lib\Sh3\Debug
   19-Apr-2004  18:45                  1,696,604  Ndislib.lib
   19-Apr-2004  18:45                    126,976  Ndislib.pdb

   Path: Public\Common\Oak\Lib\Sh3\Retail
   19-Apr-2004  18:44                  1,191,882  Ndislib.lib
   19-Apr-2004  18:44                    126,976  Ndislib.pdb

   Path: Public\Common\Oak\Lib\Sh4\Debug
   19-Apr-2004  18:45                  1,695,832  Ndislib.lib
   19-Apr-2004  18:45                    126,976  Ndislib.pdb

   Path: Public\Common\Oak\Lib\Sh4\Retail
   19-Apr-2004  18:45                  1,189,868  Ndislib.lib
   19-Apr-2004  18:45                    126,976  Ndislib.pdb

   Path: Public\Common\Oak\Lib\X86\Debug
   19-Apr-2004  18:40                  1,679,782  Ndislib.lib
   19-Apr-2004  18:40                    126,976  Ndislib.pdb

   Path: Public\Common\Oak\Lib\X86\Retail
   19-Apr-2004  18:40                  1,115,850  Ndislib.lib
   19-Apr-2004  18:40                    126,976  Ndislib.pdb

STATUS

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

MORE INFORMATION

This update introduces a registry setting that changes how NDIS handles I/O address range mapping. The default is as follows:
  • Memory mapped I/O for all non-x86 architecture processors
  • Bus mapped I/O for all x86 architecture processors
For memory mapped I/O, see the following code example.

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\NDIS]
	"NeedsMapToScrap"=dword:1		; any non-0 value
For bus I/O, see the following code example.
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\NDIS]
	"NeedsMapToScrap"=dword:0

For example, on an Intel IXP4xx microprocessor, the operating system default setting is memory mapped I/O. However, this microprocessor supports bus I/O. Therefore, NeedsMapToScrap must be set to 0.

Modification Type:MinorLast Reviewed:5/27/2005
Keywords:kbBug kbfix kbQFE KB840880 kbAudDeveloper