Fool's Garden

Talking about Windows Mobile and Embedded gadgets...Web counter

导航

Why does current running process always be mapped to slot 0?

Posted on 2006-02-24 19:46  Levins Dai  阅读(920)  评论(1编辑  收藏  举报

We know that WinCE 5.0 supports 32 processes running simultaneously at most. Each process resides in a continuous 32M virtual memory space, namely Slot. The 32 processes slots range from Slot 2 - 33, plus a specific one: Slot 97 for NK.exe. And we also know that Slot zero is special enough to be occupied by the process context that current thread is executing. But why? Why this design choice was made?

The answer is quite simple. We use the same PE format for both desktop and device applications. But because every desktop process gets a 4GB memory space which always counts from 0. So any process running in WinCE is designedly mapped to Slot 0 and then they can share the same memory architecture with desktop couterparts and achieve the compatibility in PE.