Thursday, 30 April 2009

The History of Windows CE: 1. Pegasus

Microsoft was always very inventive in finding good code names for it's products.
At the beginning of Windows CE code names were borrowed from Greek mythology, followed by forest species and lately Whiskies.
Damian persuaded me to write about the early Windows CE because I started Windows CE development with these ancient versions during the last century. I felt very old when he told me this ;-)

If you want to read a good history of Windows CE have a look at this:

Okay, let's talk about the first version, code name Microsoft Pegasus. I must emphasize it was before my time with Windows CE.
Pegasus didn't have a PlatformBuilder-like development kit.
It was just for Handheld PC's from a couple of vendors. You couldn't build your own version of the OS.

But in those days a number of decicions were where made which turned out to be still valid today:
* Windows like system with EXEs and DLLs and a PC compatiple PE header
* Strict 32 bit architecture, no 16 bit relics
* Strict Unicode support
* Many other basic things ...

And today we were reminded of the old Pegasus project in our daily work:
Debug zones on host PC can be set with this registry settings:
Here you can add a DWORD value with the name of your registered Debug Zone.
The value will be set to your dpCurSettings.ulZoneMask during start-up.
But did you know it is also possible to set Debug Zone values on the target registry directly?
Just add the DWORD values to HKEY_LOCAL_MACHINE\DebugZones.

Stay tuned for my next post on version 2, code name Alder.

Tschüß Holger
Read more! Post this to a friend!

Check out the new documents about ...

Windows Mobile application mobile development at MSDN.

The first one is very useful particularly for newbies to make first steps with Windows Mobile Application Development and to get an overview of the Windows Mobile platform, tools and SDKs:
Getting Started with Building Windows Mobile Solutions with Visual Studio and Windows Mobile 6 SDK.

The second one shows you how to use the alpha blending and gradient drawing APIs to create a compelling and attractive user experience on Windows Mobile platforms:

Have fun!
Read more! Post this to a friend!

Windows Embedded CE 6.0: Memory mapping

Hi folks,

I’ve been asked multiple times now about the memory mapping in Windows Embedded CE 6.0. Even though this information is already available on the web, I’d like to point out a few points here:

In Windows Embedded CE 6.0 there are some APIs which can only be called from Kernel Mode due to trust issues. The memory mapping APIs like VirtualCopy, MmMapIoSpace (which is a wrapper for VirtualAlloc and VirtualCopy), … now belong to those Kernel Mode only APIs. Consequently you might ask: “So there is no way to call MmMapIoSpace directly from User Mode?” Well not quite, there is but one exception and that is a User Mode driver. The reflector service of a particular User Mode driver which runs in Kernel Mode can call MmMapIoSpace on behalf of that User Mode driver. However, it will not do so unless it knows that the User Mode driver is allowed to access the addresses in question. But how does the reflector service get this information you might ask? Well It gets it from the User Mode driver’s registry: more specific from the IoBase and IoLen keys. You can also use multi-strings here to specify multiple base addresses and lengths. And since this part of the registry is only accessible by privileged applications we have a protection against unauthorized altering of those keys.

But what if you need to call a memory mapping API such as MmMapIoSpace from a User Mode application? How now brown cow? Well you got several options how to deal with this problem:
  • You can make the code that calls the memory mapping functions a driver. Remember to specify the IoBase and IoLen registry keys if you make it a User Mode driver.

  • You can make the code that calls the memory mapping functions into a DLL that you then have to load into the Kernel via LoadKernelLibrary.

  • You can create a dummy Kernel Mode driver that implements IOCTL_DO_VIRTUAL_COPY to call VirtualCopy.

There is another important restriction on VirtualCopy and therefore also on MmMapIoSpace in Windows Embedded CE 6.0: Calls to either of these two memory mapping functions will fail if it crosses a 32 MB section boundary. To avoid this you may have to call these APIs multiple times.

Have fun!
Read more! Post this to a friend!

Wednesday, 29 April 2009

Windows Embedded CE 6.0 Platform Builder Monthly Updates for March 2009 are here!

Hi all,

here is the link to the March 2009 QFEs for Windows Embedded CE 6.0 Platform Builder:

Windows Embedded CE 6.0 Monthly Update (March 2009)

Have fun!
Read more! Post this to a friend!

Saturday, 25 April 2009

Don't miss Windows Mobile Webcast ...

covering practical security for Windows Mobile apps on April 27, 2009.

Enterprise mobile applications usually require that sensitive data is stored on a mobile device. This webcast shows you how to store data securely in encrypted form and, most importantly, how to store encryption keys securely so that an attacker can't get access to them. You'll also learn how to encrypt configuration files to hide sensitive data, and how to implement a working password-based access control system for your mobile apps. We'll also look at how to use client certificates to control access to server resources.

If you interessted in, so attend this Live Webcast presented by Andy Wigley on Monday April 27, 2009 10:00 AM Pacific Time (US & Canada).

Follow this link to register for this webcast.

Have fun!
Read more! Post this to a friend!

Friday, 24 April 2009

HMI Hannover last day

Hi Folks,

the time here at the HMI Hannover 2009 has been passing unbelievably quick. I had some really great conversations and discussions with a lot of people here. Today is already the last day. So don’t miss the last chance to visit me at the Microsoft booth in Hall 9 booth H17.

Upon popular request I am hereby posting the link to the detailed description of EB GUIDE Studio, our modular tool for integrated HMI development for embedded devices which of course includes Windows Embedded CE devices. With EB GUIDE Studio everything from requirement analysis, development, code generation, integration on the target up to validation and testing is done in one single tool:

Don’t worry if you haven’t had a chance to attend my presentation here at he HMI Hannover 2009, again upon popular request I will be posting the slides in a couple of days as well.

Have fun!
Read more! Post this to a friend!

Thursday, 23 April 2009

HMI Hannover 2009 Thursday morning

Hi Folks,

welcome to the Microsoft booth in Hall 9 booth H17 we looking forward to have some interesting discussions with you…

Have fun!
Read more! Post this to a friend!

Wednesday, 22 April 2009

HMI Hannover 2009 day 3

Hi Folks,

a warm hello from the HMI 2009 in Hannover. The 3rd day is about to start we still got some preparations to do here at the Microsoft booth in hall 9 booth H17. Yesterday was a good day: it was pretty busy and I had some interesting conversations and discussions! Again, please let me invite you to our daily presentations here at the Microsoft booth. I posted a schedule yesterday.

Have fun!
Read more! Post this to a friend!

Tuesday, 21 April 2009

HMI Hannover 1st day

Hi Folks,

All in all the first day at the HMI Hannover 2009 was pretty good, not too busy though. I am quite confident that things will pick up today. So again, come and join us at the Microsoft booth at hall 9, booth H17. There will be free coffee specialties and of course lots of interesting presentations all day:

10:00 am: Windows Embedded – Industrial Solutions from Sensors to Servers
11:00 am: MS Strategies for Manufacturing Operations
11:30 am: Real Time System Platform for Windows Embedded
01:00 pm: Windows Embedded Real Time Explained
01:30 pm: eXtreme Fast Control (XFC) on a Windows Embedded Device
02:00 pm: Real Time Everywhere & one Development Platform
02:30 pm: How to optimize plant floor with Rockwell Automation Visualization
03:00 pm: Comprehensive Solutions to Address very Hard Real Time Needs with Windows OS
03:30 pm: Creating Embedded Industrial Applications with a modern UI
04:00 pm: Visualization from Sensors to Servers

So don’t miss the interesting presentations and enter to win a brand new PND Navigation Device each day! My presentation will be at 3:30pm each day. I am looking forward to see you there and have some interesting chats! Meanwhile enjoy the following impressions of the first day:

Have fun!
Read more! Post this to a friend!

Monday, 20 April 2009

HMI Hannover assembly

Hi Folks,

Here are a few impressions from yesterday’s assembly @ the HMI Hannover fair. As you know from Damian’s post a couple of days back, I will be at the Microsoft Embedded Both in Hall 9, booth H17, hope you get a chance to come by. At 3:30 pm I will also hold a presentation on “Creating Embedded Industrial Applications with a modern UI” at the Microsoft Embedded Booth.

Have fun!
Read more! Post this to a friend!

Thursday, 16 April 2009

Script error with VS2005 / VS2008 Smart Device Wizards?

Are you having problems with the Smart Device Wizards in Visual Studio 2005 or 2008?

Then I have got a tip for you:

If you have got Internet Explorer 8 installed on your machine a script error can occur when invoking one of the following wizards:
  • Add Function
  • Add Variable
  • Smart Device - New Project Creation
  • Smart Device - Add Class

To get the wizards working again all you have to do is to edit the registry:

  1. Create a new key called "1000" under “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\InternetSettings\Zones”
  2. Under "1000", create a DWORD entry named "1207" with the value '0'.
If you are working with Visual Studio 2005 you will have to install SP1 for Visual Studio 2005 first.

So long and thanks for all the fish!

Read more! Post this to a friend!

Feature or Bug - named sync object mystery

If you think that a good old Win32 API call like CreateSemaphore() can't come to surprise us old war horses (I'm celebrating my last 3x birthday today :-)
you're just plain wrong.

The mystery
What's the difference in behavior, when you create multiple times a semaphore on Windows CE and on Windows XP with the following 2 different code snippets?

handle = CreateSemaphore( NULL, initialCount, maxCount, NULL);

handle = CreateSemaphore( NULL, initialCount, maxCount, _T("") );

Dear readers - enlighten us.
I will unravel the mystery later this week ;-)
Read more! Post this to a friend!

WES 2009 Exam Prep Kit - New Chapter 4 Now Available

End of last month we already blogged that the first 3 chapters of the exam preparation kit for the Windows Embedded Standard certification were made available. Today we got chapter 4 covering creation of OS components.

Download the Prep Kit and especially the new chapter 4 here.

Well, again it's available in English only. Additional languages will follow.

Read more! Post this to a friend!

Wednesday, 15 April 2009

Windows CE QFEs for month of March 2009 arrived

Hi Folks,

the latest Windows CE updates have been recently released and are available for download. Some important issues (especially the fix the .Net compact framework v3.5) have been resolved so get them now! More information for each update is provided in the Readme document available after the individual update(s) has been installed.

Windows CE 6.0 Platform Builder Monthly Update (March 2009)

Download Link:

Download this set of updates for Windows Embedded CE 6.0 released during the period of March 1 - March 31, 2009. These updates are fixes for Windows Embedded CE operating system problems you run into during the development and maintenance of your custom platform.

Fixed issues in this update:

Component: Direct X

090331_KB968339 - This update addresses the incorrect handling of an index into the pOverlays array in the DirectDraw GBL.

090331_KB969484 - This fix installs updated files to resolve some dependency issues.

Component: .NET compact framework v3.5

090320_KB969240 - SSL decryption may break and cause NETCF to reset connection if an empty encryption packet is sent by HTTPs server.

Component: RDP

090331_KB968448 - Inside an RDP session, when attempting to copy files to a redirected USB drive on Windows Embedded CE 6.0 device from a Windows 2008 Server, the incorrect volume size information may be used to verify the transfer can occur.

Component: VOIP
090324_KB968794 - Updated list of source files for FP_VOIP.

Component: WININET

090324_KB968548 - This update addresses the issue with WININET using AcquireCred/FreeCred APIs incorrectly.

Keep your OS up to date!
Read more! Post this to a friend!

Meet Jochen @ the Hannover Messe

Hi folks,

Jochen Dieckfoß, Senior Windows Embedded Consultant and fellow blogger, will be delivering a presentation every day at 15:30 about "Creating Embedded Industrial Applications with a modern UI" and will also be available on the Microsoft booth for the whole week to talk about all things around Windows Embedded.

So if there is something you have always wanted to ask come and give him a hard time ;-).

If you would like to schedule a meeting just drop us a line. We'll be giving away free tickets to the first ten interested.

So long and thanks for all the fish!

Read more! Post this to a friend!

Webcasts für Windows Mobile Entwickler gibt es auch auf Deutsch


dankeschön ersteinmal an MS Bob der auf Grund meiner letzten Post mich auf die deutschen Webcasts verwiesen hat - wie konnte ich die nur vergessen!

Microsoft Deutschland hat ebenfalls eine Reihe (insgesamt 6) von Webcasts zum Thema Windows Mobile am laufen. Die meisten haben schon statt gefunden können aber runtergeladen werden, und zwar hier.

Der 6. Teil der Reihe steht aber noch aus und dürfte den ein oder anderen interessieren - zumal ich in letzter Zeit wegen dieses Thema oft gefragt worden bin: Windows Mobile für Profis (Teil 6 von 6) - Ansteuern der Kamera mittels DirectShow.
Dieser Webcast steht Morgen, Donnerstag den 16.04, zum Download bereit.

Macht's gut, und danke für den Fisch!
Read more! Post this to a friend!

Tuesday, 14 April 2009

Webcasts for Windows Mobile Programmers

Hi folks,
hope you were lucky during the easter egg hunt!

Here is something I found that might interest you:
Microsoft has scheduled 5 live Webcasts for April covering different aspects of Windows Mobile 6.x programming.

Two have already been held but no worries as they have been recorded and you can still watch them online or download the recordings:

  • Andrew Spencer, mobility consultant, presented Microsoft's System Center Device Manager 2008 (SCMDM 2008) and went through the basics. Watch the webcast.
  • David Field, software architect for Enterprise Mobile, talked about Windows Mobile digital certificate management. Watch the webcast.
Which leaves three to go which will be held between Friday, April 17th and Monday, April 27th.

  • For those of you who believe SCMDM is hard to implement, you should take some time on Friday, April 17th and listen to Patrick Salmon, Enterprise Mobile Mobility Architect, as he steps through successfully implementing SCMDM and as he says cost effectively. Watch the webcast.
  • The next webcast, held on Thursday, April 23rd by Maarten Struys - Embedded Evangelist -is about "Developing Windows Mobile Applications using Visual Studio 2008". Watch the webcast.
I would also like to point you to Maarten's Blog where he will be posting a series of videos taking you through all the steps to create a Windows Mobile application.
  • And, last but not least Andy Wigley, MVP, will be presenting the fifth webcast dealing with security around Windows Mobile applications on Monday, April 27th.

So long and thanks for all the fish!
Read more! Post this to a friend!

Thursday, 9 April 2009

Happy Easter!

Hi all,

Whether you are going skiing for one last time or enjoying the first rays of sunshine finally announcing spring: Enjoy the upcoming Easter holidays!
I am going to visit my parents in southern Germany, hopefully the “Autobahn” will not be too crowded…

Have fun!
Read more! Post this to a friend!

Wednesday, 8 April 2009

Windows CE 6.0 bare essentials

Here's a new video from Kurt Kennett, from Microsofts new Video Site, introducing "the fundamental concepts behind the Windows CE Embedded 6.0 Operating System and the reasons for it's use and basic structure".


So long and thanks for all the fish!
Read more! Post this to a friend!

Tuesday, 7 April 2009

Sparks will Fly Challenge - Microsoft announces winner.

Microsoft announced the winner of the "Sparks Will Fly" challenge during the Embedded Systems Conference (ESC) Silicon Valley 2009.

If you have been following the challenge, you will know that the 3 finalists had been invited to ESC where attendees could vote for the project of their choice. The finalists were:
  • Doug Conn, with an intelligent medication dispenser project dubbed "The Smart Pill"
  • Jason Hershkowitz, with a home control system dubbed the "Home Brain System"
  • Scott Reed, with an intelligent picture frame dubbed the "Runcible Frame"
And the winner is ....

... Doug Conn and his "Smart Pill" device.

So congratulations Doug!

And if anybody is interested in having a closer look at the "Smart Pill" have a look on YouTube.

So long and thanks for all the fish!
Read more! Post this to a friend!

Friday, 3 April 2009

News from ESC West

Microsoft - in person Kevin Dallas, WEB General Manager - made three anouncements during the keynote at the ESC West, which closed yesterday.
  1. The probably most important announcement for developers is that Microsoft is now offering a MSDN Embedded Subscription which gives you access to all of the Windows Embedded development tools, Visual Studio, Desktop O/S, and Windows Embedded Server.
    Windows Embedded Server? That's right and it leads us to the second announcement.

  2. Windows Embedded Server has joined the Windows Embedded family.
    As you know this family includes Windows Embedded Compact (Windows CE), Windows Embedded Standard, the Windows Embedded *Ready products as well as non embedded products with embedded licensing SKUs, such as Windows Embedded Enterprise and now Windows Embedded Server. I nicked this picture from Mike (Thanks Mike :-) which gives you the overall picture.

    I wonder when .NET MicroFramework will eventually become part of this family?

  3. If you read Holger's post and if you are already working with Windows Embedded Compact, aka CE, then you know how tedious it can be to keep an overview of installed QFE's, Service Packs etc.
    In this case the third announcement is for you. Allthough not available yet, Microsoft will soon be delivering a Windows Embedded Developer Update Agent which will hopefully take some of the effort of your hands.
    Windows Embedded Developer Update will check your system for QFE's, Service Packs etc. and will allow you to update your System as you desire.
    From my point of view, all I can say is: About time, too!
    I'll let you know, as soon as the update agent becomes available.
So long and thanks for all the fish.
Read more! Post this to a friend!

Thursday, 2 April 2009

Free MS online Webinar on April 9th!

Hi Folks,

Register here for the free online Webinar on April 9th and win a ZUNE Digital Media Player!

Online Webinar Windows Embedded CE for Handheld Terminals

April 9th, 2009, 1:00-2:00 pm (PST)

Further Information:

Have fun!
Read more! Post this to a friend!

Wednesday, 1 April 2009

Free Onsite Windows Embedded ½ Day Workshops Sydney, Australia on the 1st Thursday of every month

Hi Folks,

Don’t miss the next upcoming free Windows Embedded ½ Day Workshops held in Sydney, Australia on April 2nd 2009 and on the first Thursday of every month.

Ground floor-Microsoft
1 Epping Rd, North Ryd
NSW (Exit off Delhi Rd)
Sydney, Australia

Microsoft will be hosting a Windows Embedded Workshop on the first Thursday of every month. Join us and receive the latest information on Microsoft Windows Embedded products, with a special focus on Windows Embedded Standard. (Formally known as XP Embedded) This workshop is to help you better understand the features and benefits of Windows Embedded, and how you can deploy it on your embedded systems. This workshop sponsored by DSTA is held especially for Embedded Systems Engineers/Developers, Project Managers, Technical Decision Makers and others who are interested in using Windows Embedded in their current or future projects.

This is a great opportunity for you to learn how to integrate Windows Embedded technologies with your custom platform, and learn effective techniques to rapidly bring your products to market. We will demonstrate the process of Windows Embedded Standard image creation using Embedded Toolkit on a Virtual PC as well as on the real hardware.

Further information:

Overview of MS seminars offerings:

Have fun!
Read more! Post this to a friend!

ActiveSync and GuestOnly

or how to get rid of the "CreatePartnership" dialog.

This is something I always forget.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows CE Services]

If you set this registry key you will not see the dialog any more but can still connect to the device if you want to install software or just simply explore the device.

So long and thanks for all the fish!
Read more! Post this to a friend!