Hi all, this my first blog of what I will try to make a weekly column. I know I'll miss some times but I'll try for that.

Welcome back to Bill Gates as Technical Advisor. This is hopefully a positive for the Windows Embedded Domain. Also, with all of the talk about the "Internet of Things (IOT), the question has been asked, is Will become of Microsoft's Embedded Division become the IOT team? (Mary  Jo Foley, ZDnet, "Microsoft staffs up its evolving Internet of Things team".) Hopefully not.



  • Exploiting Hyper-V for Windows Embedded Compact 2013 Development
  • Connecting to a Development VM
  • About Sysprep
  • Enabling Hyper-V


Exploiting Hyper-V for Windows Embedded Compact 2013 Development

My development workstation in an 64 Bit Intel I7 system running Windows 8, (which could be Windows 8.1) as I make use of Hyper-V enabled for OS virtualisation. The actual development OS runs as Hyper-V Virtual Machine (VM) and the target vCEPC also runs as a VM on the same system. By having the development system as a VM has a number of advantages:


  • Can have a dedicated environment for each development project without any of the corruption/versioning issues:

    -    “Side by side” installation of different versions of CE and/or Compact has always been problematic (read not supported).

    -    Retro-installing an earlier version of Visual Studio doesn’t work

    -    Etc. etc.
  • You can install an earlier (correct) development OS for the required version of CE/Compact.

    -  Eg. Compact 2013 RTM won’t run on Windows 8.1 (Its vNext will though)

    -  Eg. Windows CE 5 Platform Builder won’t install on any OS after XP

         … or there is a cutoff with development OS’s somewhere near there.It is simple to clone an existing development environment

         (using Hyper-V) when a new version of the OS (especially for a CTP) becomes available, or a new project is to start.
  • Backup and archiving of the development environment is simple


I have a Hyper-V Windows 7 VM that I use for Windows CE/Compact development. When I want to start a new project or install a new version of CE/Compact for development, especially if trialling a CTP, I just clone that, uninstall the OS Platform Builder and possibly its version of Visual Studio, then do a complete installation of the new development environment (Visual Studio and the required OS development plugins.)  Note that you can tweak the RAM, Storage and number of CPUs of a VM when it is shutdown. You might need to do this when adding a new VM.

Cloning an existing Hyper-V VM isn’t hard. After shutting down the OS, you Export the VM using Hyper-V Manager then Import it back in. Both are menu items from the Action menu. Then you rename the new system when running to avoid conflicts. Ultimately *Sysprep might be needed but assuming that the cloned VMs won’t be launched at the same time, conflicts shouldn’t be an issue.  Although it’s not hard to do a good reference for this is:

How to clone / copy a Windows 8 Hyper-V client virtual machine”, 


Connecting to a Development VM

Whilst you can connect directly from Hyper-V Manager, it is better to Remote Desktop into it. You get better control over the screen size and you can copy and paste into it. You can't copy and paste with the Hyper-V connection. You will though need to use the Manager connection once to configure the Remote Desktop access etc.


About Sysprep

It is used when cloning Windows Desktop and Server OSs by copying an existing system’s hard drive.  Windows operating system installations include many unique elements per installation that need to be "generalized" before capturing and deploying a disk image to multiple computers.  Sysprep seeks to solve these issues by allowing for the generation of new computer names, unique SIDs, and custom driver cache databases during the Sysprep process. The current (Windows 8) version of Hyper-V might automatically Sysprep when cloing??

Source: Wikpedia http://en.wikipedia.org/wiki/Sysprep

Note that Sysprep IS NOT used for CE/Compact.

Enabling Hyper-V


·        64-bit system that has Second Level Address Translation (SLAT)

·        A 64-bit version of Windows 8 OS (or 8.1), also Windows Server 2008+

·        4GB RAM


1.       Run Control Panel – Programs and Features

2.       Turn Windows Features On and Off (on left)

3.       Select Hyper-V and its two subcomponents

4.       Save and reboot the machine

5.       You then need to configure the Hyper-V Virtual Network (another story)

My Development System:

  • Intel Core i7-3770 CPU @ 3.40GHz
  • 8.00G RAM
  • 64 Bit, x64 Bit processor
  • Windows 8 Pro with Media Center