Release Notes for Windows Embedded Compact 7 with Update 3

3/14/2014

October 2011

This document provides installation instructions and describes known issues in Windows Embedded Compact 7 with Update 3.

Windows Embedded Compact Installation Instructions

Installation Known Issues

Development Known Issues

Windows Embedded Compact 7 Installation Instructions

Windows Embedded Compact 7 cannot be installed on computers that have previous versions of Windows Embedded Compact or Platform Builder installed. If you have a previous version installed, do one of the following:

  • Uninstall the previous version of Windows Embedded Compact and Platform Builder before installing Windows Embedded Compact 7.
  • Create a virtual machine and install Windows Embedded Compact 7 on the virtual machine. On a Windows 7 computer, you can use Microsoft Virtual PC. On a Windows Vista computer, you can use Virtual PC 2007. For more information about Virtual PC, see Windows Virtual PC.
  • Install Windows Embedded Compact 7 on a different computer.

Hardware Requirements

Your computer must meet the following hardware requirements:

  • Approximately 100 GB of free hard disk space
  • Minimum: 1.6 GHz CPU, 384 MB RAM, 1024 x 768 display, 5400 RPM hard disk
  • Recommended: 2.4 GHz or higher CPU, 2048 MB or more RAM, 1280 x 1024 display, hard disk with 7200 RPM or higher

Operating Systems

You can install Compact 7 on the following operating systems:

  • Windows XP Service Pack 3
  • Windows 7 Service Pack 2
  • Windows 7 and any available service packs

Software Requirements

Your computer must have the following software installed:

  • Visual Studio 2008 Professional (for all components)
  • Visual Studio 2008 Service Pack 1
  • .NET Framework 3.5

To use Microsoft Silverlight for Windows Embedded, you will also need to have the following software installed:

  • Microsoft Expression Blend 3

  • Windows Embedded Silverlight Tools

    Important

    By default, Windows Embedded Silverlight Tools is installed when you install Windows Embedded Compact 7. To verify this during installation, select Custom Install and confirm that the Windows Embedded Silverlight Tools option is selected.

Verify that your computer does not have previous versions of Windows Embedded Compact or Platform Builder installed.

To Install Windows Embedded Compact 7

Before you install, do the following:

  1. Back up important data and programs stored on your development computer.

  2. Have the product keys available to use during installation.

Step 1: Install Visual Studio 2008

Install Visual Studio 2008, including the Smart Device Programmability for Visual C++ if it is not already installed. Visual Studio 2008 Professional and Visual Studio 2008 Team Edition are both supported.

  1. Verify that you have administrative credentials on your development computer.

  2. Insert the first Visual Studio 2008 disc.

  3. In the Visual Studio 2008 Setup dialog box, select Install Visual Studio 2008.

  4. In the Welcome dialog box, click Next, and follow the instructions.

    Note

    You might be prompted to change discs during the installation process.

    After installing Visual Studio 2008, you might be prompted to install the MSDN Library for product documentation. This step is optional and the DVD that contains the MSDN Library is the Visual Studio 2008 DVD, which is included with the Compact 7 toolkit. For the most current documentation, see Windows Embedded Compact 7 on MSDN.

  5. Install Microsoft Visual Studio 2008 Service Pack 1.

Step 2: Install Microsoft Expression Blend 3

Important

If you will use Silverlight for Windows Embedded, installing Expression Blend 3 is a requirement. Otherwise, you may skip this step.

  1. Insert the Microsoft Expression Blend 3 disc, or download the software from the Microsoft Download Center.
  2. When the Welcome dialog box is displayed, click Begin Install, and then follow the instructions.

Step 3: Install Windows Embedded Compact 7

Platform Builder is included with Windows Embedded Compact 7 and installs on Visual Studio 2008 SP1.

Before you install the latest version of Platform Builder, you must uninstall earlier versions of Platform Builder and the Windows Embedded Compact Test Kit (CTK). For more information, see Windows Embedded Compact 7 Installation Instructions.

  1. Verify that you have administrative credentials on your development computer.

    Note

    After installation is complete, you do not have to be logged on with administrator credentials.

  2. Insert the first Windows Embedded Compact 7 disc

  3. Run WindowsEmbeddedCompact7.exe.

  4. When the Welcome dialog box is displayed, click Begin Install, and then follow the instructions.

    Note

    Installation times can vary according to the installation type.

  5. (Optional) To add support for specific microprocessors or additional features, select Custom Install, and follow the instructions.

Step 4: Install Windows Embedded Compact 7 Software Updates

  1. Review the release notes and do the following:
    1. Install Windows Embedded Compact 7 - Update 3.
    2. Review optional software updates at Microsoft Download Center and install if necessary.
  2. If you use a virtual CEPC, create a new virtual machine by using any updated Platform Builder source files included in the Microsoft software update. For more information, see Getting Started with Virtual CEPC.

Step 5: (Optional) Install Software Updates for Application Development by Using a Windows Embedded Compact 7 SDK

Important

This step is optional and is not required to install and run Windows Embedded Compact 7.

The following updates are required if you want to develop applications without using Platform Builder. Before you develop an application by using an SDK that your device manufacturer provides, you must first install the following updates:

  1. Install Visual Studio 2008 Update for Windows Embedded Compact 7.
  2. Install Windows Embedded Compact 7 ATL Update for Visual Studio 2008 SP1.

For more information about how to install a Windows Embedded Compact 7 SDK, see Install an SDK for Application Development.

Note

If you do not have an SDK, contact your device manufacturer and provide them with the information about how to create an SDK in Create an SDK for Application Development.

To Uninstall Windows Embedded Compact 7

To uninstall Compact 7

  1. In Control Panel, under Programs, click Uninstall a program.

  2. In Uninstall or change a program, select Windows Embedded Compact 7, and then click Uninstall.

To Modify Your Installation of Windows Embedded Compact 7 or Register for Windows Embedded Developer Update

To modify your installation or register for Windows Embedded Developer Update

  1. In Control Panel, under Programs, click Uninstall a Program.

  2. In Uninstall or change a program, select Windows Embedded Compact 7, and then click Change.

  3. Do one of the following:

    • To add or remove options installed with Compact 7, click Modify, and then click Next.

    • To register for Windows Embedded Developer Update so that your computer can obtain software updates when they become available, click Update, and then click Next.

Product and Documentation Updates

To get the latest product and documentation updates, use Windows Embedded Developer Update by selecting Check for Updates from the Help menu in Platform Builder.

Installation Known Issues

Restart, Hibernate, and Sleep Mode During Installation, Update, or Repair

Important

If a computer restarts, hibernates, or enters sleep mode while you are performing a Windows Embedded Compact 7 installation, update or repair, the Compact installer perceives the previous installation to have stopped and left the computer in an unknown state. It may then uninstall Compact completely.
To work around this issue, do not allow your computer to restart, hibernate, or enter sleep mode when performing an update.

Quiet Install Does Not Perform Disk Costing

Disk costing determines the amount of space required for setup. If you try to install Compact 7 at the command line using the -quiet flag, setup does not perform disk costing. As a result, on disks that do not have the required available free space, the installation stops and cached installation MSI files are removed.

Installation Resume After Failure

The resume logic for restarting an installation after the initial installation fails does not work. To resolve this issue, restart the installation manually.

Shared Source Installation

When you do a full installation or a custom installation with shared source selected, the Installation Source File dialog box appears. If you download options from the Internet, and the Allow downloading for all files box is checked, the installation of shared source fails. If this occurs, you cannot take action from the Installation Source File dialog box; you must cancel the installation. To work around this issue, use the original media installation disks provided with Compact 7.

Using the Expression Blend Templates Included in the Windows Embedded Silverlight Tools Installation

To use the Expression Blend templates for Silverlight for Windows Embedded that are installed with Windows Embedded Silverlight Tools, you must install Expression Blend 3 before you install Windows Embedded Compact 7. If Expression Blend 3 is not installed first, the application templates are not installed.

To download Expression Blend 3, see Microsoft Download Center.

If you are using Expression Blend 3 in a language other than U.S. English, the installed application templates do not display in the New Project dialog box. To resolve this issue, copy the files stored in %ProgramFiles%\Microsoft Expression\Blend 3\ProjectTemplates\en\Windows Embedded Silverlight Tools to the local user directory: %Users%\<user name>\Documents\Expression\Blend 3\ProjectTemplates\Windows Embedded Silverlight Tools.

Default Path

You cannot edit the default path during installation. To change the default path, in Platform Builder, on the Tools menu, click Options, expand Platform Builder, and then click OS Design and Build. In Default OS build tree (WINCEROOT), click Browse to select a different default OS build tree, and then click OK.

Cache Location

If you modify your installation later to manage your installed components, the install program uses files that it added to the cache location, %PROGRAMDATA%\PkgCache. Therefore, we recommend that you do not remove contents from the cache location after the installation is complete.

Compact 7 Components Open in Platform Builder

You cannot uninstall Compact 7 components while they are open in Platform Builder.

Development Known Issues

This section describes issues that might occur when developing with Windows Embedded Compact 7, and describes workarounds that might help you avoid errors or the need to troubleshoot. This document may change over time as various issues are resolved in each software update released with Windows Embedded Developer Update.

Documentation Known Issues

Updated Documentation for Windows Embedded Compact 7 - Update 3 Not Installed into Platform Builder

After you install Windows Embedded Compact 7 - Update 3, the documentation that is available from the Help menu in Platform Builder is not updated. To resolve this issue, use the documentation in the MSDN library, which includes updates and improvements made since the release of Windows Embedded Compact 7 – RDP RemoteFX Update. For the most recent version of the Compact 7 documentation, see Windows Embedded Compact 7.

Documentation in Visual Studio Help Menu Is Available Only in Administrator Mode

Visual Studio documentation for Windows Embedded Compact 7 is available only in Administrator mode. To resolve this issue, run Visual Studio 2008 as an administrator. When you open Visual Studio, click Start, right-click Microsoft Visual Studio 2008, and then select Run as administrator.

Platform Builder Known Issues

Project Properties Window Gives Invalid Pointer Error

When you are working on an OS design from a modified %_WINCEROOT% location, and you try to display the project properties of a newly created OS design, an error dialog is displayed with one of the following messages:

  • The operation could not be completed. Invalid pointer
  • Object reference not set to an instance of an object.

This issue occurs when the %_WINCEROOT% value is not propagated within Platform Builder. To resolve the issue, try one of the following options:

  • Log off and log on again to force a reopening of the project and a reset of the related registry key.
  • On the Tools menu, click Options, select Platform Builder, and then modify the _WINCEROOT value in the UI to populate the registry key.

Romimage.exe Build Tool

Non-XIP DLLs defined in the FILES section of a .bib file can be located only within the address range "0x40000000 - 0x5FFFFFFF". However, XIP DLLs defined in the MODULES section of a .bib file can be located within the address range "0x40000000 - 0x6FFFFFFF", which means that these DLLs can overlap the addresses of RAM-backed map files (0x60000000 - 0x6FFFFFFF).

The Romimage.exe build tool does not reject the DLLs that overlap with the RAM-backed map files, and it causes the image not to boot. To resolve this issue, do not locate XIP DLLs within the address range of RAM-backed map files (0x60000000 - 0x6FFFFFFF).

Building on Multi-Processor Machines

When you build an OS image on a machine with multiple processors, and if the CPPBROWSE=1 flag is set, the SYNCHRONIZE_BLOCK=1 flag should be set also to ensure that the build succeeds.

Compilers

The Tab character causes the command line for the assembler to insert a gap that the assembler command line misinterprets, resulting in an error during build. To resolve this issue, avoid using the Tab character in the SOURCES file.

Debugger and Connectivity

For serial connections or KITL connections, Platform Builder supports a maximum baud rate of 115200. To resolve this issue, use USB and TCP/IP KITL connections when higher baud rates are required.

Resource-only DLLs do not appear in the Modules window when the debugger is loaded. To resolve this issue, use gi mod to view the list of modules.

In multi-core systems, the debugger might not be able to attach to a process after it disconnects from another process because of a race condition that affects the way threads are initialized and terminated. To resolve this issue, exit the debugger and restart it.

Opening .kdmp or .sln Files in the Flat Release Directory Causes a Package Load Error

Double-clicking dump (.kdmp) files or Visual Studio solution (.sln) files in the flat release directory can cause issues with Platform Builder. To resolve this issue, complete the following procedure. You should then be able to double-click the dump file directly without error.

  1. On the Start menu, click Run.
  2. In the Run dialog box, type devenv /vsskippkgs, and then click OK to open another Platform Builder instance.
  3. On the File menu, click Open, and then click Project/Solution to open the dump (.kdmp) file.

"Dump File Cannot Be Written" Error Message

Writing the complete dump file from the Capture Dump File command on the Debug menu occasionally causes the message "Dump file cannot be written" to display after you attempt to create the file. To resolve this issue, try writing the file again.

Visual Studio 2008 ATL and MFC Does Not Support SMP Devices

ATL and MFC Smart Device applications might throw an exception or stop responding when they are executed on a Compact 7 device that supports Symmetric Multiprocessing (SMP).

To resolve this issue, request that Compact 7 run the application on only one processor by doing the following:

  1. In Solution Explorer, select the subproject.
  2. On the Project menu, click Properties.
  3. In the Properties for the smart device application, expand the Configuration Properties node.
  4. Expand the Linker node, and then select Command Line.
  5. In the Additional Options field, replace "7" with "5".

Visual Studio Smart Device Native Development Support for ARMv4i

Visual Studio Smart Device (VSD) native development compiles ARMv4i code for all Compact 7 ARM-based devices. SDK packages derived from OS designs for ARM microprocessors are designated as ARMv4i devices when they are installed into Visual Studio 2008 SP1. Smart Device applications built using those SDKs are compiled and linked as ARMv4i applications. Applications built using those SDKs can be deployed only to devices running the OS design from which the SDK was created.

To resolve this issue, add the following entries to the Microsoft.TypeMaps.xsl file (in Windows 7, this file is located in C:\ProgramData\Microsoft\corecon\1.0\addons\Microsoft.TypeMaps.xsl). These entries map the VSD tools to ARMv5, ARMv6, and ARMv7 devices. You can add the following items after the other ARM version definitions.

Note

If you already have the file Microsoft.Platform Builder 700.TypeMaps.xsl, it should create the following mappings automatically.

<QIS ID="84148224"> <!-- 0x05040000 ARMv6 -->
<PROPERTYCONTAINER>
<PROPERTY ID="default" Protected="true">ARMV4I</PROPERTY>
</PROPERTYCONTAINER>
</QIS>
<QIS ID="84148225"> <!-- 0x05040001 ARMv6 with FP -->
<PROPERTYCONTAINER>
<PROPERTY ID="default" Protected="true">ARMv4I</PROPERTY>
</PROPERTYCONTAINER>
</QIS>
<QIS ID="84213760"> <!-- 0x05050000 ARMv7-->
<PROPERTYCONTAINER>
<PROPERTY ID="default" Protected="true">ARMV4I</PROPERTY>
</PROPERTYCONTAINER>
</QIS>
<QIS ID="84213761"> <!-- 0x05050001 ARMv7 with FP -->
<PROPERTYCONTAINER>
<PROPERTY ID="default" Protected="true">ARMV4I</PROPERTY>
</PROPERTYCONTAINER>
</QIS>
<QIS ID="84279296"> <!-- 0x05060000 ARMv5 -->
<PROPERTYCONTAINER>
<PROPERTY ID="default" Protected="true">ARMV4I</PROPERTY>
</PROPERTYCONTAINER>
</QIS>
<QIS ID="84279297"> <!-- 0x05060001 ARMv5 with FP -->
<PROPERTYCONTAINER>
<PROPERTY ID="default" Protected="true">ARMV4I</PROPERTY>
</PROPERTYCONTAINER>
</QIS>

SDK Samples

Compact 7 includes SDK samples only in the following directories:

  • %_WINCEROOT%\Public\Servers\Sdk\Samples
  • %_WINCEROOT%\Public\Rdp\Sdk\Samples
  • %_WINCEROOT%\Public\Gdiex\Sdk\Samples
  • %_WINCEROOT%\Public\Directx\Sdk\Samples
  • %_WINCEROOT%\Public\Dcom\Sdk\Samples
  • %_WINCEROOT%\Public\COMMON\Sdk\Samples

Board Support Package (BSP) Known Issues

Windows Embedded Compact supports only the ARM, x86, and MIPS architectures. Other architectures, including the previously supported SH4, are not supported.

On CEPC and TI OMAP3530 BSPs, plugging flash drives with less than 1 GB storage into a USB hub with other USB flash drives might cause the drives to disappear from Windows Explorer after the OS is suspended and resumed. To resolve this issue, remove all flash drives and plug them back in. The flash drives will reappear in Windows Explorer.

Board Support Package (BSP) Test Suite

The BSP Test Suite is now a collection of BSP-specific tests that you access within the Windows Embedded Compact Test Kit (CTK) instead of a plug-in.

ARM Architecture Changes

If you use any of the supported ARM architectures, completely uninstall any previous version of Platform Builder and use the version that is installed with Compact 7.

On ARM-based platforms, you cannot use PAGE_GUARD if you have Data Execution Prevention (DEP) or non-execute (NX) support enabled.

For more information about ARM support in Compact 7, see this ARM BSPs (https://go.microsoft.com/fwlink/p/?LinkID=203130).

ARMv4i support is not available in Compact 7. ARMv5 is the earliest supported ARM architecture. You can no longer build or deploy images to ARMv4i platforms, including Device Emulator.

CEPC BSP

The backlight settings on the CEPC do not affect the timeout of the display. If no input is received for 10 minutes, the display times out, even if the backlight settings have disabled automatic turn-off. The PDA power manager that the backlight used is no longer supported. To resolve this issue, you can modify the device driver to provide a customized implementation of power management.

CEPC devices might not properly suspend when used as USB RNDIS Hosts. There is currently no workaround for this behavior.

The XXX_PowerDown and XXX_PowerUp implementation of the USB driver makes System API calls, which is not recommended by the power management specifications. For more information about the known issues with the USB driver, see USB Enhanced Host Controller Interface (EHCI) Driver.

When you select the Suspend command from the Start menu using a PS/2 keyboard, the CEPC is not properly suspended. The CEPC suspends, and then immediately resumes, even though there is no physical trigger that causes it to resume. There is currently no workaround for this issue.

If the serial debug port is disabled or set to any COM port other than COM1, the OS boot-up time is significantly increased. To resolve this issue, set "IMGENFORA=" or modify the "ComPort"= setting in the "COM1 for underlying GSM 07.10" section of the %_WINCEROOT%\public\cellcore\oak\files\cellcore.reg file.

Using CompositeFn on a PLX NET 2280 legacy USB controller does not allow all three USB-function client drivers to work simultaneously, because NET 2280 only supports six programmable USB endpoints. Using all three client drivers simultaneously requires eight programmable USB endpoints. To resolve this issue, use the NetChip™ NET 2282 USB controller.

If you use the BLDR boot loader on a CEPC, you cannot open an RDP session that has a color depth of 24-bits or 32-bits. To resolve this issue, use the LoadCEPC boot loader with one of the following options:

  • When using the onboard VGA Socket: loadcepc /v /L:640x480x32
  • When using an ATI Rage XL Card Socket: loadcepc /v /L:800x600x24

Freescale i.MX27 BSP

When a mass storage device such as a USB pen drive is attached to the USB OTG port of a Freescale i.MX27 device, the debug output displays the messages DataBufferError in IN and CQTransfer:Halted. USB functionality is not affected by these messages; the mass storage device is detected, and USB host tests are executed.

Freescale i.MX31 3DS BSP

i.MX31 3DS images do not build in debug or checked configurations because of a missing debug or checked library, Pwrtstutil.lib. To resolve this issue, remove the "TEST" line from the file %_WINCEROOT%\platform\iMX313DS\SRC\dirs. This workaround disables compilation of the platform-specific tests that require this library.

When you use ActiveSync or USB KITL, the desktop computer OS might not detect the device. To resolve this issue, use a self-powered USB hub to connect the i.MX31 3DS board to the USB port on the desktop computer.

For additional USB connectivity issues, see USBDBG RNDIS Driver Connectivity with Windows 7.

The Freescale i.MX31 3DS accelerometer driver supports both level detection and pulse detection. After you configure the driver to use level detection or pulse detection mode, wait for named OS events to be notified of level detection or pulse detection interrupts. After the named OS event is set, the caller can read the accelerometer's Detection Source Register [0xA] to determine the exact source of the interrupt.

Immediately after you set the accelerometer mode to ACC_MODE_LEVELDETECTION or ACC_MODE_PULSEDETECTION, the named OS event might be incorrectly triggered. A subsequent read of the Detection Source Register (using IOCTL_ACC_GET_STATUS) will reveal that none of the interrupt bits have been set. To resolve this issue, check the Detection Source Register and then ignore this incorrect event, or else preemptively call the function WaitForMultipleObjects with timeout set to 0 (zero) to clear the events.

The post-filter driver component of the Freescale image processing unit (IPU) uses the AllocPhysMem function to allocate physical memory, and then uses the VirtualCopyEx function with the fdwProtect parameter set to PAGE_PHYSICAL to map the physical address returned by AllocPhysMem. Any use of AllocPhysMem with VirtualCopy where the fdwProtect parameter is set to PAGE_PHYSICAL can cause incorrect physical-page reference counting, and might cause system instability. The post-filter driver component is not a supported component of Compact 7.

It is not possible to update the MAC address of the SMSC LAN9217 Ethernet controller through the boot loader menu. The LAN9217 Ethernet controller always reads the MAC address from the EEPROM.

The general-purpose timer (GPT) clock on the i.MX31 3DS provides inaccurate or inconsistent results during stress testing. There is currently no workaround.

ICOP eBox 3300 BSP

The USB host controller might not work correctly when it performs interrupt-type transactions. LCD display is supported in this BSP but has not been tested. There is no native IDE mode support.

If you build an image using the Embedded Device with Silverlight XAML design template, you will see the following access violation when you try to download it to a device:

4294770055 PID:400002 TID:110004a Unknown: DEBUGCHK failed in file e:\enlistments\ebox3300\chelan-v1\private\winceos\coreos\gwe\mgdi\base\gdi.cpp at line 3008 
4294770060 PID:400002 TID:110004a !!ERROR: Calling LeaveCriticalSection without calling EnterCriticalSection
4294770060 PID:400002 TID:110004a          dwThId = 0110004a, vpcs->OwnerThread = 00000000, lpcs = efd19fc4
4294770067 PID:400002 TID:110004a Exception 'Access Violation' (0xe): Thread-Id=0110004a(pth=c0430690), Proc-Id=00400002(pprc=81dba108) 'NK.EXE', VM-active=01d9001a(pprc=c042c1c0) 'udevice.exe'
4294770067 PID:400002 TID:110004a PC=efc78de4(gwes.dll+0x000b8de4) RA=efc78d81(gwes.dll+0x000b8d81) SP=cd03fb30, BVA=000000a0
4294770076 PID:400002 TID:110004a Eax=cd05a870 Ebx=00000000 Ecx=00000090 Edx=cd05a870
4294770076 PID:400002 TID:110004a Esi=00006000 Edi=00000000 Ebp=cd03fb3c Esp=cd03fb30 Eip=efc78de4
4294770076 PID:400002 TID:110004a CS=0019 DS=0040 ES=cd050040 SS=0021 FS=efec0060 GS=cd030078
4294770076 PID:400002 TID:110004a URtlDispatchException: returning failure. Flags=0

To resolve this issue, enable SYSGEN_DDRAW after you create the Embedded Device with Silverlight XAML OS design, as follows:

  1. Open the Catalog Items view.
  2. Navigate to the Graphics subnode of Graphics and Multimedia Technologies.
  3. Select DirectDraw.
  4. On the Build menu, point to Advanced Build Commands, and then select Clean Sysgen (blddemo clean -q).
  5. After you build the OS design into a run-time image, download it to the device.

NEC Electronics NE1TB Capricorn BSP

The following features are not supported in the NE1TB Capricorn BSP:

  • Suspend and resume
  • Power management
  • PCMCIA
  • Serial ATA (SATA)

Samsung SMDK6410 BSP

You might not be able to successfully download the boot loader to NAND for the first time by using the DNW tool from a computer running Windows 7. To resolve this issue, first use the DNW tool from Samsung to download the boot loader to RAM, and then use the USB serial transport and Platform Builder to download the boot loader to flash.

The Samsung SMDK6410 OAL image does not load if the ENABLE_OAL_ILTIMING variable is set.

Only one of two HS/MMC memory card slots (channel 1) is working. Only one of the two USB host ports is connected to the USB host controller. The BSP does not contain a general-purpose Ethernet driver. Use Ethernet kernel independent transport layer (KITL) or USB RNDIS KITL for a shared network connection over VMINI. Some touch panels may require calibration at startup. A calibration application is included with the BSP.

SDBUS does not detect an SDIO device from SMDK6410 SDHC after suspending and resuming the device.

The USB function controller driver only works with USB mass storage, RNDIS, and serial class USB function client drivers. Other USB function client drivers are not supported.

The Samsung SMDK6410 BSP might experience connectivity issues with Ethernet-based KITL connections. To resolve this issue, use USB-based KITL connections instead.

On the Samsung SMDK6410 BSP platform, the BSP_NOOES flag is automatically set. If OpenGL API rendering is enabled in Silverlight for Windows Embedded, you must unset the BSP_NOOES flag; otherwise, access violation errors will occur in the Samsung OpenGL driver when the platform includes XamlRuntime.dll.

Sigma Designs SMP865x BSP

The Ethernet driver incorrectly indicates broadcast packets to the Network Driver Interface Specification (NDIS) driver, even when the NDIS driver has requested filtering of broadcast packets. This results in debug messages and minor performance impact. There is currently no workaround for this issue.

The Sigma SMP865x platform does not support changing the display resolution at run time with the ChangeDisplaySettingsEx function. You can configure the resolution at startup by using the registry.

Using 3Gbps SATA drives on the Sigma SMP865X platform causes direct memory access (DMA) controller failures. To resolve this issue, use jumper cables to configure the SATA drives to the 1.5-Gbps configuration.

The EHCI and OHCI controllers on the Sigma SMP865x platform are linked, so to enable USB functionality, you must set BSP_SMP865X_OHCI=1.

To play AAS, DTS, ADTS, and AC3 audio files and .asf video files on an SMP865x platform, you need a private security token for each board. Contact Sigma Designs, http://www.sigmadesigns.com/, to obtain a token and instructions on how to use it.

When you play a video file, the active movie window is not released. If you play another video, a second window opens. There is currently no workaround for this issue.

The Video Decoder does not always provide the correct video dimension to the renderer. There is currently no workaround for this issue.

The DirectDraw driver cannot create surfaces in system memory and does not render some colors correctly. It also does not support video ports. There is currently no workaround for this issue.

After USB devices are plugged in and unplugged multiple times, they are not detected until you reboot the device.

TI OMAP3530 BSP

The TI OMAP3530 BSP does not recognize the 2 GB Transcend MultiMediaCard MMC card.The TI OMAP3530 cannot be used as a USB loopback reflector. The DLLs LpBkCfg1.dll and lpBkCfg2.dll do not load when the s lufldrv command is issued.

When you manually resume the device from the suspend system power state by pressing the PWR_ON button, the UserActivity timer's ACTIVE event is not set, nor is the respective INACTIVE event.

When using the USB Enhanced Host Controller Interface (EHCI) controller on the TI OMAP3530 Evaluation Module 2 (EVM2), plugging a low-speed or full-speed device into the USB port on the EHCI port causes the port to become non-functional until a reboot. To resolve this issue, use a USB 2.0 hub between the USB port and the low-speed or full-speed device.

The EHCI port stops functioning after you use the warm reset (warm_rst) button, which causes USB devices such as keyboards, mice, or USB drives to not be detected properly. To resolve this issue, use the reset (omap_rst) button to reset the device.

While playing media files on the TI OMAP3530, if the Media Player window is moved or rotated, horizontal lines appear on the screen and block the video playback. To resolve this issue, do not move the Media Player window after the file starts playing.

Once the RNDIS function driver is loaded on the TI OMAP3530, it cannot be unloaded until the device is restarted.

TI OMAP3530 USB RNDIS device functionality does not work correctly. Development computers and other Compact 7 devices cannot recognize the TI OMAP3530 as an RNDIS function device. Data transfer between a TI OMAP3530 host and USB RNDIS devices fails.

On the TI OMAP3530, the divided-by-zero exception, which occurs when code attempts to divide a number by zero, is not thrown. In this case, the cumulative flag in the FPSCR is set to 1, and the result is a NaN as defined by IEEE754.

Devices connected to the OTG port of TI OMAP3530 occasionally do not enumerate during the boot process. To resolve this issue, remove and reinsert the cable connected to the OTG port.

The Ethernet driver on the TI OMAP3530 occasionally becomes unresponsive during data-intensive operations. To resolve this issue, restart the device.

The TI OMAP3530 overrides the common registry settings for the USB function driver class and sets the registry value to Serial, regardless of which USB function SYSGEN is set. To resolve this issue, modify the %_WINCEROOT%\platform\TI_3530_EVM\files\platform.reg file to select the desired driver in the HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers registry key.

The following issues can occur when Windows Embedded Compact 7 is used with the TI OMAP3530 BSP, which uses POWERVR SGX Graphics Accelerator DDK version 1.3:

  • A data abort exception occurs in nullws.dll when you boot a run-time image that has both the POWERVR SGX Graphics Accelerator device drivers and the OpenGL compositor. To resolve this issue, use the GDI compositor instead.
  • Applications or tests that use OpenGL driver appear to stop responding when the device goes to SYSTEMIDLE state, because the OpenGL driver stops rendering but the display does not turn off. Tapping the LCD screen brings the device back to the ON power state, and the OpenGL driver resumes rendering.
  • A prefetch abort exception occurs when the Internet Explorer Embedded browser uses OpenGL drivers for hardware acceleration.
  • The OpenGL driver does not synchronize eglSwapBuffers with the display vertical synchronization (VSYNC) rate, causing decreased graphics performance in Silverlight for Windows Embedded.

The POWERVR SGX Graphics Accelerator DDK version 1.5 is available from Texas Instruments.

vCEPC (Virtual CEPC) BSP

Unlike in the Device Emulator, COM port output in the vCEPC BSP cannot be redirected to a console window. The COM port of a vCEPC can only be output to a file, rerouted to the physical COM port of the host computer, or rerouted to a named pipe (if you have installed a named pipe terminal).

For Windows Virtual PC (WVPC) with Windows 7, currently only the English (United States) keyboard is supported. There is no support for keyboard languages other than U.S. English.

The vCEPC BSP does not boot up properly when using Windows Virtual PC for Windows 7 on a 64-bit AMD processor running 32-bit Windows 7. To resolve this issue, boot the Windows Virtual PC using a virtual floppy drive. For more information, seehttps://go.microsoft.com/fwlink/p/?LinkId=206041.

If you created a virtual hard disk (VHD) image for virtual CEPC in a previous release of Compact 7, you must create a new virtual hard-disk image before using it with virtual CEPC in Compact 7. VHD images created in earlier versions of Compact 7 are not compatible with this version of virtual CEPC.

x86 BIOS Loader

The build fails in the %_TARGETPLATROOT%\SRC\BOOTLOADER\BIOSLOADER\BOOTSECTOR\EXFAT\ path. To build the path, it needs the 16-bit Microsoft Macro-Assembler (MASM) and linker to build the path. This issue applies to the following x86-based platforms: CEPC, ICOP eBox 3300, and vCEPC.

To resolve this issue, download the 16-bit MASM and linker from the following locations:

Windows Embedded Compact Test Kit (CTK) Known Issues

A new version of the Windows Embedded Compact Test Kit (CTK) is included in Compact 7. The Windows Embedded CTK User Guide.pdf, located in C:\Program Files\Windows Embedded Compact 7\Documentation, contains more detailed information and a quick-start guide on how to use the Windows Embedded Compact Test Kit (CTK).

App Verifier is not part of the Windows Embedded Compact Test Kit (CTK). It has been replaced with Resource Leak Detector (RLD), which is one of the Remote Tools available in Platform Builder.

You might encounter false failures when running the Windows Embedded Compact Test Kit (CTK) test 1795 of the Direct Draw Interface Test (ddints.dll), because it tests functionality to unlock a surface by using Unlock(), but accesses the pixel pointer again without locking. To resolve this issue, do not run this test.

Follow these instructions to build the Windows Embedded Compact Test Kit (CTK) tests from the installed shared source. For more information about shared source, see the Windows Embedded website.

Requirements for building the Windows Embedded Compact Test Kit (CTK) tests are as follows:

  • Visual Studio 2008 Professional
  • Microsoft Platform Builder for Windows Embedded Compact 7
  • Windows Embedded Compact 7 installed with shared source code

To build the tests in the shared source

  1. In Visual Studio, create a new OS design project.

  2. Select the BSP (CPU architecture) for which you want the binary to be built.

  3. Select the design template - for example, Portable Media Player, Handheld, etc.

  4. On the Build menu, click Open Release Directory in Build Window.

  5. In the build window, navigate to the Test folder; for example, C:\WINCE700\PRIVATE\TEST.

  6. At a command prompt, enter Build -c, press Enter, and then wait until the build completes. The test binaries are copied to C:\WINCE700\PUBLIC\TEST\OAK\TARGET\.

  7. Select the CPU folder you chose in step 2.

  8. Copy the built test files to the Windows Embedded Compact Test Kit (CTK) installation location; for example, C:\Program Files\Windows Embedded Compact Test Kit\tests\target\<cpu>\retail", assuming the root directory is C:\. For the "<cpu>" part of the path, this is the same CPU you chose in step 2.

  9. Run the test from the Windows Embedded Compact Test Kit (CTK).

When the device is suspended while it is connected to the Windows Embedded Compact Test Kit (CTK), it might disconnect or stop responding when it is resumed after a delay of more than 30 seconds.

When documentation for a test is not available, the Windows Embedded Compact Test Kit (CTK) displays "Program could not display page…" instead of leaving the page blank.

When using Windows 7 or Windows 7, you must start the Windows Embedded Compact Test Kit (CTK) and Platform Builder with the same privilege level. For example, if Platform Builder is opened with administrator privileges, the Windows Embedded Compact Test Kit (CTK) must also be opened with administrator privileges. This is due to permission issues that might occur when files are copied from the installation directories to the device.

In Compact 7, the following tests are compatible with the Graph Tool:

  • perf_winsock2
  • perf_ddraw
  • fsperflog
  • perf_bluetooth (results can be viewed only with the GraphTool User Interface application)
  • usbperf
  • The following Silverlight for Windows Embedded performance tests:
    • Applications Load - Browser
    • Applications Load - Music Player
    • Applications Load - Picture Viewer
    • Applications Load - Sample Home Screen
    • Applications Load - Video Player
    • Background Animation
    • Image Manipulation
    • Screen Transition

Tests from previous Windows Embedded Compact releases of the Windows Embedded Compact Test Kit (CTK) are not compatible with Compact 7.

In order for the Windows Embedded Compact Test Kit (CTK) to obtain the correct device architecture during the connection process, CEInstructionSet must be set in the BSP. CEInstructionSet is typically set in the OEMInit function in the %_WINCEROOT%\platform\<bsp>\src\oallib\init.c file.

The Windows Embedded Compact Test Kit (CTK) might fail to connect to the device because of one or more of the following reasons:

  • The device does not have the supported CPU architecture.
  • The release folder from where the image is loaded is not writeable.
  • There are issues with Remote Tools Framework (RTFx).

When the "File System Performance" test is run, the test must have exclusive access to the log files that it creates in the file system. Some tests require writing and reading data to a file, and if those tests do not have exclusive access, those tests fail. To resolve this issue, stop any services that monitor the file system and affect exclusive access to the file. To stop the services or processes, do the following:

  1. Type gi proc in the Windows CE Command Prompt window.
  2. Find the process number that corresponds to the service you want to cancel.
  3. Type kp <proc#> in the command prompt window, where <proc#> is the process number from step 2.

Windows Embedded Compact Test Kit (CTK) Test Failures

When you run the USB Test Suite in Full Speed mode by using a hub, also called the "golden bridge" test, the following test cases fail inconsistently: Sub Test ID 1004, 1005, 1013-1015, 1103, 1104, 1113, 1114, 1203, 1204, 1213, 1214, 1303, 1304, 1314, 1504, 4009, and 4012. This is a known issue, and no workaround is currently available.

For a list of known Windows Embedded Compact Test Kit (CTK) test failures for specific hardware platforms, see Platform Specific Windows Embedded Compact Test Kit (CTK) Test Issues on the TechNet wiki page for Compact 7 at https://go.microsoft.com/fwlink/p/?LinkId=221612.

Device Driver Known Issues

Backlight Device Driver

The backlight timeout feature is not controlled by the Display application in the Control Panel when the driver uses the public backlight MDD. The backlight remains on indefinitely instead of turning off when the timeout period has elapsed. Platforms that use this public MDD are Freescale i.MX27, Freescale i.MX31 3DS, and Samsung SMDK6410.

Supported KITL Ethernet Devices

The following KITL Ethernet devices are supported in Compact 7:

  • Advanced Micro Devices (AMD) AM79C973 PCI Ethernet Controller
  • Cirrus Logic Crystal CS8900A Embedded Ethernet Controller
  • Digital Equipment Corporation (DEC) 21140 Ethernet Controller Driver
  • RealTek RTL8139 Ethernet Controller
  • Novell NE2000 Ethernet Driver

The following Ethernet adapters and USB controllers are no longer supported in Compact 7:

  • 3Com Etherlink 3C90x
  • DP83815 Ethernet Media Access Controller
  • NetChip™ NET 2890 USB Interface Controller

Platform-Dependent Driver (PDD) Interface Updates Might Cause Build Break

The USB Debug (USBDBG) KITL model device drivers (MDDs) for serial transports and RNDIS transports have been updated, therefore linked platform-dependent drivers (PDDs) that use the new implementation must be updated. The updated code is located in %_WINCEROOT%\platform\common\src\common\kitldrv\usbdbg.

Printer Driver Sysgen Variables

The following SYSGEN variables are not in the catalog:

  • SYSGEN_PRINTING (the printing port and printing status report libraries)
  • SYSGEN_PCL (a sample printer driver for supporting printers that are compatible with Printer Control Language (PCL))

Touch Device Driver MDD Change Requires a PDD Change

If the touch screen device driver uses the new MDD/PDD interfaces and calls pfnReportSample, you must update it. The callback function pfnReportSample is removed, and device drivers that use the new touch device driver MDD/PDD interface available in Compact 7 must be updated to use the callback function pfnReportSampleSet (of type PFN_TCH_MDD_REPORTSAMPLESET).

To determine whether the device driver must be updated:

  • During startup of the driver, the following message appears in debug output if you need to update the driver.

    Touch: *** WARNING *** Using callback that will be removed soon! Use pfnMddReportSampleSet instead!
    

To resolve this issue:

  1. In the device driver PDD interface, find the code similar to the following:

    pfnMddReportSample(m_mddContext, *pTipStateFlags, x, y);
    
  2. Replace the previous code with the following:

    CETOUCHINPUT input; 
    if (ConvertTouchPanelToTouchInput(*pTipStateFlags, x, y, &input)) {
      pfnMddReportSampleSet(m_mddContext, 1, &input);
    }
    

USBDBG RNDIS Driver Connectivity with Windows 7

When using USBDBG RNDIS as the device connectivity method, Windows 7 environments require additional configuration to enable proper connectivity. To resolve this issue, you may need to make one or more of the following configuration changes:

  • Assign a static IP on the device (using the device boot loader) in the range 169.254.XXX.XXX.
  • Set the subnet mask on the device (using the boot loader) to 255.255.0.0.
  • Disable the Firewall Client Agent, Windows Firewall, and IPsec Policy Agent services from services.msc on the development computer. Another way of accomplishing this is to enter "net stop bfe" from an administrator command prompt. From services.msc, ensure that the stopped services do not automatically restart.
  • Unplug the network cable on the development computer to prevent the automatic settings changes that are performed in some workplaces.
  • If a driver installation fails, use the .inf file available in the following shared source path: %_WINCEROOT%\platform\common\src\common\ethdrv\rne_mdd\vista\cerndis_vista.inf.

USB Function Composite Driver

If your device uses the NET 2280 PCI to Hi-Speed USB 2.0 peripheral controller from PLX Technology, it might be unable to switch from full-speed mode to high-speed mode when you use a composite USB device driver.

USB Enhanced Host Controller Drivers (EHCD)

For EHCD drivers that use the common EHCD MDD with a platform-specific PDD, the PDD HcdPdd_Open function must return the value returned from HcdMdd_CreateHcdObject. This value must be converted to a DWORD type as an open context handle that is passed into subsequent IOCTL calls into the MDD.

USB EHCD drivers that used the common MDD without implementing this PDD update will experience a boot-time data abort or access violation exception in the EHCD driver if the power-capability IOCTLs are issued to the MDD during driver initialization.

USB Enhanced Host Controller Interface (EHCI) Driver

The USB EHCI driver has not been tested for compliance, which can cause problems in data transfer, power management, and enumeration.

There is a limit of 76 KB (on EHCI) on the transfer buffer size that EHCD supports. However, this limit is not exposed to the client driver. To resolve this issue, customize the client driver to meet this transfer-buffer limit. Doing this allows chunk transfers and helps achieve better performance.

USB Host Driver

When you connect multiple USB mass-storage devices to a hub, and then plug the hub into a Compact 7 device, not all the devices are properly enumerated. To resolve this issue, detach the unrecognized device from the hub and reattach it.

Under some circumstances, unplugging a USB CD-ROM/DVD-ROM drive and then plugging it back in before the OS removes the device from Windows Explorer prevents Windows Explorer from recognizing the drive and assigning it a drive letter. To resolve this issue, unplug the drive and plug it back in.

USB Host Mass Storage Driver

Transaction-safe FAT file system (TexFAT) requires that sector writes are durable, so that when IOCTL_DISK_WRITE returns, subsequent calls to IOCTL_DISK_READ for the same sector return the same bytes that were written. TexFAT calls IOCTL_DISK_FLUSH_CACHE periodically to ensure that the sectors are written to persistent storage and that the sector writes are durable. The sample USB driver does not implement IOCTL_DISK_FLUSH_CACHE, and thus cannot guarantee that the sectors are actually written to persistent storage on a USB storage medium.

USB Serial Driver

The USB serial driver cannot establish communication between a master device and a subordinate device by using the specified COM port when ActiveSync SYSGEN variables are present in an OS design. To resolve this issue, remove the following SYSGEN variables:

  • SYSGEN_AS_AIRSYNC
  • SYSGEN_AS_BASE
  • SYSGEN_AS_FILE
  • SYSGEN_AS_MAIL
  • SYSGEN_AS_PIM

However, test ID 20 of the pserial.dll test is still aborted as a result of this known issue.

USB Audio Driver

When two USB audio devices that were connected to a device are removed, an access violation error occurs in usbaudio.dll.

PC Card (PCMCIA) Support

PCMCIA (PC Card) is not supported in Compact 7. If you experience errors building your OS because it supported PCMCIA buses, remove references to the deprecated components.

Device Driver for a Storage Device

For a device driver for a flash memory device, when you write a set of sector range/sector data pairs to the storage media by using IOCTL_FLASH_WRITE_LOGICAL_SECTORS, and if the sector is a damaged sector on the storage media, the operation to write data occasionally does not work correctly.

File System Known Issues

AutoLoad Device Registry Keys

In AutoLoad device registry keys, make sure that the first seven characters of DeviceName values are unique. The file-system manager internally limits the device name size to seven characters, truncating any remaining ones. If the first seven characters are not unique, the file-system manager sees the device name as a duplicate of an already existing device, and does not attempt to load it.

The registry keys are located in HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\<DeviceName>.

Memory Known Issues

Compact 7 has increased memory usage, so devices with less than 64 MB of memory might become unusable due to out-of-memory errors. When an attempt is made to exceed the available memory, the OS closes processes to free memory.

To resolve this issue, in Platform Builder, in the Target Control command prompt, use the kill process (kp) command to stop SmartSearch.exe from running. This frees sufficient memory to make the device usable for development. SmartSearch.exe is the primary UI for dialing the phone. If you cannot stop it from running, there is currently no other workaround.

Microsoft ActiveSync and MAPI Known Issues

Windows Mobile Device Center (WMDC) v6.1 does not synchronize correctly with Office 2010 64-bit (x64) version. See 64-bit editions of Office 2010 (https://go.microsoft.com/fwlink/p/?LinkId=201061) for more information.Recurring appointments might not work correctly using desktop sync if Outlook 2010 is installed on the computer.

To use Windows Embedded Compact Messaging API (CE MAPI) functionality in an application created using Windows Embedded Silverlight Tools, add #include "mapidefs.h" immediately following the statement #include "stdafx.h". Otherwise, a compiler error occurs.

MTP Responder Known Issues

Multiple MTP connections, or connections through multiple network interface cards (NICs) from a Compact 7 device, are not supported. Only the first connection successfully connects.

Multimedia Known Issues

Backward compatibility for features on Compact 7 that run on a BSP built for a previous version of Windows Embedded Compact is not guaranteed.

UPnP on IPv6 is not supported. There is currently no workaround for this issue.

When you use UPnP to implement Digital Living Network Alliance (DLNA) functionality, we recommend that you use UPnP over a WinInet network connection.

Audio Stutter with PlaySound Function

In Compact 7, the PlaySound function sends a limited amount of data to the software mixer. The mixer does not get new data by using PlaySound until the device driver returns mixer buffers. As a result, audio drivers with buffer sizes larger than the total size of PlaySound buffers might cause intervals of silence in the software mixer, resulting in audio stutter.

To resolve this issue, configure PlaySound buffers via the registry to be large enough to fill the driver's buffers. PlaySound registry settings are documented in the help topic "Waveform Audio Registry Settings."

Buffering Stream Filter

While playing a media file in which the Buffering Stream Filter is used in the filter graph, you might encounter networking errors or media playback errors. These errors are caused when the Buffering Stream Filter receives conflicting information from the IAsyncReader and IAsyncReader2 interfaces. To resolve this issue, do not use the IAsyncReader and IASyncReader2 interfaces simultaneously with the Buffering Stream Filter.

To use the Buffering Stream Filter, you must add one or more of the following filters to your OS design.

  • HTTP Streamer Filter (SYSGEN_DSHOW_HTTPSTREAMER)
  • Local File Streamer (SYSGEN_DSHOW_LOCALSTREAMER)
  • Wave/AIFF/au/snd File Parser (SYSGEN_DSHOW_WAV)
  • Still Image Decoder Filter (SYSGEN_DSHOW_IMAGEDECODER)
  • MPEG-4 Demultiplexer (SYSGEN_DSHOW_MP4DEMUX)
  • MPEG-2 Demultiplexer (SYSGEN_DSHOW_MPEG2DEMUX)
  • MPEG1 Splitter (SYSGEN_DSHOW_MPEGSPLITTER)

Note

To minimize your run-time image size, include the smallest appropriate filter.

DirectShow and CMYK Color Format

Compact 7 does not support GUIDs for CMYK (cyan, magenta, yellow, and key (black)) color formats.

Media Library Parser Support

Media Library supports the following file parsers:

  • Music: .asf, .wma, .mp3
  • Videos: .asf, .wmv, .avi
  • Photos: .jpg, .jpeg, .png, .tif, .tiff, .bmp, .gif

To parse any other media formats in the Media Library, you must write custom parsers based on the file format.

Media Library does not support generating song album art and video thumbnails for local media. Therefore, artwork is not displayed in the Music Player and Video Player for media in local storage.

When you monitor a folder for media files, using a directory to which constant changes that are unrelated to media files are made (for example, the \temp directory) triggers an infinite loop when the media library parses the output file from mlparser. Setting dynamic folders as a watched location in MLConfig.xml is not recommended.

Video Mixing Renderer

The overlay mixer mode on the video mixing renderer filter does not work in Compact 7.

Server-Side Playlists (SSPL)

You might not be able to play more than one server-side playlist in each OCX session. To resolve this issue, open a separate OCX session for each playlist.

JPEG format is not supported in a server-side playlist. To resolve this issue, encode a .jpeg file as a .wmv media, file and then add it to the playlist.

Logging information might be missing or incorrect in a server-side playlist. There is currently no workaround for this issue.

Gesture Events Work Only When the User Flicks Inside the Control Panel of Photo Viewer

In the photo viewer application of media player, if a user flicks through photos by flicking the photo instead of flicking the Control Panel of the photo viewer application, the message queue does not process the gesture event and the UI does not respond to the gesture. To work around this issue, users must flick the Control Panel of the photo viewer instead of the photos.

Networking Known Issues

SIM Manager

New applications that use Subscriber Identity Module (SIM) APIs must link with sim.lib and not with cellcore.lib. For more information, see SIM Manager Functions.

Note

Compact 7 provides a version of cellcore.lib that also supports the SIM APIs, in order to provide backward compatibility for compiled applications from previous versions of Windows Embedded Compact.

Remote Desktop Connection and RemoteFX Known Issues

Remote Desktop Protocol (RDP) 7.0 Codecs

In order to use RDP version 7.0 codecs for 32-bpp sessions to a Windows 7 or Windows Server 2008 R2, the x86-based client CPU must support the Intel Streaming SIMD Extensions 2 (SSE2) instruction set. Otherwise, the RDP 7.0 codecs are not used when you establish an RDP session.

RemoteFX: Key Presses Produce Click Sounds

By default, Compact 7 produces a click sound whenever a key is pressed. To disable this audio output, set the following registry key in the Wceshellfe.reg file in the %_WINCEROOT%\public\wceshellfe\oak\files folder:

[HKEY_CURRENT_USER\ControlPanel\Volume]  
"Key"=dword:00000; disables the key clicks

RemoteFX Sessions Do Not Support Large or Color Cursors

In Compact 7, support is limited for large cursors and color cursors. RemoteFX sessions with color cursors always display the default mouse pointer.

Security Known Issues

Security Features

The Certificate Module (CertMod) (SYSGEN_CERTMOD) is not available in Compact 7. Instead, you can use the Loader Verifier Module (LVMOD) (SYSGEN_LVMOD).

Loader Verifier Module (LVMOD) Known Issues

When you use a certificate in a certificate chain that is issued by a certification authority (CA) that is more than one level above it in the trust hierarchy, using a .pfx file for code signing causes signtool.exe to append insufficient information to the signed binary. To resolve this issue, add the signing certificate chain to the development computer’s certificate store, and sign the binary using the store certificate. You can use the environment variable BUILDSIGN_CMDLINE to specify the certificate name; for example: BUILDSIGN_CMDLINE=sign /n "<name_of_certificate>".

When adding or removing an item from the list of blocked items, you must use the CERT_SHA1_HASH_PROP_ID property.

SYSGEN_FIREWALL Is Not in the Catalog

To add the Firewall Service (SYSGEN_FIREWALL) to an OS design, you must do one of the following:

  1. Set the SYSGEN_FIREWALL variable at the command line.
  2. When you use the OS Design Wizard to create an OS design founded on the Custom Device design template, select Sample Firewall Service.

Shell Known Issues

Adobe Flash Player 10.1 ActiveX Control

Adobe Systems Incorporated release notes for the Adobe® Flash® Player 10.1 ActiveX control are at Adobe Flash Player 10.1 Release Notes.

Playback of large videos (those that have more than 8 MB of buffer for streaming) by using the NetStream ActionScript class is not supported.

When playing encrypted video that is streamed from a server, the Adobe Flash Player 10.1 ActiveX control might have problems because the security component is case-sensitive and does not recognize the name of the control on the device. To resolve this issue, rename "flash.ocx" to "Flash.ocx" (with an uppercase "F") or set the following registry value:

[HKEY_CLASSES_ROOT\CLSID\{D27CDB6E-AE6D-11cf-96B8-444553540000}\InprocServer32].
default string value = "Flash.ocx"

The Adobe Flash Player 10.1 ActiveX control binary is not supported for the ARMv7 architecture. To resolve this issue, use the Adobe Flash Player 10.1 ActiveX control binary for ARMv6.

The Adobe Flash Player 10.1 ActiveX control currently is not supported by Compact 7 devices that use MIPS microprocessors.

The Adobe Flash Player 10.1 ActiveX control uses DirectShow to render video. If your DirectShow filter also attempts to render video, your web browser might stop responding during video playback. To resolve this issue, ensure that your DirectShow Filter only supports video decoding, and not video rendering.

Small-Screen Input Panel

When you use the small-screen input panel, gestures are always enabled, even if they are disabled in the Control Panel. To resolve this issue, in the IM_IsSwipe function implementation in %_WINCEROOT%\public\common\sdk\samples\msim\im.cpp, add the following code above the if( nKeyUpX - nKeyDownX > SWIPE_LENGTH )``if statement:

    UINT uKB = IM_ReadRegistry();
    if ( uKB == ASCIIKB || uKB == ASCIIKB_SMALL)
        return dwRet;
    

Compositor Known Issues

The version of Compositor in Compact 7 is functional, but has graphics performance issues. Applications based on Silverlight for Windows Embedded might have display issues or performance issues with some types of graphics drivers. When the OS is built with the new compositor, Remote Desktop Protocol (RDP) UI and RDP session performance is diminished. To resolve this issue, either remove the new compositor from your OS, or add a display driver that supports the following OpenGL ES 2.0 extensions: EGL_KHR_image_base, EGL_KHR_image_pixmap, and GL_OES_EGL_image.

The compositor does not support multiple monitors.

Layered Windows APIs

The Layered Windows APIs are not supported in Compact 7. Do not use the following functions: SetLayeredWindowAttributes, GetLayeredWindowAttributes, UpdateLayeredWindow, UpdateLayeredWindowIndirect, and WS_EX_LAYERED.

WM_USER and WM_APP Window Messages

WM_USER and WM_APP messages are blocked when you post or send messages to HWND_BROADCAST, but the messages indicate a successful return To resolve this issue, for custom message broadcasting, use messages created by the RegisterWindowMessage API instead.

OpenGL Directories Moved to %_WINCEROOT%\Public\Common

Header and library files for OpenGL ES 2.0 and Enterprise Generation Language (EGL) 1.4 have been moved from %_WINCEROOT%\public\openx to %_WINCEROOT%\public\common, as shown in the following table.

File name Directory location

libGLESv2.lib, libEGL.lib

%_WINCEROOT%\public\common\sdk\%_TGTCPU%\%WINCEDEBUG%

gl.h, glext.h, glplatform.h

%_WINCEROOT%\public\common\sdk\inc\GLES

gl2.hgl2ext.hgl2platform.h

%_WINCEROOT%\public\common\sdk\inc\GLES2

openvg.h

%_WINCEROOT%\public\common\sdk\inc\VG

egl.h, eglext.h, eglplatform.h

%_WINCEROOT%\public\common\sdk\inc\EGL

Khronos_types.h

%_WINCEROOT%\public\common\sdk\inc

Silverlight for Windows Embedded Known Issues

Animation Does Not Run Properly Across Multiple Threads

Common XAML controls might not paint themselves immediately when their state changes if the thread that created the control does not have a WndProc message pump that handles the WM_PAINT message. To force a paint operation, you can call UpdateWindow() by using the HWND retrieved from IXRVisualHost::GetContainerHWND; however, animations, such as animations for the progress bar control, might not occur unless a WndProc message pump is handling WM_PAINT messages for the thread.

ARM Debug Configuration Builds

Silverlight for Windows Embedded allocates large amounts of stack space when it is run on debug builds for the ARM microprocessor. If the visual tree for your application includes many elements, you might find that the default stack size of 64 KB is insufficient. To resolve this issue, increase the stack size by using the /Stack parameter on the EditBin tool.

Binary XAML Format in Silverlight for Windows Embedded

Extensibility objects created using the RegisterXamlObject API are not converted to Binary XAML (BAML) format, so they will not demonstrate the graphics performance optimizations of the BAML format. The XAML UIs that contain extensibility objects will remain in XAML format.

XAML that contains custom effects cannot be converted into BAML.

Click Locations on UI Elements Do Not Take Into Account Changes Due to Custom Effects

Silverlight for Windows Embedded includes built-in support for the Blur and DropShadow custom effects. These effects can be applied to compound UI elements that contain interactive elements such as a Button or TextBox. While the two built-in custom effects do not change the positioning of elements in a compound UI element, it is possible to create effects that do (such as a swirl animation or wave animation effect). In this case, mouse clicks might not work as an end user expects, because the x,y coordinates of the mouse event are based on the locations of the UI element before the effect is applied.

Click Events in Silverlight for Windows Embedded

In a UI based on Silverlight for Windows Embedded and the Software-based Input Panel (SIP), mouse click events are not generated when a user presses a button if the button is configured to generate the event on MouseLeftButtonUp. To resolve this issue, configure the button to generate the event on MouseLeftButtonDown, and set the Button element’s ClickMode attribute to "Press" in the XAML file of the application's UI, as shown in the following code.

<Button x:Name="btn2" Margin ="5,5,5,5" 
            HorizontalAlignment="Left" 

           Content="OK" ClickMode="Press" />

Custom User Controls and Custom Dependency Properties

When you register a custom dependency property for a custom user control, you must do one of the following:

  • Set the default value in the pMetaData parameter in IXRApplication::RegisterDependencyProperty.
  • Set the value in the XAML.
  • Call IXRCustomUserControlBase::SetPropertyValue before you call IXRCustomUserControlBase::GetPropertyValue.

Otherwise, the retrieved value of IXRCustomUserControlBase::GetPropertyValue is an XRValue object of type VTYPE_NONE, instead of the type with which the property was registered.

Control Panels Not Included by Default in Design Template

Building and deploying an image using the Embedded Device with Silverlight XAML design template generates the following error when you try to navigate through the UI:

23584 PID:38a001e TID:38d001e [XRShell] CXRShell::LaunchApplication - Unable to launch: [\Windows\ctlpnl2.exe] file not found

To resolve this issue:

  1. Set the following UI Control Panel SYSGENs in your OS Design:
    • SYSGEN_DATETIMECPL (Date Time Setting)
    • SYSGEN_DISPLAYCPL (Display Settings)
    • SYSGEN_ETHERNETCPL (Network Connection Setting)
    • SYSGEN_INPUTCPL (Input Setting)
    • SYSGEN_REGIONALCPL (Regional Setting)
    • SYSGEN_SNDSCHEMECPL (Sound Setting)
    • SYSGEN_WIFICPL (Wi-Fi Setting)
    • SYSGEN_CURSOR (Mouse)
  2. On the Build menu, point to Advanced Build Commands, and then selectClean Sysgen (blddemo clean -q).
  3. When the run-time image finishes building, download it to the device.

Event Handling Differences Between Microsoft Silverlight 3 and Silverlight for Windows Embedded

The UIElement::AddHandler and UIElement::RemoveHandler APIs are not supported in Silverlight for Windows Embedded. If you need to route an event on a control to its parent control, do not set Handled=true in the EventArgs structure.

In Microsoft Silverlight 3, control event handlers are always invoked first for event handling. If the control event handler sets the event data to Handled, the event is not routed to other objects or custom event handlers. If a user wants to override the default behavior, the user must to create a subclass of the control and override the control event handler. Given the flexibility of this approach, we do not support the AddHandler method on UIElement. AddHandler provides a way to attach handlers that are invoked even if another handler in the delegate chain has marked the event as handled.

Note that control events contain all events defined in and inherited from the control object’s interface.

Event Routing with Buttons Differs from Other UI Controls in Silverlight for Windows Embedded

The internal method XRButtonBase::OnMouseLeftButtonDown, which responds to the MouseLeftButtonDown event, does not set the Handled property of the event data to true, regardless of the ClickMode of the IXRButton object. For more information, see Handling Events in Silverlight for Windows Embedded.

MouseLeave Event Handler When Silverlight for Windows Embedded Is Not in Full-Screen Mode

If an IXRUIElement object overlaps the edge of a window that is displaying content, and if a user’s mouse leaves the window through the area of overlap, the MouseLeave event is not raised.

To resolve this issue, in your application, you can use IXRUIElement::AddLostMouseCaptureEventHandler to determine when the mouse pointer leaves the bounding area of the element, and then implement functionality such as a custom event to inform the IXRUIElement object of the change.

Nested Projections in Silverlight for Windows Embedded

Silverlight for Windows Embedded does not support nested projections (for example, applying a 3-D projection transform to a UIElement whose child UIElement also has a 3-D projection transform). To resolve this issue, restructure the XAML to remove the nested projections from the XAML.

SDK Names and Parentheses Characters

SDKs with parentheses in their names do not display in Windows Embedded Silverlight Tools. To resolve this issue, remove the parentheses from the SDK name.

Style Element BasedOn Attribute in Silverlight for Windows Embedded

Silverlight for Windows Embedded does not support the BasedOn attribute for Style elements on embedded devices.

To resolve this issue, copy all of the formatting into each Style element to which it is relevant. Note that this workaround also increases the size of the XAML file.

3-D Projection Transform

The 3-D Projection Transform functionality in Silverlight for Windows Embedded is different from the functionality in the desktop version of Microsoft Silverlight 3. For example, on platforms that support OpenGL API, the projections appear more dramatic. Also, on the Samsung SMDK6410 platform with DDraw, UI elements with projections that rotate on the z-axis do not appear on the screen. To resolve these issues, try using different combinations of projection values.

Virtualization Win32 Controls Sometimes Do Not Scroll

Occasionally, a virtualized list box where the list items contain embedded Win32 controls does not scroll properly. To resolve this issue for list boxes that contain a small number of elements, do not enable virtualization.

Windows Embedded Silverlight Tools

The x:FieldModifier directive in a XAML file is supported by Expression Blend 3; however, is not supported by Windows Embedded Silverlight Tools.

When you import an Expression Blend project using Windows Embedded Silverlight Tools, and if you try to open MainPage.xaml in Design View in Visual Studio, the following error might appear in the error output window:

Items added to a resource dictionary must have a key.

There is currently no workaround for this issue.

If you have implemented a designer/developer workflow, avoid making manual changes to the Expression Blend XAML files. If you change the XAML, a designer’s subsequent change to the XAML will overwrite your changes.

Using Windows Embedded Silverlight Tools with ARMv7

Windows Embedded Silverlight Tools works with the ARMv7 processor; however, the paths of the installed SDK might still include "ARMv4I".

The following list shows example paths in an SDK that include the substring "ARMv4I".

  • C:\Program Files (x86)\Windows CE Tools\SDKs\Silverlight for Windows Embedded SDK\Lib\ARMv4I
  • C:\Program Files (x86)\Windows CE Tools\SDKs\Silverlight for Windows Embedded SDK\Include\Armv4i
Windows Embedded Silverlight Tools Displays Error Messages About Duplicate User Control Names

When you use Windows Embedded Silverlight Tools to import an Expression Blend project that includes user controls, each user control must have a unique class name, even if your user controls are defined in different namespaces. If you have any duplicate user control names, you must rename them to eliminate duplicates.

Adding the Subproject Results in an "Illegal Characters in Path "Error

If your Expression Blend project has one or more file names that contain double-byte characters, Windows Embedded Silverlight Tools is unable to use your project to create a valid Platform Builder subproject or SDK project. To resolve this issue, convert these file names to Unicode format.

Building the Subproject Results in an "Undeclared Identifier" Error

If you rename the App.xaml file in your Expression Blend project before you import this project into a Platform Builder subproject or SDK project, the import succeeds, but the resulting subproject will not build. Renaming this file after you import it but before you update it also causes build errors. Therefore, do not rename this file.

Some XAML Objects Do Not Show Up in the Event Handler View

The Windows Embedded Events window might not display an object that you have defined in your XAML. To resolve this issue, do one of the following:

  • Add x:Name values to all XAML objects that you will attach to event handlers before you import the Expression Blend project into a Platform Builder subproject or SDK project.
  • Do not modify XAML files in Visual Studio; instead, make all of your XAML changes in Expression Blend.
  • Include all XRPack IDs in your Expression Blend project before you import that project into a Platform Builder subproject or SDK project.
  • Before you import your Expression Blend project, finalize the names of all namespaces. To change a namespace name after you create your subproject, you can manually edit the resource IDs of your Expression Blend project to match those in the generated project header file (for example, MyClockGenerated.h).
Duplicate User Control After Update

If you rename the folder that contains one or more user control in the Expression Blend project and subsequently use Windows Embedded Silverlight Tools to update your subproject, Windows Embedded Silverlight Tools creates duplicate files for the user controls that reside in the renamed folder. To resolve this issue, do not rename Expression Blend project folders that contain user controls.

WriteableBitmap Render

Objects whose transforms were rendered in IXRWriteableBitmap using the Render method are rendered without their transforms. To resolve this issue, include the transform as an optional second parameter to IXRWriteableBitmap::Render.

XAML Resource Packager (XRPack) in Silverlight for Windows Embedded

When you use XRPack with one of the image compression options, a generic resource compiler error message is generated if image compression fails.

Running XRPack.exe Manually Requires Rc.exe and Rcdll.dll in the Same Directory

To run XRPack.exe manually by using a command-line build prompt window, Rc.exe and Rcdll.dll must be in the same directory. To resolve this issue, copy Rc.exe and Rcdll.dll from %_WINCEROOT%\Sdk\Bin\i386\ to %_WINCEROOT%\Public\Common\Oak\Bin\i386\

XRValue Class

The ShouldFreeValuePointer property does not correctly transfer ownership of XRValue contents when the XRPtr is used for the following types: IXRDependencyObject, IXRPropertyBag, IXREnumerable, and FreeXRValue when it is called on the first object of XRValue. To resolve this issue, use standard pointers instead of XRPtr, and explicitly call AddRef to increment its reference count.

Using IXRValueCollection as the base class for an enumerable collection of XRValue objects causes a compiler error. To resolve this issue, use XRValue* objects for the collection.

When you use the GetDataContext helper template version of the method, only the XRValue primitive VALUE_TYPE is supported as an input parameter. To resolve this issue, implement the virtual version of GetDataContext for all other types.

XAML Parsing Error when Using a Namespace to Specify a Custom Control Property

When you define a PropertyPath using a namespace, the XAML processer silently fails to create the object. An error is not returned until the processor attempts to use the property. For example, the following code defines the TargetProperty in an animation storyboard by using the local namespace. This fails when the animation begins, returning XR_E_STORYBOARD_BEGIN_INVALID_PROPERTY(0x804700C9):

xmlns:local="clr-namespace:CustomAttachedProperty"

<DoubleAnimation
        Storyboard.TargetName="ScrollViewerTest" Storyboard.TargetProperty="local:CustomUserControl.CustomHorizontalOffset" From="0"
        To="150" Duration="0:0:5" AutoReverse="True" RepeatBehavior="Forever"
       />

To resolve this issue, define the Storyboard.TargetProperty attribute in XAML by using parentheses to partially qualify the PropertyPath. For example, the following syntax works as expected:

<DoubleAnimation
        Storyboard.TargetName="ScrollViewerTest" Storyboard.TargetProperty="(CustomUserControl.CustomHorizontalOffset)" From="0"
        To="150" Duration="0:0:5" AutoReverse="True" RepeatBehavior="Forever"
       />

Adding Resource ID Strings to UserControls Using xrpack:ClassResourceId for a Pre-built Subproject Results in a Build Error

If you build a Windows Embedded Silverlight Tools subproject and then update the XAML by adding a custom resource ID string to a UserControl by using the attribute xrpack::ClassResourceId, a build error occurs the next time you build the project. The following code defines a custom resource ID string of IDR_XRSHELL_USERCONTROL2ID:

mc:Ignorable="d xrpack"
x:Class="SimpleButton.UserControl2"
xrpack:ClassResourceId="Class:1002(IDR_XRSHELL_USERCONTROL2ID)"

This issue occurs because when you first built the subproject, it auto-generated a resource ID string for the UserControl. To resolve this issue, before you add a resource ID string to a UserControl in XAML, find the auto-generated resource ID string in <Subproject Name>Generated.h, and use it as the resource ID string in XAML.

After You Install Windows Embedded Compact 7 - Update 3, Silverlight for Windows Embedded Applications Must Be Recompiled and Rebuilt

After you install Windows Embedded Compact 7 - Update 3, you must recompile and rebuild any existing Silverlight for Windows Embedded applications with the newer version of XamlRuntime.dll, XamlRuntimeCore.dll, and XRPack.exe. This is because XamlRuntime.dll, XamlRuntimeCore.dll, and XRPack.exe have been updated in Windows Embedded Compact 7 - Update 3. To resolve this issue, in Solution Explorer, right-click the subproject and then click Build. Or, to resolve this issue by not recompiling and rebuilding your applications with the newer version of XRPack Binary XAML (BAML), open the sources file in the folder that was generated by Windows Embedded Silverlight Tools, and add /BamlOff to the XRPACK_ARGS macro, as follows:

XRPACK_ARGS= \
    /Root=$(MAKEDIR) \
   /BamlOff \
    /IntermediateFiles=$(_OBJDIR)\xrpack\baml \
    @$(MAKEDIR)\TestApp.xrpack \

Updating a Silverlight for Windows Embedded Subproject also Requires Saving Changed Files

When you update a Silverlight for Windows Embedded subproject by using Windows Embedded Silverlight Tools and rebuild the subproject, the UI does not reflect the latest updates that you made to the Expression Blend project unless you first save the subproject files before you rebuild the subproject. To resolve this issue, follow these steps to update a subproject:

  1. On the Tools menu, point to Windows Embedded Silverlight Tools, and then click Update Silverlight for Windows Embedded Project.
  2. On the File menu, click Save All.
  3. In Solution Explorer, right-click the subproject and choose Rebuild.

Tools Known Issues

Programmatic Control of Remote Profiler

There is currently no API for programmatic control of the Remote Profiler because the following APIs are not supported in Compact 7: NameProfile, ResumeProfile, StartProfile, StopProfile, and SuspendProfile.

To resolve this issue, control the profiler through the UI.

Remote Tools

In the Remote Tools Framework Managed API documentation, some syntax blocks include extra strings that contain metadata formatting and are displayed before the actual syntax being documented. This is a typographical error that you can ignore.

The remote tools require a writeable release directory on the device where the client files may be copied. If no writeable directory exists, the Windows Embedded Compact Test Kit (CTK) and other remote tools are unable to connect. To resolve this issue, ensure that there is a writeable directory available before you download the image to the device.

The Remote Tools Shell (on the desktop) will not close if the device is first disconnected from Platform Builder. To resolve this issue, close the Remote Tools Shell before you detach the device.

Kernel Tracker

The CeLog might sometimes output two or more line logs per interrupt. When this occurs, one or more of the logs might receive an invalid time stamp, which makes the analytical result invalid. In these situations, the kernel tracker may display an invalid time stamp such as "00.000 000s."

See Also

Other Resources

Windows Embedded Compact 7