Windows CE 6.0 (May 30, 2007)

**Chat Topic:**Windows Embedded CE 6.0
Date: Wednesday, May 30, 2007

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 6.0!

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

*Introductions

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

Tom Getzinger [MSFT] (Expert):
I'm Tom Getzinger, a developer on the multimedia team. If you have questions about multimedia, graphics, or audio, I'll try to answer them.

MikeCal [msft] (Expert):
I'm Mike Calligaro and I work with OEMs on various system level things, especially drivers.

andyraf_MSFT (Expert):
Hello, I'm Andy Raffman, a developer on the Multimedia team.

mikehall_ms (Moderator):
Hi, I'm Mike Hall, Software Architect in the Windows Embedded group - https://blogs.msdn.com/mikehall

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

ArianeJa_MSFT (Expert):
Hi, I'm Ariane Jansen. I'm a dev on the filesys/storage team.

stmer_msft (Expert):
Steve Meredith: developer on the IE Mobile 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. (Like Mike Hall, I want to pimp my team’s blog: https://blogs.msdn.com/ce_base/) I’m also moderating today’s chat. I hope we can answer some questions for you today!

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

*Start of Chat

mikehall_ms (Moderator):
Q: Can we also ask WinCE 4.2 questions?
A: sure, go ahead.

mikehall_ms (Moderator):
Q: Does WinCE 4.2 work on Vista?
A: the CE 6.0 tools are compatible with Windows Vista, but for other versions of the tools you should use Windows XP.

Sue Loh [MS] (Moderator):
Q: I created a virtual PC of Win XP on my Vista Ultimate and even added another 1 GB of memory (1GB for Vista, 1GB for XP), but while I can install a WinCE 4.2 SDK we created, when I try to open it the CPU gets maxed out and never finishes loading.
A: Hmm, that should be possible. I've personally run both CE5 and CE6 on XP inside Virtual PC. We also used XP+CE6 inside VirtualPC for our hands-on labs at this year's Mobile and Embedded Developer's Conference (MEDC).

Sue Loh [MS] (Moderator):
Q: My problem with the virtual PC XP where the SDK will not load is inside of eVC not Platform Builder. Should I try using Platform Builder?
A: Oh I see, I had glanced past the SDK part of the question. You shouldn't need Platform Builder if you're trying to use an SDK, but I *think* Visual Studio should be able to use your SDK? I haven't tried rolling my own 4.2 SDK and using it with VS. I'm sorry, I haven't used eVC enough to know what could be the problem.

MikeCal [msft] (Expert):
Q: A topic that has been visited before, SDHC, according to MSKB article 933809, all it takes to get SD v2.0 compatibility is to update the drivers, is this true? I was under the impression changes needed to happen on the controller level
A: You'd certainly need hardware capable of doing SD v2.0 as well. However, if you've already got 2.0 capable hardware, then a driver update should be enough.

MikeCal [msft] (Expert):
Q: The article 933809 in question doesn't really seem to say that, as a matter of fact it states "Therefore, you do not have to change the SD host controller." which is what lead to the question, which is not how I understood SDv2
A: Could you mail me a link to the article? I'll make sure what I'm telling you is correct and, if so, have our docs people update the article.

mikehall_ms (Moderator):
Q: Is there a Platform Builder (beta?) that will plug into Orcas Beta?
A: The CE 6.0 tools are a plug-in to the current Visual Studio 2005 tools - we're not discussing future releases of the product at this time.

John Spaith [MS] (Expert):
Q: what is the best way to secure a CE6 box if it needs to server asp pages?
A: We have a page on MSDN about securing Web Server, available at https://msdn2.microsoft.com/en-us/library/ms885809.aspx. There is also information on the web about writing "safe" ASP pages on IIS that would apply to CE's ASP page development also. For instance there are attacks where if your ASP is proxying requests to an SQL server where malformed packets could turn into malicious SQL attacks. There's nothing on this that's CE specific since we don't have as many ASP devs, but CE ASP and IIS ASP are close enough in this sense.

John Spaith [MS] (Expert):
Q: Are there any good examples of using SSL with CE6?
A: SSL in what context - of CE as client (Wininet) or as a Server (HTTPD) or something non-HTTP? For Web Server, we have some basic MSDN docs on this but best outline is a newsgroup post I made long ago (Click Here). Note that this is 3 years old, CE install stuff is same but getting the cert off a cert server may be slightly different (and way different if you're not on a W2K/2003 setup).

MikeCal [msft] (Expert):
Q: is the A2DP Bluetooth Profile supported?
A: There are two main Bluetooth stacks on Windows Mobile: the Microsoft one and the Broadcom one. Each stack has an A2DP profile available, but in both cases, the OEM chooses whether or not to provide it.

Greg Scott [MS] (Expert):
Q: I dont see the A2DP profile listed as a profile in the catalog?
A: A2DP is supported in CE6, but not CE5. It can be enabled with SYSGEN_BTH_A2DP. I assume it is also present in the catalog but I will check about that after the chat.

Greg Scott [MS] (Expert):
Q: When will A2DP profile be available from Microsoft for CE?
A: It is available on CE 6.0. There are no plans to port it to 5.0 or previous releases. Is that a problem for you? (you can follow up on the CE newsgroups if we run out of time on this chat)

stmer_msft (Expert):
Q: hi, what about the IE. Which version is with CE6 ? What pros over the CE 5.0?
A: IE hasn't changed for Windows CE6. It is IE 6.

mikehall_ms (Moderator):
Q: What WPF support is there in CE 6.0? What won't work?
A: WPF is not supported on the Windows CE operating system at this time - at this years MEDC conference in Las Vegas we showed a very early preview of Silverlight running on a Windows Mobile device.

mikehall_ms (Moderator):
Q: What is the status of Silverlight 1.1 on Windows Mobile and Win CE 6?
A: we previewed a very early build of silverlight running on a Windows Mobile device at MEDC this year, timelines for release have not been announced at this time.

MikeCal [msft] (Expert):
Q: Is there a plan to support XNA on Windows CE?
A: Nothing has been announced regarding XNA and CE or Windows Mobile. Sorry, even if we had an answer to this, we wouldn't be able to pre-announce it here.

ArianeJa_MSFT (Expert):
Q: problems with corrupt SDF Files. Source : TFFS\DB\SNGBonDB.SDF Destination : \Temp\sql0001.tmp Repairing - verMajor: 3, verMinor: 0, verBuild: 5206, verPoint: 0 Time - 2007-02-05 22:39:10.322 Read page failure - iPage: 9, HR: 0x80004005, LE: 38 SDF File resides on a FlashChip (non volatile), seems to me to be a problem with threading? is SQL CE a single user/thread thing?
A: Are you writing a SQL CE volume? If you are and you're on flash, are you using TFAT? SQL CE is multithreaded.

ArianeJa_MSFT (Expert):
Q: i am adding rows to ONE table in a SDF (SQL CE) file from 3-5 threads simultaneously, SDF on TFFS (TFAT, flash M-Systems H3, directly connected on XScale SystemBus), am using transactions, problem: have corrupted SDF files
A: It might be useful (if possible) to single thread the application and verify that the corruption only repros when multithreading, and is unrelated to the input passed to the API. If that is the case, then verifying that the data/buffers being passed in are not shared might help, as well as analyzing creation/destruction of the threads and their associated transaction cursers.

mikehall_ms (Moderator):
Q: how come that a plain .NET CF App ends up with a 0xC00000005 STOP (access violation)
A: how are you running the application ?

mikehall_ms (Moderator):
Q: I am auto-starting it with HKLM\Init\Launch90 - EXE name (app runs when started from explorer), but comes to C0000005 after some time (10 mins to 4 days unpredictable)
A: are you using p/invoke to call out to any native o/s API's from the applicaiton ?

mikehall_ms (Moderator):
Q: yes, p/invoke is used for some system DLLs (core.dll for sure others, too) - so one of those calls fail and kills my managed app?
A: yes, the C00005 error you are seeing is typically caused by bad parameters being passed to a native Win32 API.

mikehall_ms (Moderator):
Q: would it help to encapsulate my p/invokes in try except blocks for not to hand my whole app?
A: that may be helpful, it would also be useful to validate the parameters being used in the API calls to ensure you aren't passing invalid data to the underlying API

PaulT_MVP (Expert):
Q: Hi, first, I hope to be able to ask some related with WinCE 5.0. I have a lot of problems with slow system menus and folders. I have updated PB 5.0 with all the updates till today but I only got a small improvement. Using the system profiler, I got this output (while I opened the Windows folder):
Hits - Percent - Address - Module - Routine
1605 - 19.8 - 03bab8b4 - fsdmgr.dll - :FSDMGR_GetFileAttributesW
1039 - 12.8 - 00025f2c - filesys.exe - :FS_GetFileAttributes
604 - 7.4 - 00074254 - filesys.exe - :ROM_GetFileAttributesW
336 - 4.1 - 8005f854 - nk.exe - :SC_CeGetThreadPriority
The filesystem seems to be the problem somehow. I already followed modified the registry to use the recommeded flags (Disabled write through, Disabled automatic calls to ScanVolume, adds a backup FAT to all formats, Enable filesystem cache, EnableWriteBack, EnableFatCacheWarm,EnableDataCacheWarm, no Paging, but I do not get any improvement. I do not how can I fix this problem. Any idea about this situation?
A: If you're saying that opening 'big' folders (lots of files), like \Windows, takes a long time, yes, you're not the only one. If you have a Windows Mobile device, performing that same operation takes seconds to complete. There are a limited number of things that you can do to improve it: use faster storage media, make sure you're not running a DEBUG OS build, set the settings that you mentioned.

Sue Loh [MS] (Moderator):
Q: Hi, first, I hope to be able to ask some related with WinCE 5.0. I have a lot of problems with slow system menus and folders. I have updated PB 5.0 with all the updates till today but I only got a small improvement. Using the system profiler, I got this output (while I opened the Windows folder):
Hits - Percent - Address - Module - Routine
1605 - 19.8 - 03bab8b4 - fsdmgr.dll - :FSDMGR_GetFileAttributesW
1039 - 12.8 - 00025f2c - filesys.exe - :FS_GetFileAttributes
604 - 7.4 - 00074254 - filesys.exe - :ROM_GetFileAttributesW
336 - 4.1 - 8005f854 - nk.exe - :SC_CeGetThreadPriority
The filesystem seems to be the problem somehow. I already followed modified the registry to use the recommeded flags (Disabled write through, Disabled automatic calls to ScanVolume, adds a backup FAT to all formats, Enable filesystem cache, EnableWriteBack, EnableFatCacheWarm,EnableDataCacheWarm, no Paging, but I do not get any improvement. I do not how can I fix this problem. Any idea about this situation?
A: I bet you are specifically opening the \Windows folder, which always takes a while. Besides the things you already did, I can't think of more you can do to speed it up. However other folders should be faster -- it's the fact that there are hundreds of files in \Windows, split between ROM and the file system (sometimes shadowed), that takes so long to enumerate. Are you experiencing problems with folders other than \Windows?

Sue Loh [MS] (Moderator):
Q: Hi Sue, yes, the Windows folder is the critical, but in general menus and other folder are slow. As the profiler shows, the GetFileAttributesW, FAT_FindFirstFileW, and so on are taken a lot of time. In the kernel profiler a see a lot of heap allocations... and in the debug window a lot of "FATFS!FAT_CreateFileW(\Windows\desktop.ini) returned 0x0 (2)" "FATFS!FAT_FindFirstFileW(0x00000000,\Windows\nk.exe) returned 0xffffffff "" (18)" and similar...
A: You may need to separate the slow file system view from the slow menus and such; sometimes they're separate issues. I think you're probably not going to get much better on the file system view. For menu delay, I wish someone from our shell team was here to comment. But I think it'll come down to issues like loading icons - I may have to help you take this offline with our shell team. It’s always possible that the huge number of files in \Windows is hurting your menu speed too, but there are other possible problems too.

MikeCal [msft] (Expert):
Q: Why is the kitl connection in CE 6.0 so unstable. It crashes my VS session all over the place. I see others have the problem also. My CE 5.0 connection (on the same box) works great.
A: The KITL implementation is done by the platform code and will be specific to the individual CE platform. When you say "on the same box" do you mean the desktop dev box or the CE device?

MikeCal [msft] (Expert):
Q: the dev desktop box
A: What CE device are you using for CE 6.0?

MikeCal [msft] (Expert):
Q: Any hopes in getting the side-by-side (CE 5.0 and 6.0) issues corrected? Even after following the install order I get unreliable Kitl connections.
A: Again, the KITL implementation is specific to the CE device. Are you using the same CE device and loading 5.0 and then 6.0 onto it, or do you have two different devices? Do you know who implemented the KITL code on the 6.0 device? Have you worked with them on the stability issues?

MikeCal [msft] (Expert):
Q: The CE device side work great. I never get device side errors ... always on the VS side .. occasionally get devenv exceptions.
A: So, when you say "CE 6.0" are you talking about the platform builder desktop tools? What happens when you connect PB 6 to a CE 5 device? Do you get instability then?

Karel Danihelka [MS] (Expert):
Q: I am getting some strange corrupted messages when I use the KITL_RETAILMSG in my kitl.c file. I see this traces to KITLOutputDebugString in debug.c this has a critical section lock around it that uses: KITLGlobalState and KITL_ST_MULTITHREADED as a test. I suspect this may be my problem why occasionally I get corrupted messages.Where and how is this flag set?
A: It isn't good idea to try send KITL message from KITL itself. There are guards which should prohibit that (and output get redirect to serial debug output), but it isn't 100% accurate. If you need print something from KITL you have to use serial debug output (if I remember correctly we have OALMSGS and OALLogSerial for this purpose). You must be carefull there also as serial output is relatively slow.

Karel Danihelka [MS] (Expert):
Q: I also see this: pArgs-devLoc.Pin........ 11 pArgs-ip4address........ 1 pDevice-Name............ s pDevice-ifcType......... 5
I also see this:
DeviceId................. CEPC
pArgs-flags............. 0x39
pArgs-devLoc.IfcType.... 5
pArgs-devLoc.LogicalLoc. 0x20400
pArgs-devLoc.PhysicalLoc 0x0 pArgs-devLoc.Pin........ 11 pArgs-ip4address........ 1 pDevice-Name............ s pDevice-ifcType......... 5 pDevice-id.............. 0x13001186 Note the ip4address and -Name. these are corrupted also. I seen print outs from other people that show the same symptom. Is there a way to fix this?
A: This message is printed from code we ship in source code - look to platform\common\src\x86\kitl (I hope I remember path correctly).

Karel Danihelka [MS] (Expert):
Q: The CE 6.0 KITL connection is painfully slow even after installing SP1. So slow that sometimes CETK times out. I use the same host and target for CE 5.0 and it works fine. Is there a way to improve the connection speed?
A: First it will be usefull to find where problem is. I would suggest take network traffic log and see who causes delay. There can be different reasons - like you are not using interrupt on CE 6.0 BSP.

Karel Danihelka [MS] (Expert):
Q: Are there any known problems with CETK GDI Test 1000 (AddFontResource)? This test fails even on the reference ATI sample driver. As far as I can tell, the display driver doesn't even get called before the test fails.
A: There is problem in test - it load all fonts it founds on device and in release directory also. However it doesn't recover from out-of-memory situation correctly. If you want make test run remove some fonts from release directory.

Sue Loh [MS] (Moderator):
Q: How do I identify fonts file in the release directory?
A: *.ttf, I believe

mikehall_ms (Moderator):
Q: [81]: How do I identify fonts file in the release directory?
A: font files are stored in \wince600\public\common\oak\files - take a look at your release directory CE.BIB file and search for "FONTS", this will give a list of the fonts that are included in the final o/s image.

mikehall_ms (Moderator):
Q: I have an .exe that needs the MFCCE300.dll, can I rename the mfcce400.dll to MFCCE300.dll or are there any legal issues that don´t allow that? Or the use of "dummy" dlls to make Mobile programs run on CE 5.0
A: is there a reason why you can't use the MFCCE300 runtime DLLs with your project ?

mikehall_ms (Moderator):
Q: I only found the mfcce400.dll on my release dir. I have the PB for CE 5.
A: Do you have source for the MFC application? - if so, can you rebuild to use the latest version of the MFC runtimes?

KenSadah_MSFT (Expert):
Q: actually not the app is the Adobe Reader 2.0 for Pocket PC :(
A:https://www.adobe.com/products/acrobat/readstep2_mobile.htmlsays that Adobe Reader 2.0 is for Pocket PC 2002 and Pocket PC 2003 SE. What is the device's OS version you are using?

KenSadah_MSFT (Expert):
Q: [75] Windows CE 5.0 + some dll´s I add to make it work
A: Since Adobe Reader is an Adobe product, you might be better served by going to the Adobe Forums (https://www.adobeforums.com/cgi-bin/webx/.ef38cea/) or the overview page for Adobe Reader for Pocket PC (https://www.adobe.com/products/acrobat/readerforppc.html). The Adobe Forums is very active.

MikeCal [msft] (Expert):
Q: [94] but can i just rename the MFCCE400.dll ? to make the reader work , is it legal?
A: I wouldn't expect that to work, but I suppose it doesn't hurt to try. Worst case, it doesn't work and you just rename it back.

PaulT_MVP (Expert):
Q: Why is the help and tutorials so limited for CE6 and when is it going to be improved?
A: If you don't like something specific about the help, *use the Send Feedback* link that you'll find on every page. The help team reads all of those messages.

PaulT_MVP (Expert):
Q: Is there a way for me to copy some dlls residing in ROM to a different folder on windows mobile or to a folder on my local desktop?
A: No. They aren't really "files" in the sense that a DLL that you might copy to the device would be.

MikeCal [msft] (Expert):
Q: When I connect a USB flash drive to my device the system hangs for quite some time before showing the drive content. In some cases it freezes until I disconnect. Is this due to some buffer overrun?
A: Are you talking about a desktop computer or a Windows CE device? (Most Windows CE devices don't have a port for plugging in a USB flash drive.) This is a Windows CE chat and we're not the right people to help with desktop problems.

MikeCal [msft] (Expert):
Q: It's a CE device. Our device has USB host ports.
A: Interesting. I suggest taking CeLog traces of it happening and seeing where the time is going. Do you have access to the driver sources for that platform?

PaulT_MVP (Expert):
Q: We are creating a turnkey device. As such it will not include the Windows CE Shell. I am working on creating a replacement for the Network Settings Control panel. I am wondering where I can find examples of setting the IP Address, Subnet mask, etc?
A: The best example is the network control panel itself. The code comes with the platform builder/Windows CE install. Those particular items, IP, Subnet, Gateway, are just stored in the registry, and the information on where they're stored has, I'm sure, been posted to the newsgroups before (check microsoft.public.windowsce.* with GoogleGroups). If your adapter's name is SMC9000, the entries would be in HKLM/Comm/SMC90001/Parms/TCPIP for the first instance of that adapter type (hence the "1" after "SMC9000").

PaulT_MVP (Expert):
Q: How do I determine the adapters's name?
A: It's based on the name given in the registry. You can enumerate them by calling something like GetAdaptersInfo(), or looking through the registry for drivers that have Group values of NDIS. Probably, GetAdaptersInfo() is the better choice. Since this is your device, though, don't you *know* what the adapter's name is?

PaulT_MVP (Expert):
Q: I am sure we will know the adapters name once the hardware is ready. What I know is that there will only be one adapter.
A: Our hardware (the company where I work), supports various adapters that can be plugged-in, and has one that is built in. I do certain things special for that native one in my Telnet server, etc., but you can do that or not, depending on what you want the behavior to be like.

pablocan_MS (Expert):
Q: Where do I find the Network Control Panel code (I have installed the source, but there is a great deal of it)?
A: Control panel code can be found in public\wceshellfe\oak\ctlpnl

PaulT_MVP (Expert):
Q: Where do I find the Network Control Panel code (I have installed the source, but there is a great deal of it)?
A: I think you want to check \WINCE500\PUBLIC\COMMON\OAK\DRIVERS\NETSAMP\CONNMC for the Network and DialUp Connections applet code.

stjong_MSFT (Expert):
Q: I have noticed that my Windows CE 5.0 machine will not resolve names of Windows machines on a different subnet. Is this expected behaviour? It has a DNS Server, but not a WINS server.
A: When dynamic DNS is supported on the Windows machines, they should be registering their names to the DNS server hence it should work across subnet.

stjong_MSFT (Expert):
Q: Anyone have any ideas about Windows name resolution across Subnets in Windows CE? (See previous question)
A: The system will try DNS, WINS, and then WINS broadcast. Across subnet it hence needs either DNS server or WINS server. Windows host I believe dynamically register its name through Dynamic DNS so it should work across subnet.

stjong_MSFT (Expert):
Q: Once I set the Network Settings in the registry can I tell the NDIS driver to use the new settings without restarting the OS?
A: Assuming this is 802.3 like interface, then you can use rebind request to NDIS to rebind the adapter to the protocol stack allowing the settings set to the registry to take effect. See public\COMMON\oak\drivers\netsamp\ndisconfig on how to issue a rebind.

stjong_MSFT (Expert):
Q: Any suggestions on troubleshooting name resolution not working? Is there some logging associated with name resolution?
A: A network sniffer is the best way to trouble shoot the problem.

Karel Danihelka [MS] (Expert):
Q: Does CE 6.0 support USB modems out of the box or does each USB modem need a vendor supplied driver?
A: With high probability you will at least need modify registry. This is for modem which support USB modem class interface (CDC). But generally your USB modem can use hardware specific USB interface.

Karel Danihelka [MS] (Expert):
Q: Which specific device is the USBSER sample code in oak\drivers\usb\class designed to support?
A: Limited set of modem class interface (modem class interface is quite complicated and generic).

Karel Danihelka [MS] (Expert):
Q: i'm trying to put KITL on a arm PXA255 to work, using smsc 91c111, but i'm receiving "!KITLSend(DBGMSG): Reentrant call, Thread Id = 00510002". any idea on this ?
A: You are trying call log function from KITL stack... Use serial output instead normal OALMSG functions.

Riki [MSFT] (Expert):
Q: What is *.vol file on windows mobile? Is there a way for me to read or write the contents of it?
A: these are database volumes, see https://msdn2.microsoft.com/en-us/library/aa912256.aspx

mikehall_ms (Moderator):
Q: How much longer will eVC be supported for future versions of CE? It's still faster to develop a (native) app in quirky-but-fast eVC than big ol' VS2005 (at least, for me) but am I painting myself in a corner by continuing to use it?
A: eVC is still available as a free download from MSDN and can still be used to develop applications for Windows CE - however, there's no new work being done on the eVC tools, if you want the latest versions of tools and frameworks (MFC, ATL, STL etc...) then VS 2005 is the correct tool to use for application development.

KenSadah_MSFT (Expert):
Q: I am wondering about Japanese Input Methods. Where is the best place to learn more about entering data in Japanese?
A: Do you need to know how to enter text, given an IME on an Embedded/Mobile device? Or do you want to know how to add IME support to your Embedded/Mobile application? The general Windows Embedded CE 6.0 overview page on IMEs and anything International is here: https://msdn2.microsoft.com/en-us/library/aa911922.aspx

KenSadah_MSFT (Expert):
Q: Both I guess. I have verified that there is a Japanese SIP, but I guess there are several methods for entering Japanese text. I am trying to learn enough so I know what questions I need to ask :-).
A: What do you mean by SIP? As for the methods of entering Japanese text, there usually are a few keyboard mappings you can use: direct kana entry (where each key on a QWERTY keyboard maps to a specific hiragana/katakana character), and then there's romaji-entry (where you phonetically enter the hiragana/katakana using QWERTY). In both cases, you'll have to "convert" the hiragana/katakana to a kanji/kana mixed segment. Of course you should be able to switch back to regular Roman mode (e.g. English).

KenSadah_MSFT (Expert):
Q: What I meant by SIP is Soft Input Panel. That is the kind of information that I need to learn. Can you suggest a good resource other than this Chat.
A: Thanks for the acronym - I was a bit confused since I was thinking of a different context. Again, are you looking for general usage tips, or programming tips? MSDN is always a good starting point... Click Here

KenSadah_MSFT (Expert):
Q: I guess I am looking for usage tips right now. Unfortunately much of the documentation I have found has been in Japanese, which I do not speak. :(
A: Well, maybe your first step is to learn Japanese - I'm only half kidding. If you understand the written language a bit, you'll understand how "Roma-ji" (alphabetized transliteration of hiragana/katakana) is "spelled" using the alphabet. From there, you can start putting together words. e.g. The japanese word for "hello" is ???????which is entered as "konnichiha". Then (on a desktop PC) you hit the space bar to cycle through what the IME gives you as conversion candidates. Once you find the "right one", you hit the Enter key.

KenSadah_MSFT (Expert):
Q: Yes I got the Japanese. Not sure I have enough time to learn Japanese, thanks for the information.
A: YW - for non-Japanese native users, learning Roma-ji might be the fastest way to learn how to enter Japanese text, since you already know how to use the QWERTY keyboard. You can try searching for "roma-ji" or "romaji" on live.com or 'other' search engines of your choice. This might be a good reference --https://en.wikipedia.org/wiki/Romaji

Alex Bussmann [MSFT] (Expert):
Q: Hi, I am trying to use WNetAddConnection3 for mounting a folder which is located under the shared folder on one of my PCs but fail to do so. Mounting the shared folder is successful. Why?
A: What version of CE are you trying this with 5.0 or 6.0?

Alex Bussmann [MSFT] (Expert):
Q: CE 5.0
A: I'm trying to dig up more information, but if the behavior was such on CE 5.0 then I suspect it is an unsupported feature. CE 6.0 should have the same behavior in this regards. I have verified that Vista does indeed support mounting of the subfolder.

PaulT_MVP (Expert):
Q: Hi, I am trying to use WNetAddConnection3 for mounting a folder which is located under the shared folder on one of my PCs but fail to do so. Mounting the shared folder is successful. Why?
A: That's the same way desktop Windows works. When you browse for a 'folder' to mount on a remote device, you can't do a Map Network Drive on a subfolder, only on the actually-shared folder.

PaulT_MVP (Expert):
Q: From my experience that's not the case. I was able to mount a subfolder using Net Use and with the standard Windows Explorer UI on Windows XP
A: That may be a capability of the network client on the desktop, although I've never seen it, but going through Explorer, you'll see the same thing as what Windows CE is giving you. Why would you want to do this? If you want to mount that subfolder, share it. If you just need to access files in that subfolder, mapping the shared folder and then navigating relative to that works fine, too.

PaulT_MVP (Expert):
Q: I have a client that wants to mount the user's home folder when he enters it's cred. Usually on servers, They only share the main USERS folders and not each user's subfolder
A: Makes sense. I'm trying to see if there's anything that I can find that might help, but so far, it looks like the server side is where you'll have to be flexible for now (sharing the user's own folder).

Chien-her [MS] (Expert):
Q: Is the Inbox application part of CE 6.0? If not is there an alternative mail client?
A: The Inbox application (pmail) has been deprecated in CE 6.0. There is no mail client support in CE 6.0.

Chien-her [MS] (Expert):
Q: Is there some third party solutions you can recommend?
A: I've no idea for 3rd party solution.

MikeCal [msft] (Expert):
Q: I have a problem with my computer can you help me?
A: If your computer is Windows XP or Windows Vista, we're the wrong people to help. This is a Windows CE chat. Sorry.

KGrey [MSFT] (Expert):
Q: I have a box that keeps coming up and it says "can not find file "flash.ocx" " What do I do?
A: Does this happen within the web browser?

KGrey [MSFT] (Expert):
Q: No when I switch user it keeps coming up...so no it does not happen within a web browser
A: What OS are you running?

David_Liao_MSFT (Expert):
Q: Hi Guys....what makes chunk based data transfer ASync on USB inefficient (slow) ?
A: What you referring? The content (Thread) Switching and Data Buffer Coping may slow down the process.

David_Liao_MSFT (Expert):
Q: To David_Liao_MSFT on **Q:**12 - I am just trying to understand how mediasync transfer is different from activesync in its capability to handle large chunks of data ? there are ndis, rndis etc layers involved in both the cases but still why only one is faster?
A: This is because of Desktop side driver - wceusbsh.sys. I cannot talk about this in detail. But, general, wceusbsh.sys is much slower than RNDISMP.sys in desktop. We put some workaround in Windows Mobile 6 AKU3. If you get this update, the speed on serial active sync should be same as RNDIS.

Karel Danihelka [MS] (Expert):
Q: I need two USB mass storage devices simultaneously but my CE6 device (PXA270) only recognizes the first one inserted. I believe CE6 should support more than one? Maybe a registry setting?
A: In my opinion it should work without any magic registry setting. Can you build debug image and check debug messages? In theory USB driver should recognize USB key and load driver, then file system will activate file system. All registers needed should be created on the fly.

Riki [MSFT] (Expert):
Q: how to test if binaries for winmobile 5.0 will work on winmobile 6.0 , without using emulator or device.
A: If you want to check *everything* works, then you can't. IF you want to run a quick automated check you could write a tool and check which APIs the app is using, and verify those APIs are still supported, but in short you need to run a test pass on a real device/emulator

mikehall_ms (Moderator):
Q: how to test if binaries for winmobile 5.0 will work on winmobile 6.0 , without using emulator or device.
A: You really should test applications on the emulator or a real device to make sure that your applications work correctly - note that many new devices are shipping with different screen resolutions, orientations and DPI, so you should be testing your application on the emulator at least.

Karel Danihelka [MS] (Expert):
Q: Just starting with CE 6 (thanks to new memory model) ...Where can I get a Intel ICH8 SATA disk driver for a CEPC image based on a Intel 965 chipset (state of the art motherboard)?
A: I have no direct answer, but our driver should work at least in PIO mode I believe.

PaulT_MVP (Expert):
Q: Anybody running CEPC on a current generation (Intel Core 2) based motherboard? (our target is an x86 based device with 512MB RAM / hard disk -- Not a mobile device). To that end, Can MSFT provide a drivers (lan and SATA disk drive) for these MBs?
A: Your board vendor would be the one to contact. VIA, for example, provides a Windows CE Board Support Package for their boards/chips. Microsoft really isn't up to the task of providing drivers for Windows CE for everything that something like Windows XP supports. The size of the CE team isn't close to the size of the desktop Windows team. If the board vendor doesn't work out, try the vendor of the chip/chipset that implements the function. In the case of SATA, if you're booting with a BIOS, it seems like the SATA chip should look just like any other ATA chip to the code and the regular ATA driver in CE should work.

mikehall_ms (Moderator):
Q: How can I ensure that my CE 6.0 image will be able to utilize windows mobile wifi/broadband adapters and drivers ?
A: you may have a problem running a CE 6.0 operating system image on a Windows Mobile device - many of the device manufacturers don't provide the underlying Board Support Package (BSP) for their devices, this means that you wouldn't be able build and run a CE 6.0 o/s image on a Windows Mobile device.

mikehall_ms (Moderator):
Q: I have a custom platform that runs CE 6.0 with some BSP bus drivers for PCMCIA and USB. Is it possible to include support in my image for bus-agnostic wifi/broadband drivers designed for winmobile ?
A: the driver model has changed from CE 5.x (which is the underlying operating system for Windows Mobile) and Windows CE 6.0, you may need to make source level changes to drivers to get these working with CE 6.0

PaulT_MVP (Expert):
Q: I would be willing to downgrade to CE 5.0 if it is possible to make my CE image compatible with winmobile WIFI/broadband drivers. Is there a method for determining what functionality I need in my image to do this ?
A: The problem is that the installer for the driver might easily restrict itself to installation on WM devices (to be sure that it will work). What, specifically, are you looking for drivers for? Most of the card vendors that have any WM support seem to have drivers for Windows CE.

PaulT_MVP (Expert):
Q: We're looking for a solution for 802.11 and satellite/broadband cards. At this point we are trying to maximize the pool of devices that we could use by finding existing drivers. It seems that the pool of devices and drivers for winmobile is > than CE.
A: Yes, it is a bit bigger (so is the market size). If the WM driver can be installed on your device, you're probably OK as long as you have AYGSHELL, MFC, ATL in your OS, and you are built in a non-headless configuration, with network support, etc., etc. If there's a configuration program for that satellite card, though, it's quite likely to be formatted for portrait 240x320 display and, if your device display isn't shaped or sized that way, you may have some problems using it.

Riki [MSFT] (Expert):
Q: Is there any way to programmatically unload a device driver that has been loaded by device.exe. The application here is upgrading a driver without rebooting the system.
A: sure, open the key for the driver in HKEY_LOCAL_MACHINE, TEXT( "\\Drivers\\Active" ) then query Hnd, with that handle you can call DeactivateDevice

David_Liao_MSFT (Expert):
Q: I was under the impression that the driver handle stored in the \\active registry isn't guaranteed to be supported in future versions of CE. Is that not the case?
A: We still put device handle in the active registry. For security reason, we may limit the usage of this handle for get information only.

David_Liao_MSFT (Expert):
Q: I agree. If you loaded the driver, you should have the handle; if you didn't load it, well then you probably shouldn't be unloading it. ;-)
A: You shouldn't. Probably we will limited only the handler owner(who load the driver) and kernel can unload unload the driver.

David_Liao_MSFT (Expert):
Q: Is ISOC support for USB Host and USB Function complete in CE 6, CE 5 or are there limitations - if so, what are those limitations.
A: It should be the same. we fixed few bug on USB HC driver.

David_Liao_MSFT (Expert):
Q: Are there known issues with the CE USB ISOC support when implementing and USB Audio Class driver that need to be considered? If so,where can I learn more about these?
A: Which USB HC? OHCI, UHCI, EHCI?

David_Liao_MSFT (Expert):
Q: OHCI
A: No. I don't know any issue related to OHCI.

ArianeJa_MSFT (Expert):
Q: What are some of the differences between using a hive registry and a ram based registry other than persistency?
A: The hive registry is slightly slower, as it gets flushed to store rather than existing in memory, but the performance hit shouldn't be large enough to be noticeable. The only other difference, is that there are different APIs to save/restore the ram and hive registries. Is there something specific that you're looking for?

Sue Loh [MS] (Moderator):
Q: What are some of the differences between using a hive registry and a ram based registry other than persistency?
A: Actually I think you have that backward, in most ways the hive is faster. (Them’s fighting words, Ariane ;-) )

ArianeJa_MSFT (Expert):
Q: What are some of the differences between using a hive registry and a ram based registry other than persistency?
A: I apologize Sue! I meant that the hive is faster. It's early :(

ArianeJa_MSFT (Expert):
Q: What are some of the differences between using a hive registry and a ram based registry other than persistency?
A: Let me clarify a third time: booting with Hive is faster, I/O access is equivalent, if you're flushing, then Hive is likely minorly slower. Sorry for the confusion.

Sue Loh [MS] (Moderator):
Q: What are some of the differences between using a hive registry and a ram based registry other than persistency?
A: Actually even with that I think you’re wrong, flushing with the hive should be faster than flushing with the RAM based registry.

Sue Loh [MS] (Moderator):
Q: how could a hive-based registry be *faster* than RAM? Are you including the time it takes for flushing?
A: Let me try to clarify -- the confusion is coming because this is a complicated scenario, and to answer you properly we need more information about what exact scenario you want to compare.

Both the RAM-based registry and hive-based registry support persistence. The RAM-based registry can be set up to write its data out to a persistent file and read it back on boot. But the RAM-based persistence is slower than the hive-based persistence -- both in boot and in flush.

If you are simply using RAM-based to store in RAM without ever persisting to a file, then of course the hive is slower, because with the hive the data has to be written out to a file, instead of just staying in RAM. However these days, very few people are actually doing fully RAM based solutions anymore. Most people want persistence. So we tend to compare the persistence of RAM-based vs. persistence of hive-based.

So in short: Non-persistent RAM-based is faster than persistent hive. Persistent RAM-based is slower than persistent hive.

By the way, it is actually possible to make the hive-based registry store purely in RAM too. Search our documentation for "Hive RAM Regions" for info. The “Hive RAM Regions” should be pretty much equal what you get from the RAM-based registry when you’re not implementing persistence.

ArianeJa_MSFT (Expert):
Q: Is the boot speed for a hive registry faster because it doesn't have to uncompress the registry out of ROM?
A: Boot speed for the hive registry is faster because it doesn't have to build the registry from the .fdf file like ram does. The hive is built during makeimg.

Sue Loh [MS] (Moderator):
Q: Is the boot speed for a hive registry faster because it doesn't have to uncompress the registry out of ROM?
A: Assuming you've already read my previous answer -- the RAM registry implements persistence by writing the entire registry out, a small bit at a time, to storage during flush. And then it reads the entire registry in, a small bit at a time, during boot. The hive registry implements persistence by writing out only the delta (vs ROM) to storage, and reading/writing a page at a time. So, hive persistence is faster than RAM-based persistence.

Sue Loh [MS] (Moderator):
Q: So the hive based registry is actually loaded to the flash memory directly from the image?
A: We’re running out of time so let's take this to the newsgroups -- post on the newsgroups and I'll give you an email address where you can notify me to reply

mikehall_ms (Moderator):
Q: Hi. I am developing an application for WindowsCE based device. I want to check the available memory space in device at run time. How can I do that. Is there any code in C# to do that for WinCE application.
A: there aren't any managed APIs to do this, you could P/Invoke out to a native API to get this information such as GlobalMemoryStatus - if you want to dig deeper you can use the ToolHelp APIs.

mikehall_ms (Moderator):
Q: Thanks, To check available memory space at run time, I use System.IO.DriveInfo class for Windows application in C#. But WindowsCE aplication does not recognize this class. Any comment on it please.
A: this API is only supported on the desktop Frameworks, not on the .NET Compact Framework, you would need to call the underlying operating system API directly to get the amount of free memory on the system.

Sue Loh [MS] (Moderator):
Q: OK. Is there a way to obtain the current user's email address from Pocket Outlook? We're subclassing the htmlnote.dll form provider and there doesn't seem to be a way to get the "from email address". POOM no luck. It must be stored somewhere?
A: I'm sorry, I don't think we have anyone on this chat who knows POOM. I'll have to take this offline to get you an answer. I'll private message you my email address.

Sue Loh [MS] (Moderator):
Q: OK. Is there a way to obtain the current user's email address from Pocket Outlook? We're subclassing the htmlnote.dll form provider and there doesn't seem to be a way to get the "from email address". POOM no luck. It must be stored somewhere?
A: Following up, after the chat we found the answer was that you can query PR_EMAIL_ADDRESS on IMsgStore.

Sue Loh [MS] (Moderator):
Q:Q: Under certain conditions Custom Input Methods (IM) do not start. Since I develop an IM, I want to understand the reason. I have not seen any Custom IM which did not have this problem. Is this problem known to you ? Who would know more about this ?
A: I'm sorry, I don't think we have anyone online who can answer this question. I'll have to help you take this offline.

Sue Loh [MS] (Moderator):
Q:Q: Under certain conditions Custom Input Methods (IM) do not start. Since I develop an IM, I want to understand the reason. I have not seen any Custom IM which did not have this problem. Is this problem known to you ? Who would know more about this ?
A: Following up... After discussing offline, Joel and I established that the problem is that the device was running out of virtual memory. The application would work in isolation but not in combination with other applications. If you encounter this problem, here are some resources: One of our MVPs, Doug Boling, wrote a white paper on this subject: https://msdn2.microsoft.com/en-us/library/ms836325.aspxAnd if you are unfamiliar with the concept of virtual memory, you might find this post useful too: https://blogs.msdn.com/ce_base/archive/2006/10/30/What-is-Virtual-Memory.aspx

Chien-her [MS] (Expert):
Q: Can I send an email from an application on a headless CE 5.0 device, or do I have to write my own SMTP client? Third party would be okay.
A: Inbox from CE doesn't support headless, so You will need to write your own SMTP or IMP4 client.

Karel Danihelka [MS] (Expert):
Q: What component is missing to my WinCe that I get a BAD Network path, when I type \\ "IP address " in the Explorer ? I know the shared host/folder works perfect, because I can reach it over W2K or Xp
A: I am not 100% sure, but I think we don't support this (in other words our code doesn't check for IP address). Can you use name instead (maybe add name to IP to hosts file).

Ryan Ward [MSFT] (Expert):
Q: Any comments on the extensibility model in CE6.0 (in 5.0 there was UI level automation and also a C# "under the hood" model based on the Microsoft.Platform.* assemblies). Have these been combined/enhanced in 6.0?
A: There is still a separation between the UI and "under the hood" for 6.0. You can use the Macro editor in Visual Studio to help automate any tasks for Platform Builder. We are also blogging ways to automate tasks in Platform Builder. Check outhttps://blogs.msdn.com/ce_base/

John Spaith [MS] (Expert):
Q: how can I have a CE device sync hardware-clock with a internet time server on a periodical basis (24 hours)?
A: Yes. CE has an optional component that will enable an SNTP client on the device, and with registry configuration you can change period of it refreshing. CE5 docs for this are available at https://msdn2.microsoft.com/en-us/library/ms899547.aspx.

Sing Wee [MS] (Expert):
Q: Is there any tools on Windows CE 6 for USB driver testing ?
A: The CETK has a series of tests for USB. You can find more information about the tests here: https://msdn2.microsoft.com/en-us/library/bb203149.aspx

Sue Loh [MS] (Moderator):
Q: On Windows CE 5.0, we are comparing EDB to SQL Mobile or Compact for a headless application with real-time performance requirements. Code is native. Does anybody have performance comparisons?
A: I don't think you will get real-time performance out of any of these databases. In fact I'd be amazed if you found any databases that supported real-time characteristics. Do you really need it? What are you doing?

If you're just trying to compare performance... I'm sorry, I don't know any references and am out of time to search, but I think you can probably find some comparisons online.

Sue Loh [MS] (Moderator):
Q: I meant real-time somewhat loosely. The tests we have run on single EDB tables show 100usec access as common. We haven't figured out how to run the same tests on SQL yet - still working on it. But we have some more complex queries, so SQL?
A: I am a little out of my area of expertise here, but I don't think any of our databases had goals to provide any kind of real-time behavior.

David_Liao_MSFT (Expert):
Q: For windows CE USB CDC driver in the registry settings I use RegisterClientDriverID and OpenClientRegistryKey. So I need string that identifies of the registry for ActivateDevice function. Is there a way to get string path from registry handle obtained from OpenClientRegistryKey ?
A: We add new function GetClientRegistryPath in Windows CE 6.0

PaulT_MVP (Expert):
Q: Is winmobile source code available ?
A: Only to WM OEMs.

MikeCal [msft] (Expert):
Q: Are there any Hobby/Retail CE robotics platforms?
A: Yes, check out WiMo. also talked about frequently on https://blogs.msdn.com/windowsmobile)

KGrey [MSFT] (Expert):
Q: Are there any Hobby/Retail CE robotics platforms?
A: This is one that I have been considering purchasing: https://store.makezine.com/ProductDetails.asp?ProductCode=MKCONTRLLR

Sue Loh [MS] (Moderator):
Q: How much of overhead, in general, does RETAIL CELOG msg induce ? Is it possible to calculate the overhead induced ?
A: The call is just a memcpy to RAM but then there's an asynchronous write to storage later too.

Karel Danihelka [MS] (Expert):
Q: How much of overhead, in general, does RETAIL CELOG msg induce ? Is it possible to calculate the overhead induced ?
A: In theory it is - I wouldn't expect high overhead related to logging into buffer. Higher overhead will be related to dumping celog buffer to persistent storage or to host machine.

Sue Loh [MS] (Moderator):
Q: That’s what my understanding was - celogmsg should not induce since we are dumping into RAM at the end of logging ? But, we see significant overhead during bus transfers logging ?
A: The overhead is most likely from the asynchronous writes to the file system. There’s also a smaller chance, if you’re making lots of logging calls, that the API call overhead is hurting you – but if you’re really logging that frequently, it probably goes up to even more data being written asynchronously. If you’re writing a lot of data, you might want to consider switching from CeLogMsg (string format) to a more compact binary format using CeLogData.

Karel Danihelka [MS] (Expert):
Q: Hi, a simple question, are there any special settings for RNDIS? My host computer sees the target and all the drivers are installed by the host never gets the IP address from the target. Do I need to configure something in the registry on host or target?
A: You are right - question is who will assign IP address to connection. You can configure both sides to use fixed IP address, or use internet sharing on XP or use DHCP server on Windows CE. RNDIS doesn't assign IP address to virtual IP network, some other service must do this.

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!

Sue Loh [MS] (Moderator):
A special thank you to the product group members for coming out.

Sue Loh [MS] (Moderator):
The transcript of today’s chat will be posted online soon, to https://msdn2.microsoft.com/en-us/chats/default.aspx/transcripts/default.aspx. We’ll see you again for another chat next month. Please checkhttps://msdn2.microsoft.com/en-us/chats/default.aspxfor the list of upcoming chats.

Sue Loh [MS] (Moderator):
If you still have unanswered questions, let me suggest that you post them on one of our newsgroups, such as Microsoft.public.windowsce.platbuilder.

Top of pageTop of page