Windows Embedded CE and Windows Mobile Live Chat! (February 26, 2008)

Chat Topic: Windows Embedded CE and Windows Mobile
Date: Tuesday, February 26, 2008

Please note: Portions of this transcript have been edited for clarity

 

Sue Loh [MS] (Moderator):
Welcome to today's public chat. Our chat today covers the topic of Windows Embedded CE and Windows Mobile!

Sue Loh [MS] (Moderator):
We are pleased to welcome our Experts for today's chat. I will have them introduce themselves now.

Introductions:

JohnEld_MSFT (Expert):
Hi, I'm John Eldridge, a developer in the Windows CE team.

Matt Lyons [MS] (Expert):
Hi, my name is Matt Lyons, and I'm a Senior Program Manager working on Windows Mobile security.

Ryan Ward [MSFT] (Expert):
Hello, I'm Ryan Ward, a Test Developer on the Platform Builder IDE team.

Sue Loh [MS] (Moderator):
Hi, I'm Sue Loh, a developer in the Windows Devices Core team at Microsoft. I work on the remote tools team, and have previous experience with the kernel and file system. I'm also moderating today's chat. I hope we can answer some questions for you today!

MikeCal [msft] (Expert):
I'm Mike Calligaro and I'm a developer in the kernel debugger team.

MariNe_MSFT (Expert):
My name is Mariana Nenova and I am SDET for Windows CE Shell team.

GLanger_MS (Expert):
Hi, my name is Glen Langer and I am a program manager for BSPs on the Windows Embedded CE team.

Greg Scott [MS] (Expert):
Hi, I'm Greg Scott, a developer in the Windows CE networking team.

OguzS [MSFT] (Expert):
Hi, I am Oguz Sinanoglu, a Developer in BSP Team. I specialize on bootloaders, OAL, and display driver.

caho_MSFT (Expert):
Hi, I am Caleb Ho, a developer in BSP/Drivers Team.

Sing Wee [MSFT] (Expert):
Hi I'm Sing Wee, part of the General Embedded BSP Test Team.

gordongr_MSFT (Expert):
I"m Gordon Greene, developer in DataSync.

Joshuapa [MS] (Expert):
Hi, I'm Joshua Partlow, a writer for the documentation team.

craje_MSFT (Expert):
Hi I'm Chaitanya Raje, a developer on Compilers Team.

BorMing_MS (Expert):
Hi I'm Bor-Ming, I work on CE kernel.

Sue Loh [MS] (Moderator):
Let's begin the chat!

Start of chat:

Sue Loh [MS] (Moderator):
Q:
Does MD5 checksum still work if we use ram Hive-Based Registry Stored in RAM?
A: What do you mean by "does it still work?" The checksum is still stored inside the hive when it is stored in RAM. I am trying to check whether it'd be erased when the checksum doesn't match.

Sue Loh [MS] (Moderator):
Q:
Does MD5 checksum still work if we use ram Hive-Based Registry Stored in RAM?
A: I'm pretty sure it's recreated if the signature doesn't match, even when you mount the hives in RAM.

Sue Loh [MS] (Moderator):
Q:
Thanks for the info. Where I can I get more info/doc on oemregistry.dll hooks ?
A: Try these links:
https://msdn2.microsoft.com/en-us/library/aa910517.aspx
https://msdn2.microsoft.com/en-us/library/aa914671.aspx

... It appears I might have misjudged the oemregistry.dll feature, it might only be available if you're using the RAM-based registry.

Sue Loh [MS] (Moderator):
Q:
Is it possible to implement hive based registry which persists on a SMB share
A: Not without having your bootloader do some kind of copy-on-boot. The hive based registry requires the file system to be pageable, and we (intentionally) don't have any file systems that will page over the network, due to all of the problems you can have if your network connection disappears. You'd have to read the file in on boot write it out on RegFlushKey. You could probably implement something using our oemregistry.dll hooks if you're the OEM of the device.

BorMing_MS (Expert):
Q:
how can I use more than 512 MB in WCE 6.0 after the updates of some months ago?
A: The update is for SH4 only, which support >29 bits of physical address. It doesn't remove the 512M limit of RAM. For CE6, the only way to use RAM > 512M is to use manage it yourself with VirtualCopy/VirtualCopyEx.

BorMing_MS (Expert):
Q:
Thanks Borming, I thnik that MIPS can also >29 bits. The release notes don't mention anything as far as I see here https://support.microsoft.com/kb/941648/en-us ...and the updated files seems to not to be CPU specific...
A: The Title of the update should remove the word "memory". Again, this is for SH4 only, where we masked the top 3 bits of physical address unintentionally. You still need to mange RAM>512M yourself with or without the update. We will be supporting > 512M of ram in future releases.

Sue Loh [MS] (Moderator):
Q:
how can I use more than 512 MB in WCE 6.0 after the updates of some months ago?
A: If you are trying to use more than 512MB of physical RAM in a Windows CE device - CE 6.0 does not support more than 512MB of RAM.

Sue Loh [MS] (Moderator):
Q:
Hi Sue, the link that I posted above say another think... https://download.microsoft.com/download/a/e/1/ae153e54-aa49-439e-8c28-5419fc6a1c37/Windows%20Embedded%20CE%206.0_Update_070831_2007M08.htm
A: I am 100% sure that CE 6.0 does not support >512MB of physical RAM. It is possible there's confusion over the number of bits that can be used to address the RAM. Or confusion over the fact that it's possible to use VirtualAlloc/VirtualCopy to access RAM over 512MB inside applications. However you cannot give >512MB of RAM to the kernel and have the kernel distribute it across the system.

Sue Loh [MS] (Moderator):
Q:
"This update allows to access physical address > 512M."
A: It's talking about addresses, not about full blocks of RAM. You could access addresses above the 512MB mark but you can't give the kernel more than 512MB total RAM.

MikeCal [msft] (Expert):
Q:
Devices on the market usually have the same CE design. For example shell for Smartphone. I mean the Start menu is on the left top corner, etc. How can I modify the visible design of the shell? Are there any pre-built design?
A: This is confusing, but hopefully I'll be able to shed some light on it. "Windows CE" is the operating system that is used by a number of different products. "Windows Mobile" is a product that uses Windows CE as its OS. The Windows Mobile product has a fixed shell that OEMs and ISVs can't change. However, if you're creating a non-Windows Mobile device that uses Windows CE, you have the ability to make the shell do anything you want.

Sue Loh [MS] (Moderator):
Q:
Can I programmatically stop the hive registry flush thread? I want to allow an update of the flash partition where it lies...
A: The only way to do that is to unmount the hive (using RegReplaceKey) which then requires you to reboot after you do your update.

MikeCal [msft] (Expert):
Q:
Any plans to a support VS2008 and Platform Builder 6.0 integration?
A: Sorry, there are no announced plans to move PB6 to VS2008.

Sue Loh [MS] (Moderator):
Q:
where are the reg settings for corecon based remote regedit
A: There aren't any registry settings for RegEdit. What are you trying to control?

Sue Loh [MS] (Moderator):
Q:
I am using vs2005 debugging native code on CE5 device, corecon based remote tools all work except remote registry. It says it is connected but no remote hive being displayed. What did I do wrong?
A: I don't know what could cause that. Usually if any tool can connect then they all can connect. It might mean it's having trouble finding the device-side binaries for that tool. You might want to try doing a 'repair' on your install. (Sorry, that's slow.)

MikeThom [MS] (Expert):
Q:
Why there is not redistributable headless .NET CF available?
A: I am going to take this offline so I can understand the full issue.

luciad_msft (Expert):
Q:
I am getting greenish output (i.e. only Y component) while captureing wmv video through pimg application on wm6 though NULLCAM driver with all of the MS components(i.e. wmv encoder dmo, video capture filter etc) on our coustomized ARMV4I device.
A: Do you know the exact format that the display driver is accepting?

luciad_msft (Expert):
Q:
I am getting greenish output while playing captured wmv video through pimg application on wm6 though NULLCAM driver with all of the MS components(i.e. wmv encoder dmo, video capture filter etc) on our
coustomized ARMV4I device.
A: As I said before, to be able to help, we need to know the exact format the display driver is connecting with the video renderer, and also if the camera driver is in 2 or 3 pin mode.

luciad_msft (Expert):
Q:
I am getting greenish output (i.e. only Y component) while captureing wmv video through pimg application on wm6 though NULLCAM driver with all of the MS components(i.e. wmv encoder dmo, video capture filter etc) on our coustomized ARMV4I device.
A: We think it is a null camera driver issue, we are following up.

luciad_msft (Expert):
Q:
Camera driver is connected in 3 pin mode. Also Display driver accepts YUV and RGB both format. Also Please Note That this issue comes even when we playback the captured video(copied though remote file viewer) on WinXp based desktop via WMP.
A: If it is in 3 pin mode, so the problem is not with the display driver format, and it is unrelated to the preview since the captured file also shows the problem. Do you know the exact YUV format that the null camera driver is sending to the wmv encoder? This would help us try to narrow down the issue.

luciad_msft (Expert):
Q:
Camera driver is connected in 3 pin mode. Also Display driver accepts YUV and RGB both format. Also Please Note That this issue comes even when we playback the captured video(copied though remote file viewer) on WinXp based desktop via WMP.
A: Did you also try different YUV formats in the NULL camera driver (it can be configured)?

luciad_msft (Expert):
Q:
NULLCAM driver sends FOURCC_YV12 data..
A: This is looking like an encoder issue. We have YV12 covered in our testing suite.

Greg Scott [MS] (Expert):
Q:
Windows Mobile 6 Notes application on several devices (AT&T Tilt, E-TEN) does not work with bluetooth headset (Jabra, Senheisser). The same headsets work with HP iPAQ that has Widcom bluetooth stack. Any insight?
A: The notes application will use the device's default mic for audio input. It does not use Bluetooth. From your comment, it sounds like the Widcomm 3rd-party stack has found a way to make the notes application use Bluetooth as audio input. This is not supported with the Microsoft Bluetooth stack today. Thanks for the feedback!

Greg Scott [MS] (Expert):
Q:
The BT headset is recognized and connected to. It works well with the phone side. But not for Notes application
A: Yes, I understand. This is the current design. Apps need to opt in to use Bluetooth as audio input/output and the notes application does not. You could write a small app for the phone to force it to use Bluetooth audio for input/output. See the details on IOCTL_AG_OPEN_AUDIO on this blog post: https://blogs.msdn.com/cenet/archive/2005/08/12/451012.aspx. Such an app may already exist if you search around...

kirangra_MSFT (Expert):
Q:
I am using Windows Mobile 5 and I want to create the equivalent of a hosts file entry. I can't seem to get then registry entry so that is properly recognized by the software as a host entry.
A:https://msdn2.microsoft.com/en-us/library/aa925639.aspx. This is from the Windows Mobile 6 documentation and should work for WM5, let me know if this does not work and I can follow up with our networking team.

wayvad [MS] (Expert):
Q:
I am using Windows Mobile 5 and I want to create the equivalent of a hosts file entry. I can't seem to get then registry entry so that is properly recognized by the software as a host entry.
A: For CE equivalent of the hosts file entry, you can use the following registry: HKLM\Comm\Tcpip\Hosts\<hostname>

Documentation on CE's host name resolution via reg entries: https://msdn2.microsoft.com/en-us/library/ms881914.aspx

KGrey [MSFT] (Expert):
Q:
Why several attributes missing from the .NET CF class libraries that are used in design time only? For example: System.ComponentModel.Description; System.ComponentModel.Browsable
A: Thomas: I do not know the precise answer to your question, however knowing the way things work here, if those features were not implemented for the Compact Framework, it is likely because of a lack of developer resources on our end. When scheduling features for a release, we need to prioritize those features based on the customers need and the resources we have at our disposal.

Mikethom [MS] (Expert):
Q:
The WIN CE catalog contains still image decoders, encoders (e.g.:JPEG) and video codecs (e.g.:MPEG-4). If we use these capabilities for our devices is it necessary to buy any license?
A: We you go to license the product it will provide some details around codecs. Today you are required to obtain a separate licesne for things like MP3 and others. Please see your run-time license for details.

Mikethom [MS] (Expert):
Q:
Where can I find the run-time license?
A: You need to talke to your regional distributor. Besides terms around codecs it will have additional terms for other items as well. See the link https://www.microsoft.com/windows/embedded/partners/distributors/search.aspx

Sue Loh [MS] (Moderator):
Q:
is it needed support of block signatures in the FMD to be able to use TFAT? what else?
A: So I really only know TFAT from an academic standpoint, not from having lots of experience with it, but there's nobody online who knows more detail, so I'll give this a try... To properly support TFAT, I think the main thing a block driver needs is to fully complete all operations when TFAT asks for them. No caching or asynchronous write-back or anything like that. It may also need to be atomic, meaning that if it partially starts an operation and gets disrupted, on the next mount it can recognize that and either revert or complete the operation. I hope that is helpful... I can try to get you more info offline.

MikeCal [msft] (Expert):
Q:
We would like to use USB devices with our CE device. Are there any sample program concerning the mount and dismount process?
A: Handling USB devices through a host is done through the drivers. If your hardware has a USB host controller and you use the USB host controller driver, then things should work.

Mikethom [MS] (Expert):
Q:
We use the CE device in USB Host Controller mode. Are there any sample program to disconnect for example a Memory Stick?
A: There are no Memory stick examples that we ship in the box.

Sue Loh [MS] (Moderator):
Q:
what is the best resource to learn the Win CE 5.0 internal architecture? I am interested in creating a routing protocol that will work under ad-hoc networks. Is this possible to be done?
A: To learn about networking internals you can scan the posts on the networking team's blog, https://blogs.msdn.com/cenet/

KGrey [MSFT] (Expert):
Q:
what is the best resource to learn the Win CE 5.0 internal architecture? I am interested in creating a routing protocol that will work under ad-hoc networks. Is this possible to be done?
A: John: When you refer to ad-hoc, are you refering to WIFI Ad-hoc networks or something else?

Travis Hobrla [MS] (Expert):
Q:
In WinCE5 OAL I can use SC_MapPtr to map a pointer that is passed in a OEMIOControl structure. I have to support the same functionality in my Wince6 OAL. How can I get MapPtr in to my OAL code?
A: I'm assuming you're talking about an embedded pointer coming from a user process. In a driver you could use CeOpenCallerBuffer, but this is not available in the OAL. Can you explain why you need to do this?

Mikethom [MS] (Expert):
Q:
1) In CE 5 - Do the shell API's need to be implemented in an alternate form if one of the standard shells is not used but instead is replaced with a dedicated application?
A: It depends on what shell type functionality you need to keep around. So if you want to know when a app launches or comes to the foreground then there are APIs to do that. If you run one APP and nothing else then it is unlikely that you need anything. Also depend on what other APPs will call as well. So if they want to call the shell to put an icon in the tray and there is no tray it could be an issue.

Sue Loh [MS] (Moderator):
Q:
Sue did a great job in her blog explaining the Kernel tracker. But I would like to see some examples that show wrong and good scenarios. I can't be sure for example is my device is doing well...I have nothing to compare...Thanks.
A: So, all I can give you are examples of bad stuff... There are some on my blog (you probably already found them, but https://blogs.msdn.com/sloh/). The main things you want to look for are:

1. Are there threads running, that you didn't expect?
2. Are your threads blocked when you expect them to be running?
3. Are there a huge number of thread switches going on?

If you don't know the answer to #1 or #2 because you're just looking and trying to find problems through kernel tracker... Well, probably it'd be better, then, to have a perf test to prove that performance is good or bad in a specific scenario.

Sue Loh [MS] (Moderator):
Q:
Thanks Sue. Well, I was planning to check a Windows mobile device but AFAK kernel tracker could not run in most of those devices...
A: You can connect Kernel Tracker to an off-the-shelf WM device using the instructions on https://blogs.msdn.com/ce_base/archive/2007/04/02/using-platform-builder-remote-tools-over-activesync.aspx

wayvad [MS] (Expert):
Q:
In CE 5 - Aside from NETUI and the Bluetooth Samples, are there other replaceable UI components for the OS that need to be considered?
A: Other replaceable UI components are WinInetUI and UrlmonUI - if your OS needs IE.

Greg Scott [MS] (Expert):
Q:
Is there an implementation of the hands free device side implementation of Bluetooth for CE 5 or CE 6?
A: No, just the AG side.

Travis Hobrla [MS] (Expert):
Q:
Is it allowed to use code of WCE 6.0 into a WC5.0 BSP?
A: From a technical perspective there may some porting to do but it could certainly work. From a licensing perspective you'd need to refer to the EULA for CE5 and CE6.

KGrey [MSFT] (Expert):
Q:
We would like to create a HTTP server in .NET CF. It seems this support is missing from the .NET CF. Could you give us any sample program concerning this task?
A: There isn't an HTTP Server class for the .NET CF. You'd need to use a third party component or implement your own.

Sue Loh [MS] (Moderator):
Q:
4) In CE 6 -the CeAllocAsynchronousBuffer documentation says "the creation of aliased memory on ARM CPUs that use a virtually tagged cache cause both the source and destination memory to be accessed as uncached, until the alias is destroyed by.....
..CeFreeAsynchronousBuffer " - is this behavior specific to CeAllocAsyncronousBuffer or does creating two alias to any memory address on ARM cause them to both be treated as uncached?
A: On ARM, if you create aliases with VirtualAllocCopyEx (which is what CeAllocAsyncBuffer calls underneath) then the memory will be uncached, in order to avoid bad caching conflicts you'd hit from using two different addresses on the same physical memory. If you create aliases with VirtualCopy, the OS will not make the memory uncached. In that case you COULD hit the conflicts so you have to be careful to flush the cache yourself.

Sue Loh [MS] (Moderator):
Hello everyone, we are just about out of time. Thank you for joining us today for our Windows Embedded CE 6.0 chat today! A special thank you to the product group members for coming out.

If you still have unanswered questions, let me suggest that you post them on one of our newsgroups, such as Microsoft.public.windowsce.platbuilder.