Wednesday, 24 February 2010

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!

1 comment:

Matt said...

There are many companies providing live chat . software for this messenger programs could be downloaded easily.