Core Operating System Services Changes

The following change to Windows CE core operating system services may require that you modify your Cesysgen.bat file or modify applications that depend on these features.

Effective with version 4.0, Windows CE .NET introduced a new feature to reduce the burden of execute in place (XIP) dynamic-link libraries (DLLs) on the 32-MB virtual address space. In earlier versions of Windows CE, all XIP DLLs had address regions permanently reserved in every process address space (slot). These reserved regions could not be used for operating system (OS) managed heap memory or for other DLLs. Because processes never use all ROM DLLs, this unnecessarily consumed valuable address space in every process slot.

In Windows CE .NET, you can load XIP DLLs into process slot 1 and access them from any other process slot. Thus, each process has an additional 32-MB XIP region, and the standard 32-MB process space is free for use by heap and RAM-loaded modules.

During build time, the ROM image tool uses the following criteria to determine whether a particular module is placed in the slot 1 address space:

  • The module is an XIP module; that is, the module is in the MODULES section of its respective .bib file, and no compression has been specified.
  • The module has a valid .rel file of the same name in the same folder during the ROM image build.

The .rel file is generated when the /savebaserelocations linker switch is used during a build of the module. By default, this switch is turned on for modules that are built by using the OS build process (Build.exe), but it is not included for modules that are built using the Platform Builder IDE. To enable this switch in the IDE so that a .rel file is generated (and therefore meets the qualifications to be placed into process slot 1), follow these steps:

  1. Open the Linker Settings dialog box for the DLL project.
  2. In the Project Options window, locate the /incremental switch, and then verify that it is set to /incremental:no. You must do this because a .rel file is not generated for an incremental link.
  3. Add the switch /savebaserelocations:filename.rel in the Project Options window, where filename is the path and base file name that matches the project output file name.
  4. Before you build the ROM image, verify that the .rel file is in the same folder that is specified by the .bib statement that includes the module.

See Also

Core OS Services

Last updated on Wednesday, April 13, 2005

© 2005 Microsoft Corporation. All rights reserved.