microsoft windows ce .net with microsoft platform builder ... · problem with the platform builder...

38
Microsoft Windows CE .NET with Microsoft Platform Builder 4.2 Release Notes This document contains important information about Microsoft Windows CE .NET 4.2 with Microsoft Platform Builder version 4.2. Contents System Requirements Third-Party Solutions for Windows CE .NET 4.2 Windows CE .NET Installation Installation Issues Windows CE .NET Technical Support Known Issues System Requirements Windows CE .NET has the following system requirements: Windows CE .NET, CD Version To use Microsoft Windows CE .NET CD Version, you need: 266-MHz Pentium II processor or higher; 500-MHz processor recommended. Microsoft Windows 2000 Professional with Service Pack 2 or Windows XP Professional. 128 MB of RAM; 192 MB of RAM required to run the Emulator. 1.7 GB of available hard-disk space for a typical single microprocessor installation; 14 GB for installation of the entire product, including the Platform Builder toolset. CD-ROM or DVD-ROM drive. VGA or higher resolution monitor; Super VGA recommended. Microsoft Mouse or compatible pointing device. Bidirectional parallel port to download an OS image when not using an Ethernet connection. Serial port or Ethernet network card for debugging support; a local area network (LAN) hub is recommended. Windows CE .NET, DVD Version To use Microsoft Windows CE .NET DVD Version, you need: 266-MHz Pentium II processor or higher; 500-MHz processor recommended. Microsoft Windows 2000 Professional with Service Pack 2 or Windows XP Professional. 128 MB of RAM; 192 MB of RAM required to run the Emulator. 1.7 GB of available hard-disk space for a typical single microprocessor installation; 14 GB for installation of the entire product, including the Platform Builder toolset. DVD-ROM drive. VGA or higher resolution monitor; Super VGA recommended. Microsoft Mouse or compatible pointing device. Bidirectional parallel port to download an OS image when not using an Ethernet connection.

Upload: others

Post on 08-Oct-2019

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

Microsoft Windows CE .NET with Microsoft Platform Builder 4.2 Release Notes

This document contains important information about Microsoft Windows CE .NET 4.2 with Microsoft Platform Builder version 4.2.

Contents

System Requirements

Third-Party Solutions for Windows CE .NET 4.2

Windows CE .NET Installation

Installation Issues

Windows CE .NET Technical Support

Known Issues

System Requirements

Windows CE .NET has the following system requirements:

Windows CE .NET, CD Version

To use Microsoft Windows CE .NET CD Version, you need:

• 266-MHz Pentium II processor or higher; 500-MHz processor recommended.

• Microsoft Windows 2000 Professional with Service Pack 2 or Windows XP Professional.

• 128 MB of RAM; 192 MB of RAM required to run the Emulator.

• 1.7 GB of available hard-disk space for a typical single microprocessor installation; 14 GB for installation of the entire product, including the Platform Builder toolset.

• CD-ROM or DVD-ROM drive.

• VGA or higher resolution monitor; Super VGA recommended.

• Microsoft Mouse or compatible pointing device.

• Bidirectional parallel port to download an OS image when not using an Ethernet connection.

• Serial port or Ethernet network card for debugging support; a local area network (LAN) hub is recommended.

Windows CE .NET, DVD Version

To use Microsoft Windows CE .NET DVD Version, you need:

• 266-MHz Pentium II processor or higher; 500-MHz processor recommended.

• Microsoft Windows 2000 Professional with Service Pack 2 or Windows XP Professional.

• 128 MB of RAM; 192 MB of RAM required to run the Emulator.

• 1.7 GB of available hard-disk space for a typical single microprocessor installation; 14 GB for installation of the entire product, including the Platform Builder toolset.

• DVD-ROM drive.

• VGA or higher resolution monitor; Super VGA recommended.

• Microsoft Mouse or compatible pointing device.

• Bidirectional parallel port to download an OS image when not using an Ethernet connection.

Page 2: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

• Serial port or Ethernet network card for debugging support; a local area network (LAN) hub is recommended.

Third-Party Solutions for Windows CE .NET 4.2

Windows CE .NET 4.2 now ships with an additional compact disc (CD) labeled "Third Party Solutions for Windows® CE .NET 4.2". This CD contains value-added software from third-party companies designed for and compatible with the Windows CE .NET 4.2 operating system (OS). The CD contains the following types of software:

• Hardware-specific device drivers

• Board support package (BSPs)

• Boot loaders

• Profiling tools

This third-party value-added software provides a richer out-of-box experience for Windows CE .NET 4.2 customers.

The CD has an auto-run program that is launched the first time you insert the CD. You can then select the third-party software you want to install on your development workstation. You may choose to bypass the auto-run feature and browse the CD manually to install any third-party software of your choice. When installed, device driver or BSP software is automatically integrated into the Platform Builder Catalog under a separate branch labeled Third Party Software.

Note The software on this CD is provided to supplement the Windows CE .NET OS Product and is governed by its own EULA Addendum provided by Microsoft. You must read the EULA and agree to the license terms prior to installing, using, and/or distributing any piece of software from the CD. Some third-party companies may provide their own license agreement, which supercedes the Microsoft EULA Addendum. Additionally, the terms of each EULA are also provided in a text file under the root directory of the CD.

Microsoft does not provide technical or customer support for any software on the "Third Party Solutions for Windows CE .NET 4.2" CD, regardless of existing support contracts (by incident, by project, or by extended support policy) in place with Microsoft relating to the Windows CE .NET OS product. You must contact the corresponding third party company for all support and technical issues related to the use of their software. Contact information for each contributing third party company is provided in a Readme.txt file on the CD.

Windows CE .NET Installation

Windows CE .NET is distributed on multiple CDs or a single DVD. The setup application, Setup.exe, copies the files from the CDs or DVD to the development workstation.

To install Windows CE .NET

1. Log on to the development workstation with Windows administrator privileges.

2. Run Setup.exe from the root directory on the Windows CE .NET CD number 1 or on the DVD.

If you have enabled the autorun functionality, this step happens automatically.

3. When the Welcome dialog box appears, choose Install, and then follow the on-screen instructions.

Note To reduce the installation size of Platform Builder, you can select only the microprocessors you need in the Custom Setup dialog box.

Installing Windows CE .NET 4.2 on a computer that contains a beta version of Windows CE .NET 4.1 may result in invalid registry keys, file version conflicts, or other problems. To avoid these problems, uninstall any beta versions of Windows CE .NET 4.1 before installing Windows CE .NET 4.2.

Page 3: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

During the installation from a CD or DVD, the progress bar is not always accurate, especially for larger installations with more than one CPU.

Installation times can vary according to the type of installation:

• 15–20 minutes for a Tools Only install

• 20–30 minutes for a default installation (Tools, Test Kit, CEPC, and Emulator)

• 2 or more hours for a full install

Note You must have administrative privileges to install Windows CE .NET.

Installation Issues

ActiveSync 3.5 is required to complete transport functions

Platform Builder 4.2 rolled SDKs for eMbedded Visual C++ 4.0 require the installation of Service Pack 2

Platform Builder 4.2 installation over RDP can lose connection during the installation of Virtual Switch

Platform Builder 4.2 Emulator setup problem

Windows CE .NET cannot be installed through Terminal Services

Uninstalling Windows CE .NET requires a reboot

Uninstalling Microsoft Platform Builder 4.2 can cause eMbedded Visual Tools or Platform Builder 3.0 to not function properly

Uninstalling Platform Builder 4.2 from side-by-side installations can break remaining installation

Side-by-side installations of Platform Builder should be done chronologically

Platform Builder 4.2 unsupported installation scenarios

Files left behind after uninstalling Platform Builder and eMbedded Visual C++

Cleaning up your system after uninstalling Platform Builder

Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list

ActiveSync 3.5 is required to complete transport functions

To use the Microsoft ActiveSync 3.5 debug transport in Platform Builder and to test ActiveSync included in a developed device, you need to install the ActiveSync 3.5 desktop software. This software can be downloaded at this Microsoft Web site.

Platform Builder 4.2 rolled SDKs for eMbedded Visual C++ 4.0 require the installation of Service Pack 2

If you plan to build a rolled SDK, you must install Microsoft eMbedded Visual C++ 4.0 Service Pack 2, which ships with Microsoft Windows CE .NET. Without Service Pack 2 installed, Microsoft eMbedded Visual C++ 4.0 hangs when building a project that uses a Microsoft Platform Builder 4.2 SDK.

Platform Builder 4.2 installation over RDP can lose connection during installation of Virtual Switch

If you are installing Platform Builder over a Remote Desktop Protocol (RDP) session, you lose the RDP connection while the Virtual Switch driver is installed. You can restore the connection when installation is complete.

Platform Builder 4.2 Emulator setup problem

During installation of Platform Builder you may get an error message saying that a critical emulation component could not be installed properly.

Page 4: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

To work around this problem

1. Choose Yes to continue the installation.

2. When installation is complete, run setup again and select the repair option.

If the component still cannot be installed, uninstall Platform Builder, reboot, and run Setup again.

Windows CE .NET cannot be installed through Terminal Services

System administrators are not allowed to install programs over Remote Desktop or Terminal Services. Instead, enable this feature in the Microsoft Management Console (MMC) Group Policy setting.

To work around this problem

1. Choose Start, and then choose Run.

2. Type gpedit.msc, and then choose OK.

3. Expand the Computer Configuration node.

4. Expand the Administrative Templates node.

5. Expand the Windows Components node.

6. Select Windows Installer.

7. In the right hand pane, double-click Allow admin to install from Terminal Services session.

8. In the Properties dialog box, choose the Setting tab, and then select Enabled.

9. Choose OK.

Now on that particular computer, you can log on through Terminal Services and install programs including Windows CE .NET.

Uninstalling Windows CE .NET requires a reboot

After uninstalling Windows CE .NET from a development workstation, you need to reboot the workstation OS.

Uninstalling Microsoft Platform Builder 4.2 can cause eMbedded Visual Tools or Platform Builder 3.0 to not function properly

If you have Microsoft eMbedded Visual Tools version 3.0 and Microsoft Windows CE Platform Builder version 3.0 installed on a development workstation, when you install Platform Builder 4.2, the existing Platform Manager installation is upgraded. Uninstalling Platform Builder 4.2 also uninstalls Platform Manager and the Visual Tools may not function correctly. To avoid this problem, if you uninstall Platform Builder 4.2, do not uninstall Platform Manager.

Uninstalling Platform Builder 4.2 from side-by-side installations can break remaining installation

If you have side-by-side installations of Platform Builder 4.2 and earlier versions, uninstalling the later version can cause problems for the remaining installation. Some of the known issues are:

• Loss of file associations and file icons.

• Loss of functionality in eMbedded Visual Tools 3.0 because Platform Manager was removed.

• Loss of functionality in Platform Builder 3.0 because upgraded shared components were removed.

To restore the file associations, select the file in Windows Explorer, open the file, and, when prompted for a program to open the file in, select Platform Builder. For all other problems re-install the earlier version of Platform Builder or eMbedded Visual Tools, choosing a repair installation.

Page 5: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

Side-by-side installations of Platform Builder should be done chronologically

If you choose to install multiple versions of Platform Builder on a single workstation you should install the older version of Platform Builder prior to installing the newer version.

Platform Builder 4.2 unsupported installation scenarios

Platform Builder 4.2 supports installation scenarios with a maximum of two instances of the Platform Builder product installed on a specific client workstation. For example, you are not prevented from installing Platform Builder 4.2 alongside both Platform Builder 4.1 and version 4.0, but these scenarios are not supported.

Files left behind after uninstalling Platform Builder and eMbedded Visual C++

When you uninstall all versions of Platform Builder, eMbedded Visual C++, and all Windows CE-related SDKs, files may be left behind in the <DRIVE:\>Program Files\Common Files\Microsoft Shared\Windows CE Tools\Platman\Bin directory. After uninstalling, manually delete all files in the \Bin directory.

Cleaning up your system after uninstalling Platform Builder

In order to successfully reinstall Platform Builder, you may need to clean up your system after uninstalling a previous installation of Platform Builder. Specifically, verify that the components for the Emulator are removed. If they are not, manually uninstall them.

The following steps show how to manually uninstall the Virtual PC Application Services driver.

To manually uninstall the Virtual PC Application Services driver

1. Choose Start, right-click My Computer, and then choose Manage.

2. In the Computer Management window, expand System Tools, and then choose Device Manager.

3. In the right pane, expand System devices.

4. Right-click Virtual PC Application Services, and then choose Properties.

5. In the Properties dialog box, choose the Driver tab.

6. Choose Uninstall.

7. After uninstalling the Virtual PC Application Services driver, delete the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VPCAppSv registry key, which maintains a reference count for this driver.

The following steps show how to manually uninstall the Virtual PC Emulated Ethernet Switch driver.

To manually uninstall the Virtual PC Emulated Ethernet Switch driver

1. Choose Start, and then choose Control Panel.

2. Choose Network Connections.

If you are running Windows XP and you do not see Network Connections in Control Panel, you are in Category view. Switch to Classic view, and then choose Network Connections.

3. Right-click Local Area Connection, and then choose Properties.

4. In the Properties dialog box, select Virtual PC Emulated Ethernet Switch, and then choose Uninstall.

5. After uninstalling the Virtual PC Emulated Ethernet Switch driver, remove the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VPCNetS2 registry key, which maintains a reference count for this driver.

6. Finally, in the <DRIVE:\>Program Files\Common Files\Microsoft Shared\Windows CE Tools\Platman\Bin directory, delete files with names that start with "vpc".

Page 6: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list

If Visual C++ 6.0 has been installed after Platform Builder, you must copy the PBAddInWiz.awx file on your development workstation from c:\Program Files\Windows CE Platform Builder\4.20\cepb\bin to c:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\IDE for the file to appear in the Visual C++ 6.0 wizard list.

Windows CE .NET Technical Support

Microsoft offers a variety of support options ranging from a Web site to Product Support Services to the Windows Embedded Family Web site.

To learn more about the support options available, see this Microsoft Web site.

To learn more about Windows Embedded, see this Microsoft Web site.

For answers to questions frequently asked by developers, view a Knowledge Base article that addresses top developer support issues at this Microsoft Web site. Knowledge Base article Q323901 addresses developer support issues such as "How to support debugging in a Windows CE OS build" and "Writing device drivers for custom hardware".

Known Issues

Applications and Services Issues

BSP Issues

Build Issues

Communication Services and Networking Issues

Compiler Issues

Core OS Services Issues

Debugger Issues

Driver Issues

Emulator for Windows CE Issues

File Systems and Data Store Issues

Gateway Issues

International Issues

Multimedia Technologies Issues

Platform Builder Issues

Platform Manager and Remote Tools Issues

SDK Roller Issues

Shell and User Interface Issues

Windows CE .NET Test Kit Issues

Applications and Services Issues

Both .rtf and .doc files are translated to .pwd files during ActiveSync synchronization

Pocket Outlook Object Model (POOM) is not provided with a proxy stub .dll file

POOM default reminder sound file does not exist

Body and BodyInk properties for POOM are broken

Associate Appointments and Tasks with an application

Cannot send an Appointment in POOM that you have already saved

Page 7: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

Visual Studio Smart Device Authentication Utility requires the CAB File Installer/Uninstaller component

Help for file viewers does not work

POOM IPOutlookApp::Logon fails if the Contacts database is missing

POOM .dll entry must be added to the registry to preload Poom.dll

POOM ICity is not implemented

POOM Pimstore does not have a proxy

Editing a POOM Appointment does not update the original reminder

Response Log Manager database larger than size limit set in the registry

Windows CE Utilities for Visual Studio .NET 2003

Both .rtf and .doc files are translated to .pwd files during ActiveSync synchronization

The default file translation setting for ActiveSync converts both rich text format (.rtf) and Word (.doc) files to WordPad (.pwd) files. Synchronizing with .rtf and .doc files that have the same name results in an incomplete synchronization. The following steps show how to change the default conversion setting.

To change the conversion setting

1. In ActiveSync, from the Tools menu, choose Options, then Rules, then Conversion Settings, and finally Desktop to Device.

2. Choose Rich Text Format.

3. Choose OK.

4. In the Edit dialog box, change the pwd value to no conversion.

5. Choose OK.

Pocket Outlook Object Model (POOM) is not provided with a proxy stub .dll file

A proxy stub .dll file is not provided with the Pocket Outlook Object Model (POOM). Any code that attempts to marshal a POOM interface fails. This happens when you are using DCOM to marshal an interface across apartments. For example, if a Windows CE-based image is built with POOM and DCOM and the concurrency model is set to single-threaded apartment, attempts to use CoCreateInstance for an interface fail because it is not possible to create the marshaled proxy stub. Use the multithreaded apartment concurrency model to avoid the need for marshaling.

POOM default reminder sound file does not exist

If a user does not set the default reminder sound for a Task or Appointment explicitly, the default sound is set to Alarm1.wav. This file is a Calendar sound and does not exist.

Body and BodyInk properties for POOM are broken

The Body and InkBody properties in IContact, IAppointment, and ITask only store text. They cannot be used in a call to InkToString, which is called by GetBodyText.

Associate Appointments and Tasks with an application

Reminders for Appointments and Tasks should have an application associated with them. In the dialog box for a reminder, when you choose Open, the associated application runs. The HKEY_LOCAL_MACHINE\Software\Microsoft\Calendar\CalNotifApp registry key designates the application.

The default value in the registry associates reminders with the Calendar.exe application. However, the Calendar.exe application does not exist. If you do not designate a different application, choosing Open in the dialog box for a reminder has no effect.

Cannot send an Appointment in POOM that you have already saved

Page 8: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

In POOM, you must send an Appointment before saving it. Otherwise, e-mail is not sent to any recipients.

The Send and Save functions are the same function in the IAppointment interface. The Send function sets a flag that instructs the Save function to e-mail an Appointment request. When you create a new Appointment and save it, the flag is not set and an Appointment request is not sent.

However, when you then call the Send function, which is simply another call to the Save function, the flag says that you have not made any changes, so a message is still not sent.

Visual Studio Smart Device Authentication Utility requires the CAB File Installer/Uninstaller component

You must also add the CAB File Installer/Uninstaller component to your platform when you add the Visual Studio Smart Device Authentication Utility.

Help for file viewers does not work

The file viewers display an error when you click on the Help option if the Help is not included in the image.

POOM IPOutlookApp::Logon fails if the Contacts database is missing

If you do not set SYSGEN_AS_PIM, the database and the registry key that contains the name of the database are not included in the image. This causes OpenAddressBook to fail, which in turn causes IPOutlookApp::Logon to return E_OUTOFMEMORY at private\wceappsfe\outlook\shared\polapp.cpp@418.

POOM .dll entry must be added to the registry to preload Poom.dll

In order to preload Poom.dll, update the registry to contain an entry for the Poom.dll file. This is the same behavior as in previous releases.

POOM ICity is not implemented

All of the ICity methods, with the exception of the IUnknown implementation, contain code similar to the following example:

#ifndef ADDCITYDB

return E_NOTIMPL;

#else

... (methods code) ...

#endif

All of the ICity methods should return E_NOTIMPL.

POOM Pimstore does not have a proxy

Pimstore does not have a proxy. CoCreateInstance fails with REGDB_E_IIDNOTREG.

Calls made to CoCreateInstance set the concurrency model for the thread to single-thread apartment. Therefore, DCOM must be able to marshal the interface to other single-thread or multithread apartments, so it attempts to load a proxy. Because the proxy does not exist, CoCreateInstance fails with 0x80040155 (REGDB_E_IIDNOTREG).

If POOM is run in a mutithreaded apartment, DCOM does not load the proxy.

A workaround is to build a proxy from the IDL file using the MIDL generated files for Pimstore.dll. You must define REGISTER_PROXY_DLL so MIDL generates registration code for the proxy.

Editing a POOM Appointment does not update the original reminder

Editing an Appointment does not update the original reminder.

If the subject or location of an Appointment are edited and saved, the reminder appears with the original information. Also, if the Appointment is removed from the Calendar folder, which deletes the Appointment object, the original reminder still appears.

Page 9: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

The workaround is to make a copy of the Appointment you want to update, edit the copy, save the copy, and delete the original.

Response Log Manager database larger than size limit set in the registry

The Response Log Manager uses a CEDB database to store log messages. An OEM can set the maximum limit in the HKLM\Gateway\Setup\RLMMaxLogStoreSize registry key, so that they can adjust the size of the logs.

Because of the way CEDB does compaction, the space is larger than expected. The Response Log Manager allocates the total space available equally among the loggers available. When a log message is logged, the Response Log Manager checks if the logger has exceeded the limit and, if so, deletes the oldest record logged by the logger. As the records are sorted on time, the first record is deleted.

When a record is deleted and flushed to be made persistent, all the records following it are made dirty and need to be moved to the front. To prevent any mishap, Windows CE appends the new database layout to the end of the file on persistent storage and then moves all the data to the front. This causes the file to go double the size. This file is then compacted to the size it should be but this is not reflected until the CEDB volume is unmounted and mounted again.

Windows CE Utilities for Visual Studio .NET 2003

Windows CE Utilities for Visual Studio .NET 2003 enable ISVs to develop managed code applications for Windows CE-based platforms. Visual Studio .NET 2003 includes managed code development support for Pocket PC 2003 and the Windows CE Emulator. Windows CE Utilities allow you to build, deploy, and debug managed code applications for other Windows CE-based platforms. For more information, see Readme.txt in the CE Utilities for VS.NET directory located on your installation media.

BSP Issues

BSP for ARM Integrator AP SDB

BSP for the Intel XScale DBPA250 development platform

National Geode SP4SC30 development board

BSP-related tools in the IDE

CEPC BSP

MIPS 16 and ARM Thumb BSPs have been removed

MIPS use of CallWindowProc

MIPS16 Eagle OS binaries are no longer provided

Ordering information for NEC Solution Gear 2 Series Development Kit

Ordering the SMDK2410 Samsung MCU Development Kit

Upgrade Wizard does not copy platform files for XSCALE platforms

BSP_200MHZ environment variable issue

Hardware limitation on the NEC Solution Gear 2 Series Development Kit

Infrared is not supported on the Samsung Development Kit

Incorrect documentation about some supported features for the SMDK2410 Samsung MCU Development Kit

Baud rate for Hitachi US7750 HARP (Aspen) SDB is now 38400

x86 BSP issue

BSP for ARM Integrator AP SDB

The following issues are related to the board support package (BSP) for ARM Integrator AP SDB:

• ARM debugger incorrectly displays call stack

Page 10: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

When a breakpoint is set inside a finally block, the debugger incorrectly displays the call stack. The result is a duplicate entry for the routine where the breakpoint was set.

• ARM debugger cannot range step over a __leave statement

When the ARM debugger steps over the SEH __leave construct in a __try block, it then begins to execute without stopping. The workaround is to add a breakpoint inside the handler or later in the program to stop execution.

BSP for the Intel XScale DBPA250 development platform

The following issues are related to the BSP for the Intel XScale DBPA250 development platform:

• High bit-rate streaming media fails to play on Intel Xscale (Lubbock) platform using the on-board Ethernet and the VMini configuration.

When playing a streaming windows media video file with a total bit rate in excess of 300 kilobits per second, the status bar indicates 0 percent loaded and proceeds directly to the Stop condition without playing the file. This problem can be avoided either by using a NE2000 compatible Compact Flash card in the CF slot on the Lubbock board, or by playing the clip locally rather than over a network connection.

• Some drivers are not fully supported in the Lubbock BSP.

In Windows CE .NET, this BSP does not support all of the CPU-native and other device drivers. If you have problems with driver functionality, download the most current version of the Lubbock BSP from the Intel Web site.

National Geode SP4SC30 development board

The following issues are related to the National Geode SP4SC30 development board:

• Loadcepc.exe instructions on the Compact Flash card do not display correctly

The Compact Flash card included with the National Geode SP4SC30 development board includes a version of Loadcepc.exe that displays a message during the boot sequence asking the user to press ENTER. In the default display mode, you do not see the message and are unaware that Loadcepc.exe is waiting for your response. To fix this, update the contents of the boot Flash card with the CEPC boot disk image.

• PCMCIA has not been tested

The current version of the BIOS does not allocate the necessary resources for an external PCMCIA adapter, so PCMCIA testing was not done on this platform.

CEPC BSP

The following issues are related to the CEPC BSP:

• Download speed of LoadCEPC tool is documented incorrectly

The default speed for the Loadcepc.exe communications link is 38,400 bps, rather than 19,200 bps as stated in the Platform Builder documentation. Using the /b option to specify a different baud rate for downloading an image has no effect, because Loadcepc.exe ignores this value until downloading is complete. Once downloading is complete, serial communication continues at the line rate specified in the /b option.

• Some CEPC video cards do not support the default FLAT display driver

Because some older video cards used in CEPCs, such as ATI Mach32/64 and Cirrus Logic 5434, do not support VBE 2.x, these cards do not work correctly with the FLAT driver. You can use the Vesatest utility to find a card that has a VESA BIOS version 2.0 or greater.

Page 11: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

• IMGMULTIXIP on CEPC expects 64 MB of RAM

The IMGMULTIXIP flag assumes the system has 64 MB of RAM. This is different from the non-IMGMULTIXIP case, which only required 32 MB.

• CEPC Config.bib file

The Config.bib file for a CEPC has been updated to optionally support multiple-BIN images. By setting IMGMULTIXIP=1 and running makeimg, it generates a multiple-BIN image.

The chain region is specified to come first in the Config.bib file for a CEPC. This does not work correctly. You should set IMGMULTIXIP=1 and then download the image using Chain.lst.

BSP-related tools in the IDE

The following issues are related to BSP tools:

• Download speed of LoadCEPC tool is documented incorrectly

The default speed for the Loadcepc.exe communications link is 38,400 bps, rather than 19,200 bps as stated in the Platform Builder documentation. Using the /b option to specify a different baud rate for downloading an image has no effect, because Loadcepc.exe ignores this value until downloading is complete. Once downloading is complete, serial communication continues at the line rate specified in the /b option.

• Incorrect choices displayed in the Resolve Features dialog box

If you have more than one BSP in your platform, the Resolve Features dialog box may display inappropriate choices in the Select one or more Features box. You may also see duplicate feature groups on the Unresolved or Resolved tab of this dialog box. For the Resolved tab, pay careful attention to the Context text field to determine which BSP the feature group belongs to. Once you have selected the correct feature group, the list of available features may include those that are appropriate for another BSP and not for the BSP to which the current feature group belongs. If you accidentally select an inappropriate feature, that feature is excluded from the build and you see a red X over its icon in the FeatureView window. If that occurs, choose Platform, choose Resolve Features again, unselect that feature, and then choose another.

The inappropriate choices are drivers that are native to a BSP or drivers that only support a subset of microprocessors. For example, if you have both the ARM Integrator AP: ARMV4I and CEPC: x86 BSPs in your platform and you decide to look at the keyboard driver choices for your CEPC in the Resolve Features dialog box, you see the PL050 keyboard driver in the list of choices. This keyboard driver only supports ARMV4I and ARMV4 and is a native device driver for the ARM Integrator BSPs. The Resolve Features dialog box allows you to select it, but it is excluded from the build when you look at in the FeatureView window.

• Cannot right-click in the Catalog to export more than one BSP

When exporting a feature in the Catalog, if you right-click and choose Export Feature to start the Export Wizard, every other feature of the same type that you add from within the Export Wizard is not included in the generated .cec file.

• BSP Wizard does not update the Platform directory properly

If you have selected a BSP to be cloned using the BSP Wizard and subsequently want to change that information and move backwards in the wizard to select a different BSP to clone, the BSP Wizard does not update the directory to be cloned properly. You must exit the BSP Wizard and restart it to reset the directory to clone.

MIPS 16 and ARM Thumb BSPs have been removed

In this release, the MIPS16 and ARMV4T Thumb kernel and the corresponding OS build have been removed from Platform Builder. The following list shows the points of note:

Page 12: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

• Platform Builder Setup and the IDE and command line tools have been updated to remove references to this OS build.

• The ARMV4T Thumb OS build will not be supported in any future releases of Windows CE .NET starting with this release.

• The Windows CE .NET OS will still support building and running 16-bit applications on ARM platforms.

• The ARM compiler will continue to support building 16-bit applications using the appropriate compiler flags.

• To load and run 16-bit Thumb applications, you have to use the ARMV4I kernel and the corresponding OS build.

• ARMV4I and ARMV4 are viable alternatives for ARMV4T

MIPS use of CallWindowProc

On MIPS devices, applications should not directly call the function pointer returned by GetClassInfo, but use CallWindowProc instead.

MIPS16 Eagle OS binaries are no longer provided

MIPS16 binaries have been removed from the Eagle kit. The Eagle kit ships and supports MIPSII only.

Ordering information for NEC Solution Gear 2 Series Development Kit

The following ordering information for the NEC Solution Gear 2 Series Development Kit did not make it into the BSP documentation.

In North America

Part number:

DDB-VR5500B (motherboard and Vr5500 CPU board)

DDB-VR5432A (motherboard and Vr5432 CPU board)

DDB-VR4131B (motherboard and Vr4131 CPU board)

CMB-VR5500B (Vr5500 CPU board)

CMB-VR5432A (Vr5432 CPU board)

CMB-VR4131B (Vr4131 CPU board)

To order, see the Vibren Technologies Inc. Web site.

Outside North America

Part number:

SG-MOTHER-2 (motherboard)

SG-30131-2 (VR4131 CPU board)

SG-30550-2 (VR5500 CPU board)

To order, see the NEC Electronics Web site.

Ordering the SMDK2410 Samsung MCU Development Kit

The following information shows how to order the SMDK2410 Samsung MCU Development Kit.

In the United States

The part number is S3C2410X01-DEMO. When you order this part, send your purchase order to ATMI or send a fax to (425) 869-9841.

Page 13: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

Outside the United States

Order the SMDK2410 Samsung MCU Development Kit from the AIJI System Web site. The name of the product is SMDK2410.

Upgrade Wizard does not copy platform files for XSCALE platforms

On the ARMV4I XScale and ARMV4 XScale platforms, the Upgrade Wizard fails to copy platform files.

The workaround is to copy the Cesysgen.bat file from %_WINCEROOT%\public\<IABASEor HLBASE>\OAK\MISC to <platform path>\WINCE410\<bsp dir>\OAK\MISC, where <bsp dir> is the platform directory for each BSP in your project.

BSP_200MHZ environment variable issue

After you set the BSP_200MHZ environment variable, you must rebuild the OEM Adaptation Layer (OAL).

Hardware limitation on the NEC Solution Gear 2 Series Development Kit

The PCI INTC routed through the ALI M1535+ chip on the baseboard does not work properly, and the PCI card using this interrupt cannot work. This occurs only with a special card or when the PCI extension box is used because the interrupt is not attached to the PCI INTA signal on any baseboard PCI slot.

Infrared is not supported on the Samsung Development Kit

Infrared is not supported on the Samsung Development Kit.

Incorrect documentation about some supported features for the SMDK2410 Samsung MCU Development Kit

The following table shows the corrected entries for some of the supported features in the BSP for the hardware components on the SMDK2410 Samsung MCU Development Kit for the Samsung S3C2410X01 RISC microprocessor based on the ARM920T core.

Hardware component Hardware support BSP support

Secure Digital Yes No

USB function Yes No

Baud rate for Hitachi US7750 HARP (Aspen) SDB is now 38400

The baud rate for the Hitachi US7750 HARP (Aspen) SDB has changed from 57600 bits per second to 38400 bits per second. The following table shows the correct settings when configuring HyperTerminal for the BSP.

BSP Bits per second Data bits Parity Stop bits Flow control

Hitachi US7750 HARP (Aspen) SDB

38400 8 None 1 None

x86 BSP issue

The day of the week value for the real-time clock is incorrect.

Build Issues

FastCAP instrumentation not supported on x86

Cannot boot Xip.bin when building a BIN image

Page 14: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

Enterprise Web Pad with Applications debug build may fail to build correctly

Platform Builder batch files cannot tolerate embedded blanks in the USERNAME environment variable

WCELOAD is not documented in the command line Help

Platform section of an .inf file

Linker workaround for TI 925 chip bug

Cebuild causes a private source code warning to appear

Module build with 16-bit code for MARMV4T cannot call into a module built with 32-bit code for ARMV4

FastCAP instrumentation not supported on x86

FastCAP instrumentation is not supported on x86. Use of FastCAP may cause an error message during the build process. Instrument your code using CallCAP instead.

Cannot boot Xip.bin when building an BIN image

When building a BIN image, you cannot boot XIP.bin if the chain region is placed first in the Config.bib file address order. When the chain region is first in the address order, the boot loader does not recognize XIP.bin as a real .bin file. In Windows CE .NET 4.2, the boot process is halted and an error message is displayed that suggests how to correct the problem.

To work around this problem

• Download the BIN image using Chain.lst.

- or -

Move the ROM chain definition after a valid BIN region in Config.bib.

Enterprise Web Pad with Applications debug build may fail to build correctly

A debug build using Debug Enterprise Web Pad with Applications may fail to build for any platform because too much data or code space is being used by DLLs in the MODULES section.

The following output shows a sample error.

Error: Too much data space used by DLL's in MODULES section

Current usage = 29440k, Maximum usage = 26624k.

Reduce DLL usage or move some DLL's into the FILES section.

makeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec).

makeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec).

Error PB2505: Error executing #(D:\Images\HANDWPFP\RelDir\NEC_DDB-VRC5476__MIPSIV_FPDebug\)makeimg.exe.

HANDWPFP - 4 error(s), 12 warning(s)

Platform Builder batch files cannot tolerate embedded blanks in the USERNAME environment variable

Platform Builder batch files, such as Cebuild.bat and Cesysgen.bat, cannot tolerate embedded blanks in the USERNAME environment variable.

WCELOAD is not documented in the command line Help

You can install or uninstall the .cab file from a specific location or from the default location, \Program Files. To use WCELOAD, you should type the following at a command line: wceload /noaskdest <.cab file location>. The /noaskdest indicates that the user is not prompted for the installation directory.

Platform section of an .inf file

Page 15: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

The Platform section in an .inf file is the section used to specify the platform string and version numbers for selective installations. To specify a selective installation, use the Platform section directives in the [Platform.vendor.extension] section of the .inf file.

There can be multiple Platform sections in one .inf file, distinguished by the extension of the Platform section name. The vendor extension is a convention to support multiple third party device platforms. The "ms" extension is reserved for Microsoft. The extension is used as the platform string identifier.

The following table lists the valid directives for the Platform section in an .inf file:

Directive Description

PlatformString Identifies the valid platform on which an application can be installed. This optional directive is the final identifier of the platform for selective installations and is only used to make the .inf file section more readable.

PlatformMin Specifies the minimum platform version number that is valid for installations. It is required when specifying a selective installation and optional otherwise.

Platform version numbers have the format MajorVersion.MinorVersion. The major version and minor version are integer numbers separated by a period.

PlatformMax Specifies the maximum platform version number that is valid for application installation. This directive is optional when specifying a selective installation.

Platform version numbers have the format MajorVersion.MinorVersion. The major version and minor version are integer numbers separated by a period.

Note This installation versioning scheme cannot be used to target devices released before 2003.

The following table lists the possible values for the PlatformString directive.

Value Description

Pocket PC The device is a Pocket PC.

SSDK The device supports the Universal SDK.

The following example shows a Pocket PC Platform section in the installation .inf file:

[Platform.MS.PocketPC]

PlatformString=PocketPC

PlatformMin=3.0

PlatformMax=4.0

Linker workaround for TI 925 chip bug

Page 16: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

Texas Instruments has identified a defect in the ES1, ES2, and ES3 silicon steppings of the OMAP710. It is also believed , but not confirmed, that the same issue will impact all ARM925-based offerings from TI, including the OMAP1510 and OMAP310. This defect can lead to incorrect instruction execution, resulting in an operating system crash. The problem results when a data abort occurs for an instruction at address 0xXXXX:XFF4 of any instruction page and the following page of instructions is not present in the instruction output type library (TLB) file. A data abort, instruction fetch, and instruction TLB miss must occur simultaneously for the error to occur.

A new linker has been produced that detects the presence of a possibly hazardous instruction and pads out the resulting executable to move the hazardous instruction from the specific address. This linker behavior is activated by specifying the following command line option to the linker: /ARMPADCODE. This linker option is required only for the Texas Instruments chips listed above. If the linker is used with other ARM-based chips, there are no negative side-effects.

The linker outputs "Warning LNK1166: cannot adjust code at offset" if the linker fails to work around the problem. There are two recommendations when this occurs, as follows:

• Recompile, adding the /Gy option to separate functions for the linker, and then relink.

• If any warnings still exist, rewrite the source code for the large function that generates code greater than a page into several functions that generate less than one page each.

Module build with 16-bit code for MARMV4T cannot call into a module built with 32-bit code for ARMV4

This is true if you are using the Platform Manager components on an ARMV4I- or ARMV4-based image. On these images, the remote tools use ARMV4 packages. If you are interacting with Platform Manager or remote tool components on ARMV4- or ARMV4I-based images, compile your components with the CLARM compiler to generate 32-bit code. If your modules are built as 32-bit code, they should have no problems interacting with Platform Manager components.

Cebuild causes a private source code warning to appear

When building a platform using Cebuild, Blddemo, or from the IDE with Enable Deptree Build selected, a warning message regarding private source code may appear up to three times. This warning may safely be ignored, as no private source code is built.

Blddemo and Cebuild, if invoked without the -q option, run Build.exe in the public and private roots of each deptree that contains a DIRS file in the root. The private\winceos, private\servers and private\wceshellfe directories meet these criteria, so Build.exe is executed in each of them. When Build.exe is executed in a private tree, it warns the user that it is about to build a private tree, potentially overwriting the libraries shipped with the Windows CE OS. However, because the DIRS file is empty, no directories are built and no libraries are overwritten. Removing the DIRS files is not a solution because that would prevent BUILD from finding the Sources.cmn file.

Communication Services and Networking Issues

Connecting to Windows XP Professional using RDP over a wireless connection problems

RAS Server domain name issue

GetIfEntry may return an incorrect dwMtu value in some situations

Internet Explorer for Windows CE Issues

SMB server does not support Unicode file names from Windows 2000 or Windows XP

OBEX Server not supported on headless device configurations

NdisMMapIoSpace functions works incorrectly

Network admin does not show PPPoE connectoids if the connectoid does not contain a service name

RTC cannot use NTLM authentication

Connecting to Windows XP Professional using RDP over a wireless connection problems

Page 17: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

When using an RDP connection to a Windows XP Professional-based computer over a wireless interface, there may be unexpected disconnects during the session. Installation of Windows XP Service Pack 1 or later is recommended to eliminate this problem.

RAS Server domain name issue

RAS Server does not support domain names.

GetIfEntry may return an incorrect dwMtu value in some situations

The GetIfEntry IP Helper function ignores a registry setting override. To ensure the correct Maximum Transmission Unit (MTU) is used, applications should always use the MTU specified in the following registry key, if one exists: HKEY_LOCAL_MACHINE\Comm\<Adapter Name>\Parms\Tcpip\MTU.

If no MTU is specified in the registry, then the application should use the one specified in the dwMtu parameter of the GetIfEntry IP Helper function.

The Windows CE SNMP MIB-2 implementation does not implement this workaround. As a result, the MTU size reported by MIB-2 for an interface does not reflect any MTU size specified in the registry. Instead, the MIB-2 implementation always reports the value returned by GetIfEntry.

SMB server does not support Unicode file names from Windows 2000 or Windows XP

The SMB file server does not support Unicode file names or directory names from Windows 2000 or Windows XP. These operating systems attempt to negotiate Unicode support through special SMBs that are currently not supported.

OBEX Server not supported on headless device configurations

Dragging the OBEX Server feature and its components from the Catalog into a platform does not add the component to the final image.

NdisMMapIoSpace functions works incorrectly

The NdisMMapIoSpace function does not work correctly. Use the function MmMapIoSpace instead.

Network admin does not show PPPoE connectoids if the connectoid does not contain a service name

If a user creates a PPPoE connection and enters the service name prior to submitting it, it can be seen. However, if the user enters user name and password, then it does not appear in the list of dial up connectoids.

It is possible that some ISPs do not require a service name.

RTC cannot use NTLM authentication

The Windows CE NTLM SSPI does not support datagram mode. As such, NTLM authentication is not supported.

Internet Explorer for Windows CE Issues

Internet Explorer cannot run in the Emulator with high display resolution

Internet Explorer resolves unspecified protocols in address field to http://

IPv6 literal addresses in address bar do not work unless the user types in http://

Local computer security zone is not supported

IESample Browser issues

Additional IESimple build information

New version of Pocket Internet Explorer

New Internet Explorer MLANG SYSGEN settings

HTML application cannot launch from links

Page 18: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

Pocket Internet Explorer mouse cursor does not change to the hand symbol when pointing to a link

Unsupported features in VBScript

Support for Windows CE Help Viewer in Internet Explorer

Pocket Internet Explorer does not open a new window using CTRL+N

ClientCaps behavior object supports getComponentVersion and isComponentInstalled

Internet Explorer cannot run in the Emulator with high display resolution

When the display resolution for the Emulator is set higher than 800 x 600, or greater than 16-bit color mode, Internet Explorer cannot run. The workaround is to lower the display resolution to 800x600x16.

Internet Explorer resolves unspecified protocols in address field to http://

If a user enters a URL in the address bar without specifying the protocol (for example, the address of an FTP server without the ftp:// prefix), the address automatically resolves to "http://". Unless the requested address is that of a Web server, the request will fail. The workaround is to add the following settings to the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\URL\Prefixes registry key, by using the Regedit tool or by editing the Ie.reg file.

"ftp"="ftp://" "home"="http://" "www"="http://"

IPv6 literal addresses in address bar require http:// prefix

When a user enters a URL that contains a literal IPv6 address in the address bar, the URL must include the http:// prefix or the page is not located.

Local computer security zone is not supported

The URL security zone Local Computer Zone is not supported on Windows CE .NET. All settings for this zone are mapped to Intranet Zone.

IESample Browser issues

Note the following issues with the IESample browser container application:

• The apartment threading model is not supported with the browser. Applications must set the threading model to Both to function properly with the browser.

• Printing uses a modal, invisible HTML dialog box to load and execute the print template. If you use a custom print template, make sure that it handles JScript errors and closes the dialog box or the browser appears to stop responding.

• You need to select Use LAN or specify Autodial Name for proxy information to be effective.

Additional IESimple build information

If you are adding the full-screen browser feature (Iesimple.lib) to your platform, you need to make the following Sysgen settings:

set __SYSGEN_IESIMPLE = 1

set SYSGEN_IESAMPLE= 1

The default for the latter setting is SYSGEN_IESAMPLE = 1. If this setting is not changed, it overrides the __SYSGEN_IESIMPLE flag.

To build IESimple from the build window, navigate to the %_WINCEROOT%\Public\Ie\Oak\Iesimple folder on your development machine, and then enter the following commands:

set WINCEREL=1

build -c

Page 19: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

sysgen -p ie iesimple

New version of Pocket Internet Explorer

The new version of Pocket Internet Explorer supports multiple zoom levels, cascading style sheets (CSS Mobile Profile), and cookies. More HTML 3.2-compliant tags, such as <CAPTION ALIGN=""> or <BASEFONT COLOR="">, have been added, as well as event support for Microsoft ActiveX® controls.

New Internet Explorer MLANG SYSGEN settings

The MLANG (multiple language support) feature of Internet Explorer has been further componentized to reduce the size of the system registry. Platform designers can choose the level of language support that best fits the specifications of a target device. The following table shows the Sysgen settings for MLANG.

Sysgen flag Description Module

SYSGEN_MLANG Includes the IMultiLanguage interface and codepage data only.

Mlang.lib

SYSGEN_MLANGALL Provides the full Internet Explorer Multiple-Language API (IMultiLanguage IMultiLanguage2, IMultiLanguage3, IMlangFontLink2, ImlangLineBreakConsole), plus Auto Select Encoding. Charset and encoding information reside in the resource file.

Mlang2.lib

SYSGEN_MLANGREG Same API support as MLANGALL, but optional charset and encoding information reside in the system registry.

Mlang2.lib

HTML application cannot launch from links

The new Internet Explorer 6.0 HTML Application feature cannot be launched using HTML links. The HTML Application feature must be launched using the Mshta.exe command.

Pocket Internet Explorer mouse cursor does not change to the hand symbol when pointing to a link

The mouse cursor for Pocket Internet Explorer does not change to the hand symbol when pointing to a link.

Unsupported features in VBScript

The following list shows a number of unsupported features for VBScript in this release:

• The msgBox command is not supported in VBScript for Windows CE .NET. You must use window.alert for displaying messages.

• The Onerror trap is not supported. You must use try/catch.

• The InputBox command is not supported.

Support for Windows CE Help Viewer in Internet Explorer

Page 20: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

Internet Explorer supports the Windows CE Help viewer, Peghelp, which was previously available only through Pocket Internet Explorer. Use the SYSGEN_HELP flag to add this feature.

Pocket Internet Explorer does not open a new window using CTRL+N

The Pocket Internet Explorer does not support opening a new window by pressing CTRL+N.

ClientCaps behavior object supports getComponentVersion and isComponentInstalled

Internet Explorer for Windows CE provides limited support for two clientCaps methods, getComponentVersion and isComponentInstalled. These methods can only retrieve a component that is listed with its CLSID value in the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components registry key. The methods only accept references of type ComponentID. All other references return E_INVALIDARG.

Note Because Internet Explorer for Windows CE does not support downloading of ActiveX controls, there is no support for other clientCaps object methods.

Complier Issues

Cannot compile __asm calls when using /fastcap for the SH4

Profiling hook functions are incompatible with incremental linking on x86

Cannot compile __asm calls when using /fastcap for the SH4

If you use the /fastcap option when compiling for the SH4, then the compiler adds a call to fastcap for every function call in every inline assembly statement (__asm call) that you may have in your code. This causes the compiler to terminate with the message "Unresolved external symbol ___asm". The only way to avoid this behavior is to move all of your inline assembly code into a separate module and then recompile that module without fastcap.

Profiling hook functions are incompatible with incremental linking on x86

If you are using the profiling hook functions _CAP_Start_Profiling and _CAP_End_Profiling, you must turn off the incremental linker (/INCREMENTAL), which is set to YES by default. This limitation applies only to x86 platforms and does not affect compiler-instrumented profiling.

Core OS Services Issues

Performance issues with image signing support

Chain.lst format

Recycle bin persistence with external file system mounted as root

GetTickCount documentation is not clear

Including DCOM and SYSGEN_OLE_GUIDS issue

Performance issues with image signing support

The support for image signing in Windows CE .NET 4.2 has the following performance issues:

• The crypto code, which is not shipped, uses fixed keys. This means that the crypto code is only useful when signed with the MS WHQL keys. Therefore, users can implement their own signature methods.

• You can only sign and check the kernel region. This design limitation means that there are no signatures in the chain file, Chain.bin.

Romimage cannot create two extension regions with the same name, and therefore, you cannot create a signature area in each of the other BIN regions.

Chain.lst format

A Chain.lst file lists the BIN regions that can be downloaded to a target device.

Page 21: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

The following code shows the format of a Chain.lst file:

<.bin file name>\n

<.bin file name>\n

+<.bin file name>

Each BIN region is separated by a new line and a plus sign (+) precedes the BIN region containing the kernel module.

The following example shows the contents of a Chain.lst file listing three .bin files, where the Nk.bin region contains the kernel module.

chain.bin

+nk.bin

shell.bin

Note The Chain.lst format does not allow empty lines in the file.

Always save a Chain.lst file as a text file.

To edit a Chain.list file, open the file in Platform Builder by choosing Open from the File menu.

To download the regions listed in the Chain.lst file to a target device, open the Chain.lst file in Platform Builder by choosing Open Workspace from the File menu.

You can exclude a file from the download to your device by placing a minus sign (–) in front of the file name in the Chain.lst file. The following example shows how to exclude a file from the download to your device.

chain.bin

+nk.bin

shell.bin

-temp.bin

All files are downloaded to the device except the Temp.bin file.

Recycle bin persistence with external file system mounted as root

When mounting an external file system as the root file system, the Recycle Bin on Windows CE 4.2 is still not persistent because it is stored in the object store in a RAM database. Hard-resetting a device with a file system mounted as root causes the Recycle Bin database to be deleted, and corrupted information is displayed in the list of files shown in the Recycle Bin. Files can no longer be restored.

The Recycle Bin attempts to function on such external file systems as Compact Flash cards when you have another file system mounted as root. This is not the case for the RAM file system.

GetTickCount documentation is not clear

The description for the GetTickCount function should read as follows:

This function retrieves the number of milliseconds the system has been running, excluding any time that the system was suspended.

The following sentence shows the correct description for the return values section for this function:

The number of milliseconds indicates success.

Including DCOM and SYSGEN_OLE_GUIDS issue

If you include both DCOM and SYSGEN_OLE_GUIDS in your image, SYSGEN_OLE_GUIDS is removed from the workspace by a dependency bug. This does not affect the resulting image, as SYSGEN_OLE_GUIDS appears correctly in the final image.

Debugger Issues

User runs out of breakpoints during module loads when setting a breakpoint

Page 22: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

User runs out of breakpoints during module loads when setting a breakpoint

When a project file has address breakpoints saved from a previous session, the debugger could run out of breakpoints if there is a sufficient number of module loads.

Driver Issues

PC Card and hard driver conflict on a CEPC

SolidTek Mini-USB Keyboard does not enumerate correctly

SYSGEN_USB_HID no longer used for keyboard and mouse functionality

USB HID joysticks and DirectInput are no longer supported

Poor display quality with TVIA5000 Driver at 800 x 600 resolution

USB class driver installs the sample PCL printer driver as the default

Platform-specific battery support code has been moved

OHCI and UHCI host controller link libraries must be changed

Power Manager device configurations in the registry must be in lowercase letters

Keyboard profiling shortcuts

Power Manager Supports DevicePowerNotify while processing IOCTL_POWER_CAPABILITIES

EDBG driver for SG2_VR5500 BSP does not properly filter packets

EDBG driver on Samsung board has the promiscuous mode disabled

Sysgen extraction utilities

USB host controller can now support remote wake-up

Multiple-interface USB devices are now capable of loading multiple drivers for one device

Multiple USB host controllers are now supported

NetChip 2890 driver does not handle sharing of interrupts properly

PC Card and hard drive conflict on a CEPC

If a PCMCIA reader has more than one slot, it is possible for a conflict to occur between the IDE hard disk and the second PCMCIA card. Use only the first slot on a dual slot PCMCIA card reader if a hard disk is installed.

SolidTek Mini-USB Keyboard does not enumerate correctly

The SolidTek mini keyboard model #ACK-595U does not respond correctly during enumeration. As a result, the keyboard is not supported under Windows CE .NET.

SYSGEN_USB_HID no longer used for keyboard and mouse functionality

Projects created prior to Windows CE .NET version 4.2 that included the USB HID component have the SYSGEN_USB_HID variable set. As of Windows CE .NET version 4.2, this variable no longer brings in keyboard and mouse functionality. This functionality can be achieved by setting SYSGEN_USB_HID_CLIENTS=1, SYSGEN_USB_HID_KEYBOARD=1, or SYSGEN_USB_HID_MOUSE=1.

USB HID joysticks and DirectInput are no longer supported

USB HID joysticks as well as DirectInput for USB HID are no longer supported as of Windows CE .NET version 4.2.

Poor display quality with TVIA5000 Driver at 800 x 600 resolution

Using a 50-Hz display refresh rate may generate perceptible flicker in the image. The only workaround for this is to change the display resolution to 640 x 480 either by choosing that mode from the CEPC Boot-Disk menu, or by editing the Platform.reg file.

USB class driver installs the sample PCL printer driver as the default

Page 23: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

For each USB printer attached to the USB bus, the USB class driver installs the sample PCL printer driver PCL.dll as the default printer driver. If your printer does not support PCL printing, modify the printer registry keys as described in the Windows CE printer documentation. This enables OEMs to support printer formats other than PCL.

Platform-specific battery support code has been moved

Platform-specific battery support code has been moved from GWES into an installable driver loaded by Device.exe. Battery drivers must be updated using the guidelines described in the Platform Builder battery driver documentation.

OHCI and UHCI host controller link libraries must be changed

A platform that builds a custom open host controller interface (OHCI) or universal host controller interface (UHCI) must link with Hcdlib.lib. This library implements common functionality for OHCI and UHCI.

Power Manager device configurations in the registry must be in lowercase letters

The Power Manager for Windows CE .NET version 4.2 requires that lowercase letters be used for device names and system power state names. Some operations like wsprintf(buf, "%u", n) or case-insensitive comparisons involve locale table lookup operations. The locale table is implemented in a memory-mapped file called Wince.nls. During suspend, the Power Manager disables file system access using FileSystemPowerFunction. Attempts to access this file from the suspending thread may deadlock the system. The deadlock occurs if the necessary pages from Wince.nls are not in memory.

When processing API calls, the Power Manager converts names to lowercase. However, during suspend and resume states, the Power Manager accesses the registry after file system operations are disabled, preventing the conversion of registry settings to lowercase. You must modify your system power state registry settings to lowercase. For example, WAV1: should be represented as wav1:. There is no need to modify the registry settings controlling device driver loading, for example, values under HKLM\Drivers\Builtin.

Keyboard profiling shortcuts

The default drivers for AT and PC/XT keyboards have shortcuts that turn profiling on and off. The shortcuts are implemented by the scan code processing libraries in %_WINCEROOT%\Public\Common\OAK\Drivers\Keybd\Scanvk. Disable the shortcuts by commenting out #define PROFILE 1 in the source files for the libraries. The following table shows the shortcut key and the associated function call.

Shortcut key Windows CE .NET 4.1 and earlier Windows CE .NET 4.2

F8 Runs object call profiling. Toggles between buffered, unbuffered, and CELog storage modes.

F9 Runs buffered Monte Carlo profiling. Runs Monte Carlo profiling.

F10 Runs kernel call profiling. Runs kernel call profiling.

F11 Runs unbuffered Monte Carlo profiling.

Runs object call profiling.

F12 Quits profiling. Quits profiling.

Power Manager Supports DevicePowerNotify while processing IOCTL_POWER_CAPABILITIES

Page 24: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

Power Manager supports DevicePowerNotify requests by a device while processing IOCTL_POWER_CAPABILITIES. This allows devices that want to be loaded at a device power state other than D0 to request that they be updated to the desired device power state immediately after registration with Power Manager. As with any DevicePowerNotify call, this request may not result in a device power state update, depending on constraints imposed on Power Manager by applications and system power state configuration.

EDBG driver for SG2_VR5500 BSP does not properly filter packets

The EDBG driver for the SG2_VR5500 BSP does not properly support packet filtering. When the EDBG driver is set to NDIS_PACKET_TYPE_PROMISCUOUS, it does not receive a packet sent to another media access control (MAC) address. It also does not receive all multicast packets. When set to NDIS_PACKET_TYPE_MULTICAST or NDIS_PACKET_TYPE_ALL_MULTICAST, it does not receive multicast packets sent to multicast addresses that are set in the multicast addresses list.

EDBG driver on Samsung board has the promiscuous mode disabled

EDBG driver on the Samsung SMDK2410 BSP has the promiscuous mode disabled.

Sysgen extraction utilities

Windows CE .NET 4.2 introduces two utilities, Sysgen_capture.bat and Nmake_capture.exe, to assist OEMs who want to rebuild modified public drivers in their platform directories. Previously, this was difficult to do because the Sysgen process links using environment variables that were dynamically generated within the build system. These utilities capture and reveal the internal dependency information used within the build system. OEMs can use the information captured by these utilities when building drivers within their platform directories.

The following steps use the serial port driver for 16550 UARTs, Com16550.dll, as an example to show how to use Sysgen_capture.bat to create Sources files for driver modules that are normally generated by the build system during the Sysgen phase. Use the general process to expedite copying public code to your platform so you can make custom modifications.

Note Sysgen_capture.bat only works on Sysgen targets that are dynamically linked libraries (DLLs) or executables.

1. Create two subdirectories for the driver within your platform directory. One is for a library corresponding to your driver and the other is for your driver's binary file (.dll or .exe).

For example, to customize Com16550.dll, create a subdirectory named %_TARGETPLATROOT%\Com16550\Src for the library and %_TARGETPLATROOT%\Com16550\DLL for the binary file.

Note If you were customizing an executable like Etcha.exe, then you would create %_TARGETPLATROOT%\Etcha\Src and %_TARGETPLATROOT%\Etcha\EXE.

Verify that the library name for your driver module is different from the name for your driver's binary file. In this example, Com16550.dll is built by linking Com16550_lib.lib. Most DLL Sysgen targets use the *_lib.lib convention because if you do not differentiate the library file and binary file names, the driver's import library has the same name as the static library containing its code.

2. Copy the public directory containing the module you want to build into the Src directory you created. In this example, you would copy the files from Public\Common\OAK\Drivers\Serial\Com16550\*.*.

3. Add the following line to the file Com16550\Src\Sources:

RELEASETYPE=PLATFORM

If a RELEASETYPE line already exists in the Sources file then change its value to PLATFORM. This tells the build system that output files should go into the platform's Lib or target directories.

4. Verify that the following line appears in Com16550\Src\Sources:

Page 25: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

WINCEOEM=1

This tells the build system to include portions of header files that are only available to OEMs building platforms.

5. Build the library in Com16550\Src. If there are any problems, resolve them before proceeding. When successful, the build produces Com16550_lib.lib in the appropriate subdirectory of %_TARGETPLATROOT%\lib.

6. Change to the directory for your driver's binary file, for example, Com16550\DLL.

7. Run Sysgen_capture with the usual Sysgen parameters, for example:

Sysgen_capture com16550

This should create one or more files, one of which is a Sources file with the name of the driver as the file extension, for example, Sources.com16550. The Sysgen_capture.bat utility creates one such file for each .dll or .exe target created while running your Sysgen command.

8. Rename the sources file for your driver as Sources. For example, remove the extension .com16550 from Sources.com16550.

9. Copy one of the boilerplate Makefiles into your Src directory, for example, copy com16550\Src\Makefile into com16550\DLL. At a minimum, you need a Sources file and a Makefile to run Build.exe.

10. Run Build.exe. This should create the same binary as the standard Sysgen command, but in your platform's target directory, which is a subdirectory of %_TARGETPLATROOT%\target. You can check Build.log to determine where the binary was created.

Note This version of the driver is using the standard version of Com16550_lib.lib, not the one you created in Com16550\src.

11. Edit the Com16550\src\sources file. Remove the TARGETLIBS (or SOURCELIBS) entry for Com16550_lib.lib and move it to SOURCELIBS, changing the path as appropriate. You may need to replace $(_PUBLICROOT)\common\oak with $(_TARGETPLATROOT).

12. Run Build.exe again in the directory for your driver's binary file, for example, Com16550\DLL. You may need to run it with the –c option to delete all of the object files. It should build the target binary using your version of Com16550_lib.lib. You can confirm this by looking in Build.log.

13. Add a Dirs file to the Com16550 directory that lists the Src and DLL (or EXE) directories, in that order. You can then build your modified version of Com16550\Src and link an executable with one build command.

14. Run Build.exe with the –c option in the %_PROJECTROOT%\CustomDriver directory and confirm that the contents of both the Src and DLL (or EXE) subdirectories are built, and that the driver links.

The Sysgen_capture utility works on OS components that are not drivers. The following table shows commands for other OS components.

Command Result

Sysgen_capture pm Creates a Sources file for the Power Manager.

Sysgen_capture etcha Creates a Sources file for Etcha.exe, a touch driver test program.

Sysgen_capture –p wceshellfe cplmain Creates a Sources file for the control panel.

Page 26: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

To use this utility effectively, you can consult the documentation for Sysgen.bat.

Internally, the Sysgen_capture.bat utility makes a call to Nmake_capture.exe. Both of these utilities can be found in %_WINCEROOT%\Public\Common\OAK\Bin\I386. The source code for Nmake_capture is available in %_WINCEROOT%\Public\Common\OAK\Tools\Nmake_capture. The following steps describe how to build Nmake_capture.exe.

1. Verify that support for x86 builds is available in Platform Builder.

2. Open a build window with CPU type NTANSI and platform name NOPLAT.

3. Go to the %_WINCEROOT%\Public\Common\OAK\Tools\Nmake_capture directory.

4. Run Build.exe with the -c option, as follows:

Build -c

5. Copy the new version of Nmake_capture.exe into the execution path ahead of the default version included with Platform Builder.

Nmake_capture.exe does not interact with the rest of the build system.

USB host controller can now support remote wake-up

In earlier versions of Windows CE, the USB host controller always shut down during system shut down. With Windows CE .NET 4.2, the platform dependent driver (PDD) for the USB host controller can either shut down or go into suspend mode during system shut down. When in suspend mode, the host controller is capable of waking the system up using USB devices that support remote wake-up.

Multiple-interface USB devices are now capable of loading multiple drivers for one device

For multiple-interface USB devices, earlier versions of Windows CE required the driver that loaded for the first interface to load the other drivers for the other interfaces. If a driver failed to do so, none of the other interfaces would be functional.

In Windows CE .NET 4.2, the USB system loads the driver for every interface that is specified by a multiple-interface USB device. You can still load one driver for all the interfaces in this device through the registry.

Multiple USB host controllers are now supported

Windows CE .NET now supports multiple OHCI and UHCI host controllers on one system.

NetChip 2890 driver does not handle sharing of interrupts properly

The interrupt status registers for the NetChip 2890 are non-standard, which means that interrupts are not handled properly by GIISR. This problem can be resolved by providing a device with its own interrupt service routine (ISR). A sample ISR implementation is available for the NE2000 network driver.

Emulator for Windows CE Issues

When you are using the Emulator, your entire platform is running in software. This means that in almost all cases performance on the Emulator is slower than on actual hardware. For many operating system tasks, a degradation of performance does not affect the ultimate success of those tasks, even though they may appear halted at times. However, operating system tasks with a time-critical aspect to them may not be successful when running on the Emulator. For instance, real-time applications and development are not supported in the Emulator, and timing-sensitive applications, like multimedia, may show degraded or erratic performance.

Strictly speaking, the Emulator only supports x86 platforms. In actual practice most OS APIs run identically on other processors. Also, developing on the Emulator gives no real advantage to deploying to x86 hardware in comparison with other processors.

Locking a computer while running the Emulator issue

DHCP is intermittently unable to obtain an IP address after downloading certain configurations

Page 27: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

Duration of a VoIP connected call on the emulator resets to 0 every 35 seconds

Running two versions of the Emulator simultaneously does not work

Second instance of Emulator may fail when first instance of Emulator shuts down

Locking a computer while running the Emulator issue

Using the Windows+L keys to lock a computer while running the Emulator can result in issues for the Emulator. When the computer is unlocked, the Emulator's keyboard driver is in a confused state. To get back to a stable state, press the Windows key while the Emulator has focus.

DHCP is intermittently unable to obtain an IP address after downloading certain configurations

You may receive a DHCP IP address error when downloading a debug IP Phone Basic or Advanced configuration to the Emulator. If you have a removable network card, you can remove and reinsert it to force DHCP to attempt to obtain another IP address. Otherwise, you must specify the correct IP address manually.

Duration of a VoIP connected call on the emulator resets to 0 every 35 seconds

The duration of a VoIP connected call resets to 0 every 35 seconds. The duration of any calls over 35 seconds are inaccurate on the Emulator.

Running two versions of the Emulator simultaneously does not work

You cannot run two versions of the Emulator at the same time. Both versions are available, but the ability to set up more then one virtual machine at a time is not supported.

Second instance of Emulator may fail when first instance of Emulator shuts down

On a development workstation, if you start a second instance of the Emulator while a first instance of the Emulator on the same workstation is shutting down, the second instance of the Emulator may fail. You must end the Cemgr.exe process before you can successfully start the second instance of the Emulator.

File Systems and Data Store Issues

RDP bitmap cache can inadvertently be kept on a storage card

File system filters do not inherit the activity event handle

RDP bitmap cache can inadvertently be kept on a storage card

To avoid using a storage card as the media for maintaining the bitmap cache, you must set the Remote Desktop Protocol (RDP) bitmap cache location to RAM-based storage.

For example:

[HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client]

"BitmapPersistCacheLocation" = "\\Temp"

The value should only include the path to the location and not the full file name. The code does not create the path, so the path must already exist.

File system filters do not inherit the activity event handle

If you install a filter on top of a file system, the activity timer is not linked and is not triggered when I/O activity occurs. To correct this issue, set the filter to read the activity timer value and then set the value manually.

Gateway Issues

Backup settings refresh issue

Intrusion detection not visible in UI logs page

Automatic adjustment for daylight savings time does not work

Page 28: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

SYSGEN_PPPOE is on by default when Gateway UI is included

Reset time should be adjusted to match actual reset requirements

Clone MAC address warning

File name at the end of a URL address is not blocked properly

Unable to uncheck the Static check box in the machine list

Firmware upgrade requires device to be manually reset

Remote access to a machine outside of the firewall bypasses parental controls

STATIC setting on DHCP server configuration page of a Gateway device

Blank rule in firewall for Gateway

Blocking all traffic with firewall for Gateway

Firmware number and date for Gateway cannot be set by the OEM

Public Web site created

Delay when connecting to PPPoE server for Gateway

Registry settings do not persist on restart for Gateway configurations built from the New Platform Wizard

RLMConfig::SetMaxLogStoreSize returns E_INVALIDARG

Warm reboot optionally supports hard reboots in IOCTL_HAL_REBOOT

Note The following issues affect users, who should be advised by an OEM of these matters.

User can change IP address of a Gateway device

User must use ipconfig/renew after reset of the system from the system reset page

Firewall does not clearly state how the user blocks all addresses

Reset of Gateway resets counters on the Statistics page

Default user name of the Gateway is ADMIN

Parental controls page implies it blocks text

Changing the IP address of the Gateway requires the user to update browser address

DHCP shutdown problems

Reset of Gateway resets counters on the Statistics page

The network statistics on the Statistics page are cleared when the Gateway is reset.

Firewall does not clearly state how the user blocks all addresses

A user can block all external and internal IP addresses with a blank value.

Backup settings refresh issue

The Gateway provides a backup and restore feature. These features require the user to wait until the entire process is completed before they can refresh their browser or navigate to other pages. Interrupting the process can cause the process to fail.

Intrusion detection not visible in UI logs page

Intrusion detection is not visible in the UI logs page. You should set SYSGEN_GATEWAY_UI_INTRUSION, because intrusion detection is not brought in to your build by default.

Default user name of the Gateway is ADMIN

The default user name of the Gateway is set to ADMIN.

Page 29: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

Automatic adjustment for daylight savings time does not work

The Adjust for Daylight Savings Time check box in the set time page does not maintain a disabled state.

SYSGEN_PPPOE is on by default when Gateway UI is included

SYSGEN_PPPOE is on by default when the Gateway UI is included in a platform. You have to manually remove any PPPoE-related pages if SYSGEN_PPPOE is not set.

Reset time should be adjusted to match actual reset requirements

The Gateway template application provides a general purpose HTML countdown timer page that is used to inform the user to wait while the Gateway resets. This reset time is set to 30 seconds by default, but should be adjusted to match the actual reset requirements of the device. The reset time could vary based on hardware requirements such as network adapters and components included in the image.

Clone MAC address warning

The broadcast address for Ethernet is set to FF-FF-FF-FF-FF-FF. When used in the clone MAC address UI, this causes the network to stop functioning. If a user enters FF-FF-FF-FF-FF-FF, the fields are cleared and this MAC address is not accepted. An error message for this condition is not provided and only the "Please enter a 2 character field" error message is provided. A unique error message for this condition may be necessary.

User must use ipconfig/renew after reset of the system from the system reset page

The Gateway is typically reset when the network configuration changes. Performing an ipconfig /renew command allows a client to reconnect without having to restart the device or stop and then restart the network adapter.

File name at the end of a URL address is not blocked properly

The Gateway proxy filter denies access by either refusing access with a 403 "Forbidden" message or redirecting to an Access Denied page using a 302 "Found" message.

The proxy filter has the following built-in list of extensions for which it performs a redirect to the Access Denied page:

• Htm

• Asp

• Cgi

• Rtf

• Jsp

• Js

• Shml

• Html

• Shtml

• Aspx

Any other file extensions result in the 403 "Forbidden" message.

Unable to uncheck the Static check box in the machine list

When changing a static DHCP assignment to a LAN-based device, the page must be refreshed in order to see the changes in effect.

Page 30: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

Changing the IP address of the Gateway requires the user to update browser address

Users can change the IP address of the gateway. The LAN page then fails to load until users release and then renew the IP address and updates their browser address to the newly assigned gateway IP address.

Parental controls page implies it blocks text

The parental controls page has a label that says "Domains and Text". This implies that page text is filtered, which is incorrect. Parental control only blocks URL addresses, not text or Web content.

Firmware upgrade requires device to be manually reset

The firmware upgrade selection allows a user to upgrade the firmware on the Gateway. In order to complete this upgrade, the user must perform a hard reset by using the reset process provided by the OEM. This is typically accomplished by pressing a recessed reset button. The browser status bar indicated the progress of the upgrade in most cases. Once the status bar no longer changes, typically after 90 seconds, the reset should be applied.

Remote access to a machine outside of the firewall bypasses parental controls

Parental controls can be bypassed by using remote access to another computer. This can be resolved by disabling port 80 and forcing all clients to use the Web proxy feature of their browser.

User can change IP address of a Gateway device

From the user interface (UI) for a Gateway device, a user can change the Internet Protocol (IP) address of the Gateway device, which causes the following problems:

• After the countdown page appears and the Gateway device resets, the UI cannot be displayed in the browser window because the IP address of the Gateway device was changed.

• If the user types in the browser window the new IP address of the Gateway device, the page fails to load because the settings for the Gateway are not correct. The page cannot load until the user does a release and renew for the Gateway device. The ipconfig command also fails for the Gateway device unless the user first releases the device.

STATIC setting on DHCP server configuration page of a Gateway device

On the Dynamic Host Configuration Protocol (DHCP) configuration page for a Gateway device, the STATIC setting defines static IP addresses issued by the Gateway. This setting does not define static IP addresses set on the client devices.

Blank rule in firewall for Gateway

In the UI for the firewall for a Gateway device, if you set a rule that is blank, and from the Action box choose Allow, the rule instructs the firewall to allow passage of all TCP/UDP traffic. However, the behavior of the firewall is the same with or without this blank rule. In other words, if this blank rule exists in the firewall settings, other rules that block traffic continue perform that task.

Blocking all traffic with firewall for Gateway

In the UI for the firewall for a Gateway device, to block all traffic, create a blank rule, and from the Action box, choose Deny.

Firmware number and date for Gateway cannot be set by the OEM

The Upgrade Firmware page in the Gateway user interface has a section for the firmware build number. This always says "NO INFO" and cannot be changed by the OEM. The same is true for the date on this page.

Public Web site created

If you create a Gateway image, the Web server creates a Web site named Public. All requests on the public interface map to that site. The Web site only uses the virtual root '/', which maps to the Welcome to Windows CE Web page. You cannot access Natadmin and Admin2 from the public network.

Page 31: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

For more information about configuring Web sites, refer to the Web server documentation.

Delay when connecting to PPPoE server for Gateway

If the PPPoE server is not running when you choose Apply, you do not see a response for 25 seconds. If the PPPoE server is running and you provide bad credentials, you do not see a response for more than 60 seconds. You do not see any messages during the delay.

Registry settings do not persist on restart for Gateway configurations built from the New Platform Wizard

The following steps describe how to build a Gateway configuration using the New Platform Wizard and correctly persists registry settings.

1. Open Platform Builder and run the New Platform Wizard to create a Gateway configuration.

2. Set the BSP environment variables shown in the following table to match the hardware and features that your device supports.

Setting type Environment variables

Required Settings BSP_ENABLE_FSREGHIVE=1

BSP_ICS=1

BSP_NOSHAREETH=1

Hardware Specific Examples BSP_DISPLAY_MEDIAGX=1

BSP_NIC_RTL8139=1

BSP_NIC_RTL81392=1

BSP_PCMCIA_I82365=1

Optional Settings Examples BSP_NOAUDIO=1

BSP_NOUSBSER=1

BSP_USB_OHCI=1

BSP_USB_UHCI=1

3. Build the image for your device.

4. Copy to the image to a Flash card and boot the image.

5. Enter passwords.

6. Unplug the device.

RLMConfig::SetMaxLogStoreSize method returns E_INVALIDARG

The SetMaxLogStoreSize method of the RLMConfig interface returns E_INVALIDARG as it is using an IOCTL_RLMSERVICE_GET_MAXLOGSTORESIZE IOCTL call where it should have used IOCTL_RLMSERVICE_SET_MAXLOGSTORESIZE. The Response Log Manager needs this setting to store log messages.

The purpose of the SetMaxLogStoreSize method is to allow the OEM to give the user the control of how much space should be used for log messages.

Warm reboot optionally supports hard reboots in IOCTL_HAL_REBOOT

The firmware upgrade indicates that a hardware reset might be required, but the warm reboot option performs a hard reset.

DHCP shutdown problems

Page 32: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

If a user shuts down DHCP for the Gateway, they must set their desktop workstation to a static IP address that is within the address space of the Gateway. For example, if the Gateway generally uses 192.168.0.1, the static address must be another unused address. This allows the user to access the Gateway and enable DHCP.

International Issues

East Asian Input Mode changes on soft keyboards while in RDP session

Korean term for “No” has been corrected to follow National Academy of Korean Language recommendations

East Asian Input Mode changes on soft keyboards while in RDP session

When a user is in an RDP session, the active IME is located on the server. IME mode change notifications are not propagated to the device-side Input Method (IM). For Japanese and Chinese OS images, users can manually update the local IM mode to be in sync with the IME. The current design of the MSIMK Korean soft keyboard does not allow user to manually modify the mode.

Korean term for “No” has been corrected to follow National Academy of Korean Language recommendations

The Korean term for " No" has been modified to be grammatically correct. This change is going to be implemented in all Microsoft products and is in accordance with the National Academy of Korean Language recommendations.

Since the implementation of the change involves many products over time, the end user may encounter both forms in the product.

Multimedia Technologies Issues

_TGTCPUVARIANT=XSC should be used for IPP MP3 optimizations

_TGTCPUVARIANT=SH3DSP should be used for Keywest DSP WMV optimizations

Adding file extensions for MPEG-1

Windows Media Audio 9 Voice Codec not supported on SH3/SH3-DSP platforms

ASX files do not have an associated icon

SetTextAlign does not work with raster fonts

_TGTCPUVARIANT=XSC should be used for IPP MP3 optimizations

In order to include support for the IPP MP3 optimizations for the X-Scale Lubbock platform, the following variable should be set:

_TGTCPUVARIANT=XSC

_TGTCPUVARIANT=SH3DSP should be used for Keywest DSP WMV optimizations

In order to take advantage of the DSP optimizations made by Hitachi for the WMV codecs, the following variable must be set in addition to BSP_200MHZ=1:

_TGTCPUVARIANT=SH3DSP

Adding file extensions for MPEG-1

MPEG-1 files that use the .m1v or .mpe file extensions are not currently associated with the MPEG-1 decoder in DirectShow. To add the .mpe and .m1v file extensions for the MPEG-1 decoder, you need to add the following registry keys to the Directx.reg file:

[HKEY_CLASSES_ROOT\.mpe]

@="videofile"

"Content Type"="video/mpeg"

[HKEY_CLASSES_ROOT\.m1v]

@="videofile"

Page 33: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

"Content Type"="video/mpeg"

Windows Media Audio 9 Voice Codec not supported on SH3/SH3-DSP platforms

The Windows Media Audio 9 Voice Codec is not supported on SH3/SH3-DSP platforms.

ASX files do not have an associated icon

Although ASX files are properly associated with the Windows Media Player, they do not have the standard media icon.

SetTextAlign does not work with raster fonts

SetTextAlign does not have any effect on text alignment when using raster fonts.

Platform Builder Issues

Possible causes of download failures

Clear the Target Control window before downloading an OS image to the target device

Platform Builder may execute Windows CE Target Control commands from previous sessions

Use English mode keyboard on non-US English OS

Possible causes of download failures

The following list shows the reasons that Platform Builder may fail to download an image to a device.

• The device and the development workstation are on a different subnet. The device's BOOTME packets are UDP packets, which are typically not re-routed outside of a subnet. If the development workstation and the device are on different subnets, then it is possible that the workstation is not able to see the device and subsequently the image is not downloaded.

• The device does not have enough RAM to hold the image. This is typically the case for debug images where the image is downloaded to a certain point and after that Platform Builder displays an error saying "Download failed". Be sure that you have enough RAM to hold the image.

• The device bootloader is out of date. Use the correct version of the bootloader created along with the image. Typically, old bootloaders cannot handle images that are larger than 32 MB. Be sure that you use the latest version of Eboot.bin when using the Ethernet bootloader and Sboot.bin when using serial bootloader. These two binary files are generated in your flat release directory when you build an image.

Clear the Target Control window before downloading an OS image to the target device

You may want to clear the Target Control window before downloading an OS image to a target device. If you do not, the window may attempt to run commands from a previous session on the target device, and the target device will not boot.

To avoid the possibility of encountering this problem, before you disconnect Platform Builder from a target device, verify that there are no pending commands in the Target Control window. The Target Control window should show a Windows CE prompt.

Platform Builder may execute Windows CE Target Control commands from previous session

Occasionally, Platform Builder takes a Windows CE Target Control command from a previous session and applies it to the current session. When this happens, Platform Builder launches an unexpected process on the target device at boot time, causing an exception. Platform Builder displays the "GWES has not been started yet, run anyway (y or n)?" prompt in the Windows CE Target Control window but automatically proceeds to run without waiting for user input.

Use English mode keyboard on non-US English OS

Page 34: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

Using Windows CE .NET on a non-US English operating system when using a non-English mode keyboard has the following problems:

• The CESH startup server does not display Japanese paths properly.

• Platform Manager does not work on a Japanese path when you select the Directory containing last image booted by PB option.

• Using a bootable device with a Japanese name in KITL Transport does not work correctly.

To work around this problem, use the English mode keyboard on a non-US English operating system.

Platform Manager and Remote Tools Issues

Remote Performance Monitor is inaccurate for profiling some applications

Closing a remote tool while the tool is connected to a device results in error

Instrumenting an application for Remote Call Profiler using the WINCECALLCAP flag

Connecting a remote tool to a Windows CE 3.0–based device when both Windows CE 3.0 and Windows CE .NET 4.2 are installed

CeCap does not display Call Graph view in side-by-side installations of Windows CE .NET 4.1 and 4.2

Remote Performance Monitor cannot display process statistics for application with long file name

Remote Performance Monitor is inaccurate for profiling some applications

The Kernel Time, Processor Time, and User Time counters for the Thread, Process, and System statistics in the Remote Performance Monitor are inaccurate for applications that spend little time in the Kernel, User, or Idle modes. For more accurate results, use the Monte Carlo profiler.

Closing a remote tool while the tool is connected to a device results in error

If you run a remote tool over the KITL Transport for Windows CE, the target device may hang if you close the remote tool while it is connected to the target device. To avoid this problem, configure Platform Manager by taking the following steps before connecting the remote tool to the target device:

1. In the window for the remote tool, from the Connection menu, choose Configure Windows CE Platform Manager.

2. Select your device, and then choose Properties.

3. In the Windows CE Platform Manager Configuration dialog box, choose the Configure button adjacent to KITL Transport for Windows CE.

4. In the Configure Device Connection dialog box, clear the Check connection status check box.

Choose OK twice.

Instrumenting an application for Remote Call Profiler using the WINCECALLCAP flag

You can set the WINCECALLCAP environment variable to streamline the process of instrumenting an application for Remote Call Profiler.

To instrument an application for Remote Call Profiler

1. Open a command prompt build window.

2. Set WINCECALLCAP=1.

3. Set WINCEREL=1.

Page 35: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

4. 99Navigate to the directory that contains the Sources file for the application that you want to instrument.

5. Run the build -c command.

Connecting a remote tool to a Windows CE 3.0–based device when both Windows CE 3.0 and Windows CE .NET 4.2 are installed

When Windows CE 3.0 and Windows CE .NET 4.2 are installed on the same development workstation, remote tools for Windows CE 3.0 may not be able to connect to a Windows CE 3.0–based device. A remote tool for Windows CE 3.0 may display the following message:

The CESH Server for Windows CE reported the following error: Unable to load device side components. Please check server configuration settings.

To connect a remote tool for Windows CE 3.0 to a target device, set the value of the _FLATRELEASEDIR environment variable to the path for the release directory. Also, verify that the _FLATRELEASEDIR environment variable is defined in the User variables for <user name> list rather than System variables list.

CeCap does not display Call Graph view in side-by-side installations of Windows CE .NET 4.1 and 4.2

You cannot see a graphical representation of the profiled application in the CeCap Call Graph view when Windows CE .NET 4.1 and Windows CE .NET 4.2 are installed side-by-side on the same workstation. You can work around this problem for Windows CE .NET 4.1 by registering Cectrl.dll in C:\Program Files\Common Files\Microsoft Shared\Windows CE Tools\Platman\bin\. This prevents the CeCap Call Graph view from working correctly in Windows CE .NET 4.2. To restore the functionality in Windows CE .NET 4.2, register Cectrl.dll in C:\Program Files\Common Files\Microsoft Shared\Windows CE Tools\Platman\bin\wce420\.

Remote Performance Monitor cannot display process statistics for application with long file name

If an application has a long file name, one with 25 characters or more, the Remote Performance Monitor tool cannot display process statistics for the application and stops functioning. To avoid this problem, shorten the file name for the application.

SDK Roller Issues

Skin files cannot be in root directory

Additional EULA text must be saved as Unicode text

Standard SDK adds components to your image

Features not supported by Standard SDK or Pocket PC

Skin files cannot be in root directory

When exporting an SDK, skin files must be in a separate directory. They cannot reside in the root directory.

Additional EULA text must be saved as Unicode text

The SDK Roller allows you to append your own end-user license agreement (EULA) at the end of the Microsoft-provided EULA. If you choose to roll a Japanese EULA, the EULA .txt file must be saved as Unicode; otherwise, the text is displayed incorrectly.

Standard SDK adds components to your image

Including the Standard SDK in your OS image adds multiple features. For more information, see the online documentation for the Standard SDK.

Features not supported by Standard SDK or Pocket PC

The Pocket PC does not include support for SOAP in its images.

Page 36: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

The Standard SDK for Windows CE does not include support for Pocket PC interfaces from the following DLLs: Richink.dll, Mfcce300.dll, VoiceCtl.dll, InkX.dll, Doclist.dll, and Note_prj.dll. The Standard SDK for Windows CE also does not support the Pocket PC Today Screen plug-in model.

Shell and User Interface Issues

Taskman shell to be removed from future releases

Running the shell with a ROM-only file system

Start icon under the right corner of the Listview while opening the Release folder

New registry key for touch screens

Unsupported shell functions and messages

Shell does not run correctly when used with the ROM-only file system

CTRL+ALT+DEL key combination in software-based input panel does not display Task Manager

Pocket PC-style menu bars are supported

Recycle bin file overwriting issue

Taskman shell to be removed from future releases

The Taskman shell has been removed from the Platform Builder Catalog. Full source code is now provided for the Handheld PC-style shell. It is expected that in future releases, the Taskman shell will be removed altogether.

Running the shell with a ROM-only file system

The shell does not run correctly when used with the ROM-only file system. Your configuration must have FSYSRAM as one of its components for the shell to run properly.

Start icon under the right corner of the Listview while opening the Release folder

A Start icon was added in the right corner of the Listview in Explorer during page loading as well as shell browsing mode.

Unsupported shell functions and messages

The ES_EX_CONTROLPARENT and EM_INSERTLINKS messages, as well as the SHSetInputContext and SHGetInputContext functions are not supported.

New registry key for touch screens

The following registry entry is new for touch screens.

[HKEY_LOCAL_MACHINE\SYSTEM\GWE\Commctrl\DragMetrics]

"CXDrag"=dword:30

"CYDrag"=dword:30

The drag metrics are the number of pixels that the pen can move and not effect the current operation. This can be apparent when using the TAP-and-HOLD functionality on a touch-based screen.

The default value for DragMetrics is set to 30.

Shell does not run correctly when used with the ROM-only file system

The shell does not run correctly when used with the ROM-only file system. Your configuration must have FSYSRAM as one of its components.

CTRL+ALT+DEL key combination in software-based input panel does not display Task Manager

In a software-based input panel window, the CTRL+ALT+DEL key combination does not display Task Manager. On a keyboard, if you press the CTRL+ALT+DEL key combination, Task Manager appears.

Page 37: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

Pocket PC-style menu bars are supported

The AYGShell API extensions provide support for Pocket PC-style menu bars. The menu bar is a combination toolbar and menu that displays menu items and toolbar commands. It can be a substitute for using command bars and command bands. Place menu items appearing on the menu bar on the left-most portion of the bar. Tool buttons, both standard and application-specific, must appear to the right of the menus in the menu bar.

You can create a menu bar by calling the SHCreateMenuBar function. You can alter a menu bar programmatically by sending it any existing tool bar message, as well as the SHCMBM_GETSUBMENU and SHCMBM_SETSUBMENU messages.

Recycle bin file overwriting issue

The Recycle Bin overwrites an existing file if the file being restored has the same name and location. This is because the shell is using SHFileOperation with the FOF_SILENT flag set. To solve this problem, remove FOF_NOCONFIRMATION from the SHFileOperation call in the Recbin.cpp file.

Windows CE .NET Test Kit Issues

SH3 linker requires /align:4096

Device-side files for Application Verifier tool are not automatically detected

Confusing text in the Tux DLL Wizard

RDP User Scenario Performance Test requires an RDP test server

SH3 linker requires /align:4096

The SH3 linker creates a binary that crashes when executed unless the /align:4096 setting is added. The following example shows how to correctly set the SH3 linker.

clsh –Qsh3 test.c /link /align:4096

Device-side files for Application Verifier tool are not automatically detected

When you stop running the Application Verifier tool on the development workstation and remove the shimmed applications, the device-side files for the tool are not automatically deleted. After you close the window for the Application Verifier tool on the development workstation, you can safely delete the following device-side files for the tool from the root directory of the target device:

• Vlog.dll

• Vrfload.exe

• Symhlp.dll

• Shimexp.exe

• Htracker.dll

• Hleak.dll

• Appverifsh.dll

• Appverif.exe

• Appverif_client.exe

• Shim_*.dll

Confusing text in the Tux DLL Wizard

There is some confusing text on the New Project Wizard UI completion page for a Tux DLL project. The following text should appear in the completion page for the wizard.

When you click Finish to complete this wizard, Platform Builder sets up the framework for a Tux DLL. A Tux DLL is a module that defines the characteristics of a test for the Windows CE .NET Test

Page 38: Microsoft Windows CE .NET with Microsoft Platform Builder ... · Problem with the Platform Builder wizard file appearing in Visual C++ 6.0 wizard list ActiveSync 3.5 is required to

Kit (CETK). After completing the wizard, you can build a sample Tux DLL without modifying this framework.

You can also add your own code to the framework and then build the project to create a custom test for the CETK.

RDP User Scenario Performance Test requires an RDP test server

The RDP User Scenario Performance Test for the Windows CE .NET Test Kit (CETK) requires an RDP test server, such as a Windows XP-based development workstation, against which to test a Windows CE-based device. The WinBench 99 application must be installed on the RDP test server.

WinBench 99 is a product of VeriTest and must be licensed directly to you by VeriTest under the WinBench 99 EULA. For more information about the WinBench 99 application, see http://www.etestinglabs.com/benchmarks/winbench/winbench.asp.

To run the RDP User Scenario Performance Test, you must first run the RDPPerfConfig.exe application, which creates a test account, verifies that the WinBench 99 application is installed, and completes other tasks. If the WinBench 99 application is not installed, RDPPerfConfig.exe provides a link to a Web site from which you can download and install WinBench 99.

After you run the RDPPerfConfig.exe application, the first time you log in to the test account, the WinBench 99 application automatically starts. Follow the steps to accept the EULA for WinBench 99 and then close the WinBench 99 application. You are then logged off the test account and the RDP User Scenario Performance Test is ready to run.

© 1992 - 2003 Microsoft Corporation.

All rights reserved.