How to setup a Virtual Machine to run Windows Embedded Compact 7

Working with an emulators or a virtual environments is very useful in the embedded space as Hardware might not be available, connectivity might complicate the development process.

Up to Windows Embedded CE 6.0, an ARM emulator was provided in the box to allow for tests and debug on an emulated environment.

Windows Embedded Compact (new version of Windows CE) now comes with a Virtual PC BSP, allowing one to build, deploy and use a Virtual PC machine to do his work.

Here is a short video explaining how to setup a Virtual Machine to run a Windows Embedded CE/Compact image.

One really convenient tool used in the process is called diskprep and can be found here.

Get Microsoft Silverlight

Comments (22)

  1. Thiago T. Seixas says:

    Hello Oli, I try to make the VHD with disk prep, but the virtual machine wound't initialize =/. I need to to an special configuration in my image? Or the default configuration will work? Tanks for attention.

  2. Hey Thiago

    Can you be more specific about what's happening? Are you trying to boot eboot, are you trying to set up a VHD with a bre-backed image? If yes, did you try this image first, booting using eboot?


  3. Thiago T. Seixas says:

    I make a VHD with NK.bin and a boot from VHD like your second example in this video. Using the disk prep, but they stay only in black screen, before the CE logo. Before that, i try eboot and work fine. I can boot download image from eboot, but no from VHD boot.

  4. By default KITL is active in any build, even realeaes builds. I suspect your image has KITL active in the project settings, and when the OS boots, it waits for KITL connection.

    You should whether deactivate KITL in the project settings for your release build, or set the eboot settings to passive KITL.


  5. Max says:

    Hey Olivier,

    I try to use this virtual machine to debug a stand alone Silverlight for Windows Embedded application. Unfortunatelly the command "ipconfig" in the virtual machine gives the message: "no IPv4 adapter found".

    I think that something with my image is wrong but looking through the properties I activated all things handling network connections. Is it possible that drivers are missing?


  6. @Max

    A few questions to help sorting this out:

    Did you setup the Networking for your VM?

    Are you using Windows VPC in Windows 7 or VPC in VIsta or older WIndows?

    In your Network Adapter settings (on the Host machine), do you have the "Virtual  PC Network Filter Driver" activated? Or the Loopback Adapter?

    – Olivier

  7. Ramaprasanna says:

    Oliver, the video isn't playing. i checked it out in two machines, but the same issue persists .

  8. Hi Rama

    Interestingly it plays here… Do you have SIlverlight installed?

    Can you watch it directly on MS Showcase here:…/800b1db1-f192-4346-be5f-46a57fe376c4

    Anyone else experiencing the same issue?


  9. Matt says:

    Hello Oliver,

    Could you please share that VHD file with Windows Embedded Compact 7 on it?

    It is a loot easier to download 256MB then 47GB.

    Thank you in advance for all your help!

  10. @Matt

    Let me look into this. There might be some licensing issues… Stay tuned


  11. Matt says:

    Hello Oliver,

    Did you had time to look into this matter? Or you didn't found any licensing issues and can post this VHD file for everyone?

  12. @Matt

    Still looking into it… stay tuned


  13. Leonardo Salvatore says:

    Hello Olivier,

    thank you very much for your blog, for me is one of the most important docs for WINCE7 setup.

    Following that I'm able to run and debug managed/unmanaged applications on VPC.

    Now it's time to drivers/services development.

    But there is not way for me to reach my breakpoints on XXX_Init method.

    If I build the the WINCE with debug configuration I receive "An unrecoverable processor error" at boot time.

    I'm following the official doc "Building and Testing Your Device Driver

    Windows Embedded Compact 7 Technical Article"

    Do you have any suggestion?

  14. @Leonardo

    In order to debug drivers, you need to compile a debug version of your OS image. Your XXX_Init function will be hit when the driver is mounted by the kernel, which requires that you have the right registry settings set for it. You can check if you driver is mounted by looking at registry key HKLMDriversActive


  15. Charles Xu says:

    Nice video.

    PS: Where can I get your screen saver, it looks pretty cool.

  16. Alex says:

    Hi Olivier,

    I have one problem and may be you know the solution. I want convert a .VHD to a .BIN. Could you help me? Do you know how i can do this?

    Thank you,


  17. @Charles Xu

    The background I was using is Rainmeter(a utility that skins our deskop background.


  18. @Alex

    I am not sure I understand your question.

    If you are talking about converting the VHD file into an file, then you don't have to do this as the nk.bin file is in the VHD.

    – Olivier

  19. vijay says:


    Thanks for nice article it is very helpful

    I have got following query regarding WEC7 VPC

    How can I make storage persistence in VPC?

  20. @Vijay

    I have not tried that and I am not sure this is possible. Windows Embedded Compact runs in RAM and in order to have persistent storage, you need to have a storage hardware such as an IDE drive or a USB or SD storage peripheral. Even if you could tweak your VPC configuration to make this happen, you will miss the drivers to allow the volumes to be mounted by the file system.


  21. Liam says:

    Am I correct in assuming Virtual PC only runs X86 code. Is there a replacement for ARM emulator that is available in WinCE 6.0?



  22. @liam

    you are correct, the emulation available in the Windows Embedded Compact 7 tools is X86 based and there is no ARM version of the emulator for Compact 7 available to date.

    – Olivier