Windows CE 6 or Windows XP Embedded ?

Windows CE 6 Beta is being given out at MEDC 2006 world-wide events – Windows CE 6 supports 32K processes (up from 32 processes) and 2GB Virtual Memory per process (up from 32MB per process) – this is now very much in line with Windows XP and therefore Windows XP Embedded. Do these changes to the underlying Windows CE kernel change the decision process for Windows CE vs. Windows XP Embedded?

Perhaps not, here’s why – Windows XP Embedded devices run on the x86 processor and PC Architecture hardware – this means that existing desktop drivers and applications can work with Windows XP Embedded without changes. This of course reduces time to market, typical Windows XP Embedded devices ship within 14 weeks. Minimal build sizes of Windows XP Embedded are 40MB and increase based on the components and technologies – a typical Windows XP Embedded image can be in the order of 300MB. Of course all technologies supported by Windows XP are also supported on Windows XP Embedded. If you have existing desktop applications or drivers Windows XP Embedded would appear to be the obvious choice (although, it is possible to port some desktop applications to Windows CE – this depends of course on the APIs and technologies you are using).

Windows CE 6 continues to be a small footprint (300kb+), componentized, hard real-time embedded operating system that runs on multiple processor cores, ARM, MIPS, x86, and SH4 – so developers have a choice of underlying hardware, this can reduce the overall bill of materials (BOM) for an embedded device, of course the choice of processor and hardware peripherals can also affect the battery life of handheld/mobile devices when compared with an x86 processor and PC Architecture hardware. Windows CE devices expose a subset of the full desktop API (and a subset of the .NET Framework called the .NET Compact Framework) – this means that desktop applications and device drivers are not supported on Windows CE (in their binary form) – at a minimum desktop applications will need to be ported to Windows CE or recompiled on Windows CE.

So, this being the case Windows CE 6 supporting 32K processes and 2GB Virtual memory certainly makes it possible for developers to build more complex/interesting applications and devices but there still exists a clear decsion path for developers to choose between Windows CE and Windows XP Embedded.

– Mike

Comments (17)

  1. Hi Mike,

    Is this an error in your text?

    Windows CE 6 supports 32K processes (up from 32 processes)


  2. mikehak says:

    no, i did mean 32k processes

  3. Oscar the Grouch says:

    Where can I download the CE 6 beta?  What we really need is documentation for CE 6 system calls.  Where can we get this?

  4. mikehall says:

    Hi Oscar,

    The Windows CE 6 Beta is only being distributed at MEDC world-wide events. Do you have a specific question that I might be able to help you with ?

    – Mike

  5. streampapa says:

    Hi there

    I was recently asked to look into the possibility of having our company’s software compiled for Windows CE. I have more a Unix bacground, but I know there is .com objects, Visual c++, possible asp involved. Also we use msdn on XP for database, but what will we have to use on Win CE for the database? Also we use MSMQ, is there any support for this on windows CE? Any suggestions as to where I can start with this investigation?

  6. mikehall says:

    Hi, it sounds like you have a number of questions here.

    1. Database – Windows CE supports CEDB (Windows CE Database – which was originally designed for storing contacts/calendar and other PIM data) – the other option is EDB, which supports ADO.NET interfaces (and is perhaps the best option).

    2. Yes, Windows CE supports MSMQ

    – Mike

  7. Alex Jones says:

    I have 2 question:

    1. What can you tell about MP (multi processor) support? Will you plan to create such kernel for win ce?

    2. What can you tell about NDIS in win ce 6.0?

    Is it support WFP?

          thanks in advance, alex…

  8. mikehall says:

    Hi Alex,

    I’m not sure what WFP is, can you explain ?

    Windows CE 6 does not support multi-processor.

    – Mike

  9. Alex Jones says:

    WFP = Windows Filtering Platfrom…

    I beleive that this is will be in windows vista & longhorn server….

    And what about plans for future (if it is not a secret) i mean MP support & NDIS version in CE 6.0


  10. Lee says:

    Hi Mike,

    A blue Screen poped up on our Control device, whose OS is Windows NT 4.0 Embedded, with the following error code:

    STOP:0x0000001e (0xC0000005,0x00000000, 0x00000000, 0x00000000)KMODE_EXCEPTION_NOT_HANDLED’

    It is said that the second parameter of the error code should be the address of fault or unknown instruction.  Can the fault or unknown instruction be located at address 0x00000000? What does the 0x000000000 mean otherwise?

    Could you please give me some hint? The computer has been running well for several years. No device driver or service is installed recently.

    Thanks in advance! Looking forward to your kind answer.

    Best regards,


  11. Mike Franke says:


    Our X86 build for a WBT is about 16mb for ce5 with RDP, ICA, browser, emulator and a few other small utilities.  

    What size do you think a ce6 build will be with the same config?  

    We were estimating that it would be only 1mb or 2mb larger.  What is your opinion?

    Mike F.

  12. mikehall says:


    I’ve just built a Windows Based Terminal (WBT) image for the ARMV4I Emulator, this included RDP, Internet Explorer and Terminal Emulator – the image size is ~14MB as a release build – note that this is built using the Beta of Windows CE 6.

    – Mike

  13. Mike Dimmick says:

    Lee, an access violation (status 0xC0000005) at address 0 means that you dereferenced a null pointer – reading it.

  14. Dasher says:

    Any tips on where to start.

    I’ve an idea for a single purpose handheld device A4/A5 size.  Basically a writing tablet aimed at home users, education and business but don’t know how to proceed from there.

    I’ve something almost up and running using the platform builder but how to select hardware, get a testing board, etc?

    Any tips or suggestions?

  15. Kent says:

    I’m interested in knowing what features of CE have changed in 6.0.  In particular, have there been updates to RTC from CE 5.0?

    Is this information available somewhere?