Tải bản đầy đủ (.pdf) (72 trang)

Module 1: Overview of Windows CE .NET

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.23 MB, 72 trang )

Module 1: Overview of Windows CE .NET 1









Contents
Overview 1
Overview of Windows CE .NET 2
Core Operating System Architecture 17
Advanced Features of Windows CE .NET 33
Networking and Communications 34
Real-Time Communication 45
Multimedia Support and Architecture 50
Security Features and Architecture 55
Internationalization 62
Internationalization (continued) 64
Internationalization (continued) 66
Review 69

Module 1: Overview of
Windows CE .NET
2 Module 1: Overview of Windows CE .NET


Information in this document, including URL and other Internet Web site references, is subject to
change without notice. Unless otherwise noted, the example companies, organizations, products,


domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious,
and no association with any real company, organization, product, domain name, e-mail address,
logo, person, places or events is intended or should be inferred. Complying with all applicable
copyright laws is the responsibility of the user. Without limiting the rights under copyright, no
part of this document may be reproduced, stored in or introduced into a retrieval system, or
transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or
otherwise), or for any purpose, without the express written permission of Microsoft Corporation.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in any
written license agreement from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual property.

 2001 Microsoft Corporation. All rights reserved.

Microsoft, MS-DOS, Windows, Windows NT, Visual Studio are either registered trademarks or
trademarks of Microsoft Corporation in the U.S.A. and/or other countries.

The names of actual companies and products mentioned herein may be the trademarks of their
respective owners.

Module 1: Overview of Windows CE .NET 3


Overview

Overview of Windows CE .NET

Core Operating System Architecture


Advanced Features of Windows CE .NET

Networking and Communications

Real-Time Communication

Multimedia Support and Architecture

Security Features and Architecture

Internationalization


In this module, you will learn about the design goals that were considered in
developing Windows CE .NET and the new features of the operating system.
You will also learn about the architecture of Windows CE .NET and its
advanced features.
After completing this module, you will be able to:

Describe the design goals and hardware requirements of Windows CE
.NET.

Explain the architecture of Windows CE .NET.

List the advanced features that are supported by Windows CE .NET.

Explain the networking and communication support feature.

Describe the real-time communication feature.


Describe the multimedia support feature.

Explain the real time operating system feature.

Describe the support for security feature.

4 Module 1: Overview of Windows CE .NET






Overview of Windows CE .NET

Windows CE .NET: Design Goals

What is New in Windows CE .NET?

Basic Configurations

Target Hardware Support


This section introduces Windows CE .NET by explaining some of its key
design goals and new features. Minimum hardware requirements to install and
run Windows CE .NET are also covered.


Module 1: Overview of Windows CE .NET 5



Windows CE .NET: Design Goals

Modular and compact operating system

Wireless and wired connectivity

Robust real-time capabilities

Rich multimedia and multilingual support

Strong development tool support


There are several design goals that are considered to build Windows CE .NET.
Modular and Compact Operating System
Windows CE .NET is highly modular in its design so that footprint size can be
customized to meet the specific product requirements of a range of devices.
Only those modules required by the nature of the device need be included in the
operating system image. An original equipment manufacturers (OEM) can
further customize an operating system by selecting from a subset of available
components for a particular module.
Wireless and Wired Connectivity
Windows CE .NET allows you to build scalable wireless platforms to flexibly
connect mobile devices into existing infrastructures. It provides broad wireless
support for PANs, LANs, and WANs, including Bluetooth, 802.11. It allows
you to remotely authenticate, authorize, administer, and update new
applications and operating system services on your device.
Robust Real-Time Capabilities

Windows CE .NET offers reliable core operating system services for efficiently
enabling the most demanding real-time embedded designs across a breadth of
devices. It enables low latency, bounded deterministic system performance with
hard RTOS kernel support. It allows you to implement local and network
security for the storage and transmission of data. It optimizes device
performance, price and power through a wide selection of CPUs.
Rich Multimedia and Multilingual Support
Windows CE .NET enables you to build smart .NET-based devices and create
rich personalized experiences that span devices, PCs, servers, and Web
services. It allows you to build designs that provide the latest multimedia
experiences, including Windows Media 8 codecs fully optimized for audio and
video. It allows you to efficiently build localized embedded devices and
6 Module 1: Overview of Windows CE .NET


applications with out-of-the box multi-language support. You can securely
integrate web services into your smart devices, with support for XML 3.0.
Strong Development Tool Support
Windows CE .NET provides an end-to-end tool set for rapidly building smart
designs on the latest hardware with rich applications. You can build and
prototype designs, without buying hardware, by utilizing full device emulation
within the host workstation. An Integrated Development Environment (IDE)
provides the shortest build-debug-deploy cycle using integrated target-host
connectivity and a powerful extensibility model. Microsoft Embedded Visual
C++ 4.0, a standalone integrated development environment, brings a new level
of productivity to Windows CE development, without compromising flexibility,
performance, or control. The .NET Compact Framework is a hardware-
independent program execution environment for secure downloadable
applications that are optimized for resource-constrained computing devices.
Along with Visual Studio .NET, it offers a choice of languages, initially

Microsoft Visual Basic and Microsoft Visual C#, and eliminates the common
problems faced with language interoperability.

Module 1: Overview of Windows CE .NET 7


What Is New in Windows CE .NET?

Internet Explorer 5.5 for CE

Wireless support

Multimedia

Customizable UI

Security Services

Real-time collaboration and communication

Better multi-language support

ClearType


There are several new features that are added to Windows CE .NET.
Internet Explorer 5.5 for CE
Microsoft® Internet Explorer 5.5 for Microsoft Windows® CE is a highly
compatible, feature-rich browser control for the Windows CE operating system.
It encompasses nearly all the functionality of the desktop version of Microsoft

Internet Explorer 5.5. Web developers, OEMs, independent software vendors
(ISVs), and independent hardware vendors (IHVs) can use the technologies
provided by Internet Explorer 5.5 for Windows CE to build a custom browser
for a specific device or market.
Wireless Support
Windows CE .NET provides a broad range of wireless support for PANs,
LANs, and WANs including:

802.1x/Zero configuration

Bluetooth

MediaSense

Multimedia
The Windows Media Technologies feature for Windows CE .NET allows you
to provide multimedia streaming capabilities to Windows CE devices. This
includes support for the various protocols and streaming formats required for
audio and video playback of either local files or streamed data over a network
connection.
Customizable UI
For Windows CE .NET and later versions, you can create a customized UI, also
known as a skin. Skins allow the OEM to customize the appearance of controls
and other UI elements. For example, you can use this feature to customize the
8 Module 1: Overview of Windows CE .NET


system-defined bitmaps displayed on toolbar buttons. The ability to customize
the UI allows you to tailor the UI to the limitations or flexibility of your form
factor and to differentiate your products by creating a unique appearance for UI

elements on your platform. You can customize window controls, common
controls, and the non-client area of windows.
Security Services
Windows CE .NET provides security services for user authentication, credential
management, and message protection using a programming interface called
Security Support Provider Interface (SSPI). Within SSPI, different security
options, such as NTLM Security Support Provider (SSP) and Kerberos SSP, are
available. Each security option contains different authentication and
cryptographic schemes. Optionally, an OEM can write its own security package
and add it to the registry for applications to use.
Real-Time Collaboration and Communication
Real-time Communications (RTC) enables you to build applications that
perform:

Text messaging.

Voice over IP (VoIP).

IP telephony bridging from IP to PSTN telephony.

Receiving and sending presence information.

Microsoft® Windows® CE .NET provides RTC APIs built on the Session
Initiation Protocol (SIP), an IETF standard. SIP allows a Windows CE device to
call, or receive calls from, any SIP client. A SIP client can be a Windows CE
.NET device, Windows XP machine, or a third-party SIP user agent. The
Windows Messenger application, which ships on Windows CE .NET, supports
RTC as a back end.
Better Multi-Language Support
Similar to Windows CE 3.0, Windows CE .NET is localized in more than a

dozen languages and includes the following multi-language support
enhancements:

Agfa font compression:
Windows CE .NET provides support for Agfa AC3 font compression and
decompression technology, which reduces the ROM requirement for East
Asian font files.

Localized Chinese operating system
Windows CE .NET provides for a fully localized operating system in
Chinese. It also provides application support for simplified and traditional
Chinese.

Japanese Pocket IME 2.0:
The kernel and UI codes have been separated to allow for increased
customization. Added features include dictionary compiler, user dictionary,
and word registration, multiple dictionary support, new registry settings, and
broader support for input methods.

Japanese edit control, level 2
Module 1: Overview of Windows CE .NET 9


Windows CE .NET supports edit control level 2 as a default, which is
similar to Microsoft Windows 98 and Microsoft Windows 2000. Level 3
support is also available. Windows CE .NET allows you to modify the
default edit control level.

Support for the Korean language
Windows CE .NET enables applications for the Korean language and

supports Korean handwriting input. The Korean IME kernel and UI mode
also have been separated to allow for increased customization.
ClearType
ClearType display technology uses characteristics of LCDs to make
electronically produced text seem less jagged and more like printed type on
paper, improving the readability of the text.
10 Module 1: Overview of Windows CE .NET


Basic Configurations

PDA or mobile handheld device
z
Variants with our without applications, such as WordPad

Cell phone/smart phone
z
160x220 nominal display resolution

Web Pad
z
Touch-screen user interface and 640x480 or larger display

Internet appliance
z
Browser-based with a fixed (CRT or LCD) display and a keyboard.

Media appliance
z
Playback or store music, video, and other electronic media


Digital imaging device
z
Camera, projector, and printer


Microsoft® Platform Builder provides basic configurations as starting points
for the creation of an operating system. The configurations are provided to give
you a start with a specific class of device. These configurations are intended to
reduce product development time—in combination with a board support
package (BSP)—and to decrease the time it takes to put your product on the
market. Once a basic configuration has been chosen, you may modify it to suit
your specific needs.
PDA or Mobile Handheld Device
The Mobile Handheld configuration provides a starting point for personal
digital assistants (PDAs) and clamshell-and-keyboard styled devices. A mobile
handheld is a portable device that gives the user access to a variety of
functionality including internet access, an address book, a calendar, and e-mail.
PDAs allow users to carry powerful business tools in a small and lightweight
device. The PDA or Mobile Handheld configuration allows a wide range of
functionality. There are three two variants of the Mobile Handheld
configuration that may be selected during the creation of the platform from the
New Platform Wizard:

PDA / Mobile Handheld
PDA / Mobile Handheld variant includes the base operating system, the
Standard Windows CE Shell, Microsoft ActiveSync®, and a choice of
browsers and other applications.

PDA / Mobile Handheld with Applications

PDA / Mobile Handheld with Applications variant includes the features in
the PDA / Mobile Handheld variant, as well as Inbox, Windows Media
Player, and WordPad.

Cell Phone/Smart Phone
The Cell Phone/Smart Phone configuration is targeted to provide functionality
for a Microsoft® Windows® CE-based mobile handset. There is only one
Module 1: Overview of Windows CE .NET 11


variant of the Cell Phone/Smart Phone configuration. It supplies the foundation
for supporting voice data, e-mail, and Web-browsing on such a device. The Cell
Phone/Smart Phone configuration provides an environment with rich graphics
that supports a 160 x 220 nominal display resolution. The Cell Phone/Smart
Phone configuration includes the Standard Windows CE Shell, and may
optionally include Pocket Internet Explorer, Inbox client for Pocket Outlook®,
and Microsoft ActiveSync® technologies.
Web Pad
The Web Pad configuration is targeted to provide functionality for portable
devices that are primarily intended for accessing the Internet. The Web Pad
configuration focuses on providing the necessary support structure for Internet-
based applications, including communications and networking features. The
Web Pad configuration provides support for a mouse-based user interface (UI)
and a stylus-based touch screen and UI.
The Web Pad configuration allows a wide range of functionality. There are
three variants of the Web Pad configuration that may be selected during the
creation of the platform from the New Platform Wizard:

Web Pad
Web Pad variant provides the basic functionality for a consumer Web pad

with touch-screen UI and 640 x 480 or larger display. It includes the
Standard Windows CE Shell, Microsoft® Internet Explorer 5.5, Windows
Media™ player, and the necessary wireless networking, communications,
and mobile-device support features.

Web Pad with Applications
Web Pad with Applications variant provides the basic functionality for a
consumer Web pad with touch-screen UI and 640 x 480 or larger display. It
is identical to the Basic Web Pad version, with the addition of Pocket Word,
Inbox client companion to Microsoft Outlook®, Microsoft ActiveSync®,
and Help for Microsoft Windows® CE.

Enterprise Web Pad with Applications
Enterprise Web Pad with Applications variant provides the basic
functionality for an enterprise Web pad with touch-screen UI and 640 x 480
or larger display. It is similar to the Standard Web Pad version, with the
addition of enterprise networking, distributed application development, and
Windows thin-client–related technologies for richer integration into the
enterprise IT infrastructure.

Internet Appliance
The Internet Appliance configuration is targeted to provide functionality for
non-mobile, browser-based, consumer devices. Allowing a wide range of
functionality, there are two variants of the Internet Appliance configuration:
one provides Internet appliances with browser support only, and the other offers
Internet appliances support for both browsers and applications.
The basic Internet Appliance configuration is similar to the Web Pad
configuration, but adds greater Extensible Markup Language (XML) support
and lacks wireless networking features. As a fixed device, the Internet
Appliance supports a mouse and keyboard design with a CRT or LCD display.

Additionally, this configuration supports the Standard Windows CE Shell and
12 Module 1: Overview of Windows CE .NET


applications, which may be customized or substituted for a browser-based user
interface.
There are two variants of the Internet Appliance configuration:

Internet Appliance with Browser
Internet Appliance with Browser variant provides the basic functionality for
a consumer Internet Appliance with mouse-based UI and 640x480 or larger
display. It includes the Standard Windows CE Shell, Microsoft Internet
Explorer 5.5, Microsoft Windows Media™ player, the necessary wireless
networking, communications, and mobile-device support features.

Internet Appliance with Browser and Applications
Internet Appliance with Browser and Applications variant provides the basic
functionality for a consumer Internet Appliance with touch UI and 640x480
or larger display. It is identical to the browser-only version, with the
addition of Pocket Word, Inbox client for Pocket Outlook®, Help for
Windows CE, and Microsoft ActiveSync®.

Media Appliance
The Media Appliance configuration provides the starting point for a wide range
of devices for which media delivery is the key feature. Media appliances
include electronic book readers, electronic picture frames, audio devices, and
media storage devices.
The Media Appliance configuration allows a wide range of functionality. There
are five variants of the Media Appliance configuration that may be selected
during the creation of the platform from the New Platform Wizard:


Digital Audio Receiver/Jukebox
Digital Audio Receiver/Jukebox is a networked device that stores, decodes,
and plays Windows Media Audio and MP3 music files.

Digital Media Receiver
Digital Media Receiver is a networked device without a local storage that
decodes and plays music and video files over a network.

Portable Audio Player with Wireless Networking
Portable Audio Player with Wireless Networking is a portable device that
stores, decodes, and plays music files.

Portable DVD Player
Portable DVD Player is a portable device that plays back and navigates
DVDs.

Electronic Picture Frame
Electronic Picture Frame is a digital display device that retrieves and
displays pictures from the Internet or a home network.

Digital Imaging Device
The Digital Imaging Device configuration is targeted to provide functionality
for digital imaging devices ranging from digital cameras with wireless
connectivity, to network printers, and multi-function peripherals. There are
three variants of the Digital Imaging Device configuration:

Digital Still Camera
Module 1: Overview of Windows CE .NET 13



Digital Still Camera includes the base operating system, the Standard
Windows CE Shell, Universal Plug and Play (UPnP), and optional wireless
networking support.

Network Printer or Multifunction Peripheral
Network Printer or Multifunction Peripheral includes the base operating
system, the Standard Windows CE Shell, and networking support.

Projector
Projector includes the base operating system, the Standard Windows CE
Shell, a Web server, storage card support, and networking support.

14 Module 1: Overview of Windows CE .NET


Basic Configurations (continued)

Set-top box
z
Connects to a TV for display of Internet / media content

Residential gateway

Connects to the Internet and shares that connection with a wired or
wireless home network

Industrial automation device
z
Human Machine Interface (HMI) or Programmable Logic Controller

(PLC) variants

Retail Point-of-Sale device
z
Self-service kiosks, electronic payment terminals, POS terminals

Windows thin client
z
Minimal remote access terminal with constrained shell and RDP


Set-Top Box
The Set-Top Box (STB) configuration is targeted to provide functionality for
devices that are connected to a television for display of Internet and media
content. The STB configuration includes the standard Microsoft® Windows®
CE shell with a browser-based TV user interface. The TV navigation features
are turned on by default in the browser. The STB configuration can include the
standard Windows CE-based applications. It includes support for authentication
and cryptography services, which provide e-commerce and pay-per-view
capabilities.
Residential Gateway
The Residential Gateway configuration is targeted to provide functionality for a
networked device that is preconfigured to share an Internet connection with one
or more in-home networks. There is only one variant of the Residential
Gateway configuration. It includes support for dial-up networking, WAN/LAN
Ethernet or wireless networking, NAT/Firewall, HTTP/FTP servers for
configuration, Universal Plug and Play (UPnP), and Internet Connection
Sharing with Media Access Control (MAC) Internet Protocol (IP) bridging.
Industrial Automation Device
The Industrial Automation Device configuration is targeted to provide

functionality for industrial automation devices, whether geared toward helping
people work with machinery or toward automated processes that need no
human intervention.
There are two variants of the Industrial Automation Device configuration:

Human Machine Interface panel
Human Machine Interface (HMI) panel includes the Standard Windows CE
Shell, touch-screen user interface, Internet Explorer 5.5, Distributed
Module 1: Overview of Windows CE .NET 15


Component Object Model (DCOM), Message Queuing, and Microsoft .NET
features.

Programmable Logic Controller
Programmable Logic Controller (PLC) is a headless-based device that
includes networking, DCOM, and Message Queuing.

Retail Point-of-Sale Device
The Retail Point-of-Sale Device configuration is targeted to provide
functionality for a range of devices, from self-service kiosks and electronic
payment terminals, to retail point-of-sale terminals. There are three variants of
the Retail Point-of-Sale Device configuration:

Retail Point-of-Sale Workstation
Retail Point-of-Sale Workstation includes the Standard Windows CE Shell,
Internet Explorer 5.5, Windows Media Player, DCOM, Message Queuing,
and universal serial bus (USB) support.

Electronic Payment Terminal

Electronic Payment Terminal includes the Standard Windows CE Shell,
Windows Media Player, and universal serial bus (USB) support.

Self-Service Kiosk
Self-Service Kiosk includes the Standard Windows CE Shell, Internet
Explorer 5.5, and Windows Media Player.

Windows Thin Client
The Windows Thin Client configuration provides the starting point for a remote
access terminal. The Windows Thin Client is designed to provide those features
that are necessary to support Microsoft Terminal Services Client. This includes
a constrained shell and the Microsoft® Remote Desktop Protocol (RDP).
The Windows Thin Client configuration is originated from the Windows-based
Terminal (WBT) sample code found in the Windows-based Terminal Kit
(WBTK) version 1.5. This WBT sample source code is incorporated into the
Windows Thin Client configuration distributed with Platform Builder. The
Windows Thin Client has all of the same SNMP and local browser capabilities
as the WBT 1.5, along with the addition of RDP 5.1 and the possibility of
including additional Windows CE operating system features.
There are two variants of the Windows Thin-Client configuration:

Windows Thin Client
Windows Thin Client is a minimal version of Microsoft Windows® CE that
includes the core operating system and features necessary to support
Microsoft Terminal Services Client—including Terminal Services Client's
own constrained shell and the RDP.

Windows Thin Client with Local Browser
Windows Thin Client with Local Browser variant is similar to the
Basic/Standard version, with the addition of Microsoft Internet Explorer 5.5

and the required support features.

16 Module 1: Overview of Windows CE .NET


Basic Configurations (continued)

Tiny Kernel
z
Smallest functional Windows CE image
z
Starting point for the most compact, headless devices

Custom Device
z
The most fully customizable configuration
z
Allows you to choose from all operating system features
z
Also a variant for devices without displays


Tiny Kernel
The Tiny Kernel configuration is targeted to provide functionality for the
smallest possible Windows CE device. Due to its small size, the Tiny Kernel
configuration is designed for devices which do not require display capabilities.
The only required catalog features (and sysgen variables) associated with this
configuration are:

Debug Shell (SYSGEN_SHELL)


Control Point API (SYSGEN_UPNP_CTRL)

Custom Device
The Custom Device configuration is targeted to provide functionality for
devices that require a software configuration that can be fully customized.
These devices range from simple network devices with no display, to full-
featured appliances with graphical displays, Internet browsing capabilities, and
rich multimedia playback features. There are two basic variants for custom
devices:

Custom Device (including shell and GUI)
Custom Device (including shell and GUI) allows you to choose from all
operating system features, including those that require a graphical display.

Custom Device (no display)
Custom Device (no display) allows you to choose from all operating system
features that do not require a graphical display.
Module 1: Overview of Windows CE .NET 17


Target Hardware Support
GEODE
CEPC
KEYWEST
ASPEN
DDB5476
EAGLE
TBD
ARMINTEGRATOR

SA11X0BD
BSP Name
National Geode
Reference Platform
NS Geode
CEPCP5/P4/PIII/PII/
CelK6x/Athlon
x86
Hitachi SH3
Keywest SDB
SH3-7729
Hitachi SH4
Aspen SDB
SH4-7750SHx
NEC DDB-Vrc5476
Boston SDB
NEC Vr5432
NEC DDB-Vr4122
Eagle SDB
NEC Vr4122MIPS
Intel Lubbock SDBIntel Xscale
ARM1020
ARM Integrator
AP SDB
ARM920
Intel SA111x
Assabet SDB
Intel SA1110ARM
SDBCPUProcessor Family



Windows CE can run on dozens of individual microprocessors (CPUs) within
four major architecture families: ARM/StrongARM, MIPS, SHx, and x86.
These CPUs are supported in the form of a hardware platform that includes at
least a real-time clock and memory. Typically, platforms support other
peripherals such as serial connectors, network adapters, keyboard connectors,
and parallel connectors. When you have a custom hardware platform, you must
port Windows CE to it by creating your own Board Support Package (BSP).
During development, however, you can use a Standard Development Board
(SDB) for which a BSP is provided out-of-the-box.
Supported Processor Families
The table in the slide shows the processor families initially supported by
Windows CE .NET. Other families may be added later. A processor supported
by Windows CE .NET must power the embedded device. A supported
processor is a 32-bit processor with a memory management unit (MMU) and
translation look-aside buffer (TLB). The MMU is responsible for managing the
mapping of virtual memory addresses to physical addresses. The TLB is a small
buffer that caches the last used memory addresses to speed up the mapping
process.
Supported SDBs
Several platforms known as SDBs are available and supported out-of-the-box
by Platform Builder. The table in the slide shows the boards initially supported
by Windows CE .NET, other boards may be added later.
Board Support Packages
To help users adapt Windows CE, Microsoft provides complete Windows CE
BSP for several reference platforms known as SDBs.
In the embedded development industry, BSP is a term that refers to the software
that implements the device drivers and OEM Adaptation Layer (OAL) for a
hardware development platform or a SDB. A BSP can be source files, binary
18 Module 1: Overview of Windows CE .NET



files, or both. A BSP is used to rapidly bring up an embedded operating system
on an SDB and quickly evaluate the features of the operating system.
A BSP in Windows CE contains an OAL for initializing and customizing the
OEM's specific hardware, device drivers for peripherals, and a corresponding
set of configuration files. In most cases, you will be able to configure the BSP
to select desired peripherals, operating system features, file systems, and
memory types by editing a header file or similar construct.
Out-of-the-box BSP support is provided for nine commercial off-the-shelf
(COTS) hardware reference platforms that cover the full range of supported
microprocessors. The generic CEPC platform is also supported. This out-of-the-
box support allows OEMs to quickly evaluate their operating system features
on their reference hardware and cut down on time to market issues while
designing products with Windows CE.
The table in the slide displays a sample BSP that is shipped for each of the
SDBs.
Module 1: Overview of Windows CE .NET 19






Core Operating System Architecture
Hardware
OAL
Device Drivers
GWES
Kernel

Filesys
Applications
Programming Interfaces
(Win32, COM, MFC, ATL)
Communications interfaces
(Winsock, RAS, TAPI)
Networking
and
Communications
System
Device
Manager


The five key elements that constitute the Windows CE .NET operating system
are:

OAL
An OEM must write the OAL for any custom hardware.

Device Manager
The Device Manager process and all the device drivers connect the
operating system to the hardware.

Device Drivers
OEMs must write all or part of the device drivers for custom hardware and
peripherals.

Kernel
The Kernel module is NK.LIB. The kernel module is the bare minimum

piece of the operating system that can, along with the OAL, run on
hardware.

GWES
Graphics, Windowing, and Events Subystem (GWES) includes the Graphics
Device Interface (GDI) and user interface components.

Filesys
Filesys module is responsible for the object store, including file systems,
registry, and database storage.

In addition to discussing each of these five elements, this section will also
discuss the nature of Windows CE .NET as a Real-time Operating System
(RTOS) with advanced Power Management capabilities.
20 Module 1: Overview of Windows CE .NET


The OEM Adaptation Layer

Layer between the Kernel and the hardware

Set of functions related to system startup, interrupt
handling, power management, profiling, timer, and clock

Included in BSPs for supported SDBs

Coded by OEMs to adapt windows CE to their own
custom platforms

Linked with code provided by Microsoft to build the

Kernel


An OAL is the layer between the Windows® CE kernel and the hardware of
your target device. This layer facilitates communication between your Windows
CE-based operating system and your target device.
Windows CE provides OEMs with the following features:

Built-in BSP support for several retail hardware SDBs that are integrated
into the Platform Builder IDE. Creating your own BSP typically takes three
to six months. By taking advantage of the built-in BSP support, this time is
largely reduced.

Basic infrastructure to develop your own BSPs for your custom hardware or
SDB.

Sample OAL code for a SDB is included with the BSP. Production quality OAL
code for a custom hardware platform is something the OEM is responsible for
producing. System Integrators (SIs) with OAL experience can assist with this
task.
Module 1: Overview of Windows CE .NET 21


The Kernel Module

Portable across supported processors
z
Kernel is portable as most of the operating system is written in C

NK.EXE, COREDLL.DLL

z
NK.EXE contains Kernel code and Coredll.dll is the operating system
core DLL module

Saving system resources
z
CE loader is designed to save system resources by loading
application pages as and when needed and by keeping only one
physical copy of a DLL

Demand paging
z
Loads virtual memory pages into physical memory when needed

Multiple execute in place regions
z
Allows applications to execute code directly from read-only memory


Portable Across Supported Processors
Because most of the Windows CE operating system is written in the C
language, the kernel is easily portable to new processors. Microsoft provides a
kernel implementation for each of the supported processors.
NK.EXE and COREDLL.DLL
The kernel code is contained in a file called NK.EXE. NK stands for new
kernel, which indicates that the Windows CE kernel is not simply a port of
another kernel from a desktop version of windows, but is a new kernel.
Coredll.dll is the operating system core DLL module. It is made up of different
selectable components. This DLL exports most of the Win32 API functions.
Saving System Resources

The Windows CE loader is designed to save system resources in two ways.
First, it can load application pages as and when needed. The page size is
dependent on the processor and may vary from 1 KB to 4 KB. Second, the
loader keeps only one physical copy of a DLL, even if several processes load
the same one, only the instance data of the DLL is duplicated for each process.
Demand Paging
The demand paging mechanism allows Windows CE to load virtual memory
pages into physical memory as and when needed. For instance, Windows CE
does not load an entire application directly into physical memory, but instead
loads pages of code when they are requested. This can be overridden, if speed
is an issue, by using LoadDriver instead of LoadLib when calling your dll.
22 Module 1: Overview of Windows CE .NET


Multiple Execute in Place Regions
Execute in place (XIP) regions are areas where an application can execute code
directly from read-only memory (ROM) rather than having to load it from
random access memory (RAM).
Windows CE enables you to construct multiple XIP regions in a single system.
With this capability, you can use XIP capabilities while using more than one
memory area. For example, you could install the core operating system features
into ROM, and install the other operating system features into flash memory.
XIP applications can run in both places. You can still upgrade the FLASH
region as needed; however, the XIP region portion of memory must be read-
only.
Module 1: Overview of Windows CE .NET 23


Device Driver System


Device driver
z
Links an operating system and a device

Built-in Drivers vs. Installable Drivers
z
Built-in drivers are installed by the platform manufacturer
z
Installable drivers are third-party peripheral devices that end users can
connect to a Windows CE-based platform

Native Drivers vs. Stream Drivers
z
All of the device drivers managed by GWES are native device drivers
z
Device manager loads stream interface drivers when the system boots,
if those drivers are listed in the registry

Monolithic Drivers vs. Layered Drivers
z
Monolithic drivers implement interface directly in terms of actions on the
device they control
z
Layered drivers separate the implementation into two layers


Like other operating systems, Microsoft® Windows® CE implements software
called device drivers, whose purpose is to manage, or drive, hardware devices.
A device driver links an operating system and a device, making it possible for
the operating system to recognize the device and to present the device's services

to applications.
Windows CE allows OEMs and independent hardware vendors (IHVs) to write
drivers for devices that are built into a Windows CE-based platform or for
installable devices that users connect to Windows CE-based platforms. Built-in
devices are integral to a Windows CE-based platform and are installed by the
platform manufacturer. Display screens and PC Card or USB controllers are
often built-in. Installable devices are third-party peripheral devices that end
users can connect to a Windows CE-based platform using appropriate hardware
sockets at any time. Printers and PC Card devices are two examples of
installable devices.
All device drivers in Windows CE are dynamic-link libraries (DLLs) and may
use the standard Windows CE APIs (Win32-based) in their implementations.
This is in contrast to drivers on Windows 2000 and Windows 98 where drivers
use the Windows Driver Model (WDM) interfaces and run either in user-mode
or kernel-mode, with special privileges based on what mode drivers are in.
Developing device driver DLLs for Windows CE is typically easier than for
Windows 2000 and Windows 98, since the Windows CE driver architecture is
significantly less complex than WDM.
Certain device drivers are exceptional. IEEE 1394 drivers, for example, copy
and use the desktop WDM driver model.
As shown in the following illustration, device drivers in Windows CE are
managed by a variety of different operating system modules.

24 Module 1: Overview of Windows CE .NET


GWES Device Manager
Monolithic
device driver
Hardware

Device Driver
DDSI functions
Device Driver
DDSI functions
MDD layer
PDD layer
MDD layer
PDD layer
DDI functions
Stream interface
functions
DDI functions
GWES Device Manager
Monolithic
device driver
Hardware
Device Driver
DDSI functions
Device Driver
DDSI functions
MDD layer
PDD layer
MDD layer
PDD layer
DDI functions
Stream interface
functions
DDI functions



Drivers that are integral to a Windows CE-based platform's user interface —
such as the keyboard and display — are managed by the Graphics, Windowing,
and Event Subsystem (GWES) module. All of the device drivers managed by
GWES are native device drivers. GWES loads its drivers when the system
boots. A special process called the Device Manager handles stream interface
drivers. Device manager loads some stream interface drivers when the system
boots, if those drivers are listed in the registry. Finally, any process has the
ability to load a streams device driver after the system has booted, generally
because a user has connected an installable device to the Windows CE-based
platform.
Independent of the driver model, a device driver can be either monolithic or
layered. Monolithic drivers implement their interface directly in terms of
actions on the device they control. Layered drivers separate the implementation
into two layers — an upper layer which exposes the driver's native or stream
interface, and a lower layer that performs the hardware interactions. Many of
the sample drivers included in the Windows CE Platform Builder are layered
drivers; this reduces the work that OEMs must do to port a driver to new
hardware, since all the hardware specific details are contained in the lower
layer.

Module 1: Overview of Windows CE .NET 25


The GWES Module

Graphics, Windowing, and Event Subsystem
z
Graphic output: display and printer
z
User input: keyboard, stylus, and mouse

z
Window management: message routing

Graphic Device Interface (GDI)
z
Is the drawing subsystem of GWES
z
Controls how text and graphics are displayed
z
Uses a device context to store drawing attributes for a
specified device


GWES is the interface between the user, the application, and the operating
system, and contains most of the core Windows CE functionality. GWES is an
integrated graphics device interface (GDI), window manager, and event
manager. The GWES module is the most highly componentized portion of the
Windows CE operating system and consists of two subgroups: User and GDI.
User refers to that part of GWES that handles messages, events, and user input
from the keyboard and mouse or stylus. GDI refers to the part of GWES that is
responsible for graphical output.
Minimally-featured configurations build a basic version of Windows CE that
includes the core operating system or kernel (Core.dll) and selected GWES
support, such as messaging, user input, and power management. Minimally-
featured configurations do not display a UI or contain window management
features.
Graphics Device Interface
The Graphics Device Interface (GDI) is the GWES subsystem that controls how
text and graphics are displayed. Use GDI to draw lines, curves, closed figures,
text, and bitmap images.

GDI uses a device context (DC) to store drawing attributes for a specified
device. The graphics attributes stored in a device context include a pen for line
drawing, a brush for painting and filling, a font for text output, a bitmap for
copying or scrolling, a palette for defining the available colors, and a clipping
region. Windows CE supports printer device contexts for drawing on printers,
display device contexts for drawing on video displays, and memory device
contexts for drawing into memory.

×