Wednesday, 24 February 2010

2010 MVP Summit

Hi folks,

I have just returned from the 2010 Microsoft MVP Summit in Bellevue, WA. This was my first MVP Summit and I must say it was a great experience, thanks guys!

It was really valuable to meet and network with the product team as well as all the other MVPs!

Besides from the technical discussions, there were also social events such as bowling. Even though I didn’t do well at all (never even hit 100), it was a lot of fun.

And if you think it was raining the whole time in Seattle, you are dead wrong: we had highs in the mid 50’s with a lot of sunshine;-)

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

Windows CE Live Chat Transcript Februar 2010

Hi guys,
Just in case you missed the Live chat yesterday you can find the transcript of yesterday's chat here.

mikehall_ms (Moderator):
Q: [3] Can we use the Visual Studio 2010 RC to develop WinCE code right now?
A: Visual Studio 2010 RC doesn't contain "Smart Device" application development support - application development for Windows CE should be through Visual Studio 2008.

davbo_MSFT (Moderator)[18:02]:
Q: [4] aaai am using Window;s Vista. I cannot install my download's Can anyone help this 81 yr old man
A: Wrong Forum - please direct your question to the Windows Vista support page
ViTam_MSFT (Expert)[18:04]:
Q: [2] Is there a more elegant way of listing COM ports in C++ than CreateFile(COM1..CreateFile(COM9?
A: You can find out what drivers are loaded under HKEY_LOCAL_MACHINE\Drivers\Active registry key. For more information, please refer to:

Sing Wee [MS] (Expert)[18:04]:
Q: [5] Will it contain the support when it is released?
A: Sorry, we can't discuss future releases or features here.

ViTam_MSFT (Expert)[18:05]:
Q: [1] How would one list the available COM ports on a WinCE box under C++ not VB.
A: A: You can find out what drivers are loaded under HKEY_LOCAL_MACHINE\Drivers\Active registry key

kurtken_msft (Expert)[18:05]:
Q: [6] I have a question regarding RTC implementation on WindowsCE 6.0. We unfortunatly have noticed some glitches on a (VOIP) receiving side. During depper analyses we could verify that the RTC puts an empty audio-buffer (160 bytes) to the audio driver in these cases. We don't think that the network interface might cause this behaviour. Does the RTC require any timing issues?
A: I'm going to assume you mean the Real-Time communications stack by RTC. For RTC to work properly it is best that your platform have an OS timer that is ticking at a lower resolution. If your platform is using variable scheduling as opposed to fixed you may have instances like this.

kurtken_msft (Expert)[18:07]:
Q: [8] We have also noticed that audio playback is running a little too fast (1%, caused by internal frequency dividers). Might this relate to the glitches. These playback breaks occure about every 2-3 seconds.
A: This can certainly cause problems since the RTC stack is trying to adhere to real time. A faster playback will mean that a sample is done playing before it is supposed to be, and a callback from a driver to the higher levels that it is "out of samples" will occur before it is expected.
Sing Wee [MS] (Expert)[18:07]:
Q: [9] Is it on the CE roadmap to include multi-touch detection?
A: Sorry Jared, we can't discuss future releases or features here.

mikehall_ms (Moderator)[18:07]:
Q: [7] When can we expect an update on Silverlight in Windows CE to include some autogeneration of the C++? Will this not happen until Windows CE 7.0?
A: There is a 3rd party tool that can assist in the generation of native code - here's a blog post from Olivier Bloch that explains the tool - s-embedded-developers.aspx

kurtken_msft (Expert)[18:10]:
Q: [10] Hello...I have a DLL and I want encrypt it before put it inside NK.bin. Whene some application loads the DLL I want that it is decrypted before loading in it possible ?
A: This is possible, but not using the default disk i/o drivers. What is best for you to try is to create a RAM disk, and then copy your encrypted DLL from the physical storage (disk/flash) to the RAM disk. Then you can build functionality into your RAM disk driver to have it decrypt disk sectors as they are read from RAM.

kurtken_msft (Expert)[18:12]:
Q: [11] hi, everyone, i have a question about the encrytion method used on WinCE supppose I am using the native C, i wanna compress two files and add password for the compressed file, i developed the software for wince5.0 uisng VC++, is there any API that I can use in my case? THanks!!!
A: This type of thing is certainly possible using the CrypoAPI.

kurtken_msft (Expert)[18:13]:
Q: [12] i downloaded the code for 7-zip for encryption but the source code is developed for Win32, i am not an experienced software engineer, how to deploy it into WInCE form?
A: You will have to examine the Win32 calls that are made. Most desktop Win32 calls will work on CE. However, there are certain small changes and differences. Reference the MSDN library for Windows CE when the compiler gets stuck on a particular function. Usually there is a CE equivalent. spx

kurtken_msft (Expert)[18:14]:
Q: [13] So I don't put the DLL in the NK.bin but deploy it on NAND Flash for example...When the application starts, it have to copy the DLL from NAND to RAM (object store ?)...and then...How can I decrypt the DLL if the application calls LoadLibrary to use the DLL ?
A: No, not the object store - to a RAM disk. A RAM disk driver is very simple to create and there may be examples otu there on the net already. When the disk is accessed there will be "read sectors" calls to the disk driver. At that point you can read the sector of the file and decrypt it.
Sing Wee [MS] (Expert)[18:15]:
Q: [5, 9] Will it contain the support when it is released?
Is it on the CE roadmap to include multi-touch detection?
A: Do keep an eye out on (or for the latest official news. There's a "News" tab, as well as a "Products->Windows Embedded CE" page.
mikehall_ms (Moderator)[18:17]:
Q: [14] I'm interested in replacing the shell.exe with a silverlight/c++ application that will not have to duplicate much of the functionality of the standard shell. The documentation I've seen on shell replacement on MSDN talked about windows ce 5.0. I am curious if you experts know of any resources to assist me.
A: The shell is just an application, replacing the shell is fairly straight forward - the following blog post explains how to write a (very simple) .NET Compact Framework shell, you can use the same instructions for a Silverlight/Embedded shell -

kurtken_msft (Expert)[18:21]:
Q: [16] Where I can found some example about RAM disk and RAM disk driver ? I'm developing on Windows CE 5.0
A: you can bing for "ceramdrv" to find more information about a ram disk. isk-in-wince-60/ for example. To find this I put in "windows CE" and "ram disk" as search terms

kurtken_msft (Expert)[18:22]:
Q: [15] Q8: Thanks for you suggestion regarding the variable ticks. I will check this. Can I do anything else to avoid this "out of samples" ? Is it maybe possible to disable these real time features of RTC?
A: disabling the real-time features of a real-time stack kind of defeats the purpose of the technology . I think your best bet is to try to account for the divider errors and make the audio play at the proper rate.

kurtken_msft (Expert)[18:22]:
Q: [18] Thank you very much !
A: you're welcome

ViTam_MSFT (Expert)[18:26]:
Q: [17] Why is there a 512 MB limit for memory in WinCE 6.0 R3?
A: In Windows CE 6.0 (6R2 and 6R3), the kernel allocates Virtual Address 0x8000 0000 to 0x9FFF FFFF for direct RAM access (through cache) and Virtual Address 0xA000 0000 to 0xBFFF FFFF (for the same memory, but for uncached access). Hence, the kernel can only support 512MB. This is the consequence of how the virtual memory is layout in the kernel. spx

kurtken_msft (Expert)[18:27]:
Q: [19] thank you very much! the CrypoAPI seems to be very useful! But, it does not have compression function, doesnt it?
A: no, the cryptoapi is not meant to handle compression. but you can of course combine it with other compression software

kurtken_msft (Expert)[18:34]:
Q: [20] i am sorry, but I cannot use any compression software becasue I am supposed to call the compression method from my current, can you provide me some compression API that can be used in VC++?
A: There are pieces of window ce that use compression that is available in the public tree. for example, check public\common\oak\inc\cecompr.h

ViTam_MSFT (Expert)[18:37]:
Q: [21] I need to decode this data abort in ce 6.0 . I appreciate any experts can provide useful tips to investigate further.
24327 02/20/10 09:13:19.202 57077362 PID:00400002 TID:0A860002 Exception 'Data Abort' (4): Thread-Id=0a860002(pth=806e2958), Proc-Id=00400002(pprc=8050d308) 'NK.EXE', VM-active=00400002(pprc=8050d308) 'NK.EXE'
24328 02/20/10 09:13:19.202 57077362 PID:00400002 TID:0A860002 PC=c11fe308(rilcdma.dll+0x0002e308) RA=8008d844(kernel.dll+0x0001c844) SP=d691f320, BVA=00000000
A: Looks like a function in rilcdma.dll (at offset 0x2e308) is deferencing a NULL pointer (BVA is 0x0)

davbo_MSFT (Moderator)[18:53]:
Q: [29] could any expert please give me answers to my questions?
A: Hello tiannho - an expert will assist you shortly. Most likely they are researching the question and will follow up w/ a response.

Sing Wee [MS] (Expert)[18:55]:
Q: [23, 24, 25] thanks, there are some files in the \windows directory in my wince system, after i power the board off and power it back on, those files are still there, but the files i copied to this folder manually disappeared , do u know how to make the files reside under \windows folder forever?
the whole board is designed by a third party, in which the processor is Marvell PXA3xx
is there any command that I can flash the files in RAM to ROM forever?
A: Every time you reboot your image, it sounds like your image is decompressing from FLASH to RAM, and you're losing those files that you copied to that directory. If you want those files to always be there, you could add those images to your nk.bin (when creating your OS image). You mention "is there a command that I can flash the files in RAM to ROM forever". Are you downloading your image to FLASH or to RAM in your development scenario? If you're currently downloading to RAM, using the bootloader, you may find there are options already there to download the image to FLASH instead.

Sing Wee [MS] (Expert)[18:57]:
Q: [26, 27] another question is how i need to flash OS if i just wanna install a software?
sorry, i mean do i need to flash OS if i just wanna install a software on WinCE5.0
A: Continuing on from your previous questions, you'll probably want to look up "Persistent Storage" on MSDN if you're thinking more about a user scenario regarding files, and not a development scenario.

Sing Wee [MS] (Expert)[18:58]:
Q: [23] thanks, there are some files in the \windows directory in my wince system, after i power the board off and power it back on, those files are still there, but the files i copied to this folder manually disappeared , do u know how to make the files reside under \windows folder forever?
A: Regarding persistent storage, here's at least one link: spx

Travis Hobrla [MS] (Expert)[19:01]:
A: I did some digging through the code in public\COMMON\oak\drivers\netsamp\pegterm and didn't see any enumeration of ports there. But I'm also not very familiar with pegterm. If you can find the UI element that displays the ports, you should be able to trace that backwards to find out where it is getting the data from.
Sing Wee [MS] (Expert)[19:01]:
Q: [30] Do you have any updates regarding the September 2009 QFE that caused active sync to stop working?
A: I've asked Cam for his email address, and will take this offline.

Travis Hobrla [MS] (Expert)[19:02]:
Q: [22] Where does pegterm get its list of Modems/COM ports?
A: I did some digging in public\COMMON\oak\drivers\netsamp\pegterm and didn't see anywhere that it enumerated ports. But I'm also not familiar with pegterm - if you can find the UI element in that code that exposes the ports, you should be able to trace backwards and find out how they get enumerated.

Travis Hobrla [MS] (Expert)[19:03]:
Q: [31] Thank you! But how to add those images to my nk.bin? I know i can add some features from catalog, but how to add files from my PC?
A: If you want to include those in NK.bin you'll have to put them in the FILES section of platform.bib and re-create NK.bin via makeimg.

Travis Hobrla [MS] (Expert)[19:03]:
Q: [32] actually, the board is not flashed by myself, but i believe the image is downloaded to Flash!
A: If you can't flash the board then you can't really modify NK.bin.

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

Tuesday, 23 February 2010

Webcast - Creating Embedded Applications with a modern UI

Join Jochen Dieckfoß, eMVP, talk about how to create embedded applications with a modern UI - remember Microsoft now refers to this as "User Experience".

Jochen, goes through the main steps of Embedded Development, i.e. hardware choice, BSP and driver development and asks some very interesting questions - including the question: "What do I need to develop a UI?"


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

Windows Embedded CE 6.0 Monthly Update January 2010 available

Hi guys,

the latest Windows CE updates have been recently released and are available for download, in this month only for Windows CE 6.0. Some important issues (especially the fix the .Net compact framework v3.5 and Heap) have been resolved so get them now!

Windows Embedded CE 6.0 Monthly Update January 2010

This is a set of updates for Windows Embedded CE 6.0 released during the period of January 1 - January 31, 2010. These updates are fixes for Windows Embedded CE 6.0 operating system problems you run into during the development and maintenance of your custom platform.

Follow this link and download the latest QFEs.

Fixes made in this update:

Component: Bluetooth

  • 100126_KB979228 - Bluetooth PAN profile does not allow more than one simultaneous connection to be initiated.

Component: COMM

  • 100111_KB979372 - When a device receives a network packet with wrong IP address, the packet is buffered in the driver and may lock up the network.

Component: DirectX

  • 100114_KB946657 - Updated files for this release. This update adds DDSCAPS_OWNDC flag. Multiple GetDC calls may fail if this flag is not present.

Component: Heap

  • 100121_KB977712 - This update adds HEAP_SENTINEL structure to support more heap allocation information

Component: .NET CF v3.5

  • 100121_KB979447 - When using FileStream.Read() in .NET CompactFramework v3.5, the read position pointer can get out of sync with the operating system memory pointer.

Don’t forget: keep your OS up to date!!!

Read more! Post this to a friend!

Monday, 22 February 2010

CE White Paper on MSDN available

A newly published Windows Embedded CE White Paper, "MTP Responder Development Guide", is now available on MSDN.

You can download it from here: CE White Paper

From the Abstract:
Device Stage, introduced in Windows 7, helps users discover and use devices that are connected to their personal computers. MTP Responder for Windows Embedded CE 6.0 R3 adds functionality to Windows Embedded CE 6.0 R3 that helps OEMs create devices that are compatible with Device Stage.

Have fun reading!

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

Friday, 19 February 2010

Dump SectorInfo of post-processed flash disk image out files (.dio.postproc)

I had to dive into the sector information written to flash.dio.postprocess during the postprocessing step. Unfortunately, I couldn't find anything adequate in the WinCE tool-chain.

Therefore, here you can find code and binary for that simple task. I just dump the content of each SectorInfo.


P.s.: I've updated the BitTwiddler tool - current version is V0.99z21

Read more! Post this to a friend!

Thursday, 18 February 2010

To all Students - visit EW 2010 and win an ICOP eBox-4300

During the Embedded World - taking place in Nuremberg from March 2nd - 4th - Microsoft will be hosting a Windows Embedded Student Event on Thursday March 4th.

The Embedded World is the most important international embedded community get-together within EMEA - including students. As other companies, Microsoft offers a wide variety of programs which offer students a great opportunity to leverage and build the skills embedded companies are looking for.

The Imagine Cup, for example, is a technology competition held annualy, challenging students all around the world to turn their ideas into something real.

If you would like to find out more, come to the Windows Embedded Booth, Hall 11, Booth number 318 on Thursday, March 4th between 14:00 and 16:00 and meet with Microsoft representatives and partners and have the opportunity to win an ICOP eBox-4300 development kit!

Look forward to seeing you there.

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

Windows Embedded .. 7

Microsoft has just announced their new naming strategy around this years upcoming products.

Often enough it has been a pain in the elbow explaing which Operating System actually is the core of some of the available embedded operating Systems, such as NavReady or Windows for Automotive, MS Auto or Windows Embedded Standard.

This will hopefully all change as Microsoft rides on the Windows 7 wave and make things a lot easier to understand for everyone.

So let's have a look at what this means:
  • The future Version of Windows Embedded Standard, based on Windows 7, will be called:
  • The "Chelan" Release of Windows Embedded CE, often reffered to as Windows CE 7, will be named:
Windows Embedded Compact 7
  • The "Motegi" Release of MS Auto, also due this year and based on WEC 7 will then be named:
Windows Embedded Automotive 7.

To me the new naming Strategy seems straight forward - now all we have to hope is that the next Version on the Windows Desktop System doesn't change to something completely different?

Let's here your thoughts and comments!

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

Monday, 15 February 2010

Don't miss the next Microsoft Windows Embedded CE Technical Chat

just a quick reminder: the next MS technical chat on Windows Embedded CE Live Chat! takes place on February 23th, 2010 at 18:00 - 19:00 CET
To join this chat, please log on via the main MSDN chat page at:

So don't forget to put the date in your schedule and join the live chat.

And in case you miss the chat – don't worry – we will be putting the chat transcript online straight after the chat.

Have fun!

Read more! Post this to a friend!

Monday, 8 February 2010

Windows Embedded CE: 2009 Yearly Rollups now available

Hi all,

The yearly cumulative product rollups for Windows Embedded CE have arrived; these updates include all previous updates up until December 2009:

Windows Embedded CE 6.0 Cumulative Product Update Rollup 2009

Windows CE 5.0 Cumulative Product Update Rollup 2009

Windows Embedded NavReady - Cumulative Product Update Rollup Package (through 12/31/2009)

Keep your system up to date!

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

Thursday, 4 February 2010

The Microsoft Retail Roadshow Series in February 2010

Hi folks,

Throughout February Microsoft is going to hold its free, half-day, onsite “Retail and Hospitality Solutions: Build Customer Connections seminar at various locations in the US and Canada.

This seminar is designed for device manufacturers as well as retailers and hospitality businesses. You will learn how Windows Embedded tools and platforms can help you develop innovative Point of Service devices and solutions for the retail and hospitality industries.

Lunch will be served at the event.
At the event you will receive a free Windows Embedded Evaluations Kit and there will also be a drawing for a copy of Windows 7 Ultimate as well as a drawing for a Windows Embedded Development Tool Kit!

Dates and locations:
February 9th 2010: Mountain View, CA
February 11th 2010: Los Angeles, CA
February 16th 2010: Irving, TX
February 18th 2010: Toronto, Ontario Canada
February 23rd 2010: Iselin, NJ
February 25th 2010: Ft. Lauderdale, FL

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