|This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.|
The Microsoft Windows CE kernel, which is represented by the Coredll module, is the core of the Windows CE operating system (OS). The kernel provides the base OS functionality for any Windows CE device. This functionality includes process, thread, and memory management. The kernel also provides some file-management functionality. The kernel services enable applications to use this core functionality.
Use the kernel process and thread functions that are described in this section to create, terminate, and synchronize processes and threads, and to schedule and suspend a thread. Processes, which represent single instances of running applications, enable users to work on more than one application at a time. Threads enable an application perform more than one task at a time. Thread priority levels, priority inversion handling, interrupt support, and timing and scheduling are all included in the Windows CE kernel architecture. Together they provide real-time application capability for time-critical systems.
The Windows CE kernel uses a paged virtual memory system to manage and allocate program memory. The virtual memory system provides contiguous blocks of memory (in 1,024-byte or 4,096-byte pages along 64-kilobyte (KB) regions), so that applications do not have to manage the actual memory allocation. For memory requirements under 64 KB, an application can use the local heap that is provided for all Windows CE applications, or create separate heaps. The kernel also allocates memory to the stack for each new process or thread.
Use the kernel memory functions described in this section to allocate and deallocate virtual memory, use memory on the local heap, create separate heaps, and allocate memory from the stack. Your code can use the unused memory from the static data block that is allocated to load the application. Processes also can use memory-mapped objects to share data.
Last updated on Tuesday, May 18, 2004