Home > Articles > Operating Systems, Server

Platform Basics in Windows CE

Learn how environment variables can be used to further customize a build for a particular platform using Windows CE's Platform Builder.

The goal for Windows CE is to be able to run in a variety of devices and appliances. If you stop and think for a moment, you will realize that the world of consumer electronics is home to an array of devices that have wildly fluctuating hardware architectures. It would be hazardous to make assumptions about the processor, processor speed, available RAM, and storage medium on any given device. Can a tiny handheld digital telephone make room for a Pentium processor? Does it make sense for a refrigerator to have a hard disk? What's an operating system to do?

Microsoft has attempted to resolve these issues by making Windows CE a component-based operating system. A few of the basic OS functions are mandatory and must be supported by any hardware device that intends to use Windows CE. Everything else is up for grabs; you can add it to your operating system, or you can leave it out.

What exactly are these components? A component is a particular functionality that can be integrated into or left out of Windows CE. Components are available in the form of drivers, static or dynamic libraries, and executables. Windows CE can be built with selected components that are appropriate to the platform being developed. The tool that is used to build modified versions of Windows CE is called Platform Builder. Platform Builder is a set of CDs that contain utilities, files, and the components of Windows CE. Components can be platform dependent or platform independent. An example of a platform-dependent component is the kernel for an x86 PC. A component that allows the user to calibrate the touch panel and saves the coordinates is an example of a component that is platform independent. In addition, a component usually has a distinct resulting build target—either an executable or an object module library.

Let's look at the concept of a module. Several components can be linked together to form a module. A module is an executable or library file that performs a set of well-defined operations and exports a well-defined API. A module is divided into components according to areas of functionality, although such division is historically restricted by how the code was written. Microsoft has done its best to separate the modules into components in such a way that OEMs can select only the functionality they need for their platform. On value-priced consumer devices with multiple form factors, this is a critical feature. However, not all modules can be broken down into components.

Exploring Components in Platform Builder

Now that we have an idea of what components are, let's look at the real situation in the Platform Builder IDE. If you start Platform Builder and wait for it to open its main window, you will see all components collected in a Catalog window (Figure 3.1).

Figure 3.1 Catalog window in Platform Builder

Platform Builder Catalog

The Catalog window in Platform Builder lists all the components that are available for inclusion in your build of the operating system. To create a custom version of Windows CE, also referred to as a build, you must create a project in Platform Builder. Note that Platform Builder terminology dictates that a component in the Catalog window is referred to as an implementation. When the implementation is included in a project, it becomes a component. An implementation is depicted by the icon shown in Figure 3.2. Implementations are grouped together by functionality into categories, or types. Types are depicted by the icon shown in Figure 3.3. An example of a type is display, which groups together available display drivers in a platform.

Figure 3.2 Implementation icon

Figure 3.3 Type icon

The types can be traversed and viewed just like a folder hierarchy. The implementations contained in the types and folders of the default catalog (see Figure 3.1) opened by Platform Builder are presented in Table 3.1. You can extend the default catalog view by adding components of your own. We'll say more about that later in the chapter.

Table 3.1  Types and Implementations in the Default Catalog

Folder

Configuration

Type

Implementation

Description

coreos

 

 

 

A folder that contains sample configurations of the operating system.

 

IESAMPLE

 

 

A sample configuration that includes almost all available components and adds the Internet Explorer Web browser control. Full localization is supported, and the Input Method Manager (IMM) is also included.

 

MAXALL

 

 

A sample configuration that includes almost all available components, including the shell and Pocket applications.

 

MINCOMM

 

 

A sample configuration that includes a minimal set of components and adds serial communications and networking.

 

MINGDI

 

 

A sample configuration that includes a minimal set of components that can support the Graphical Device Interface (GDI). No window support is provided, but you can use GDI calls to create a minimal user interface if required.

 

MININPUT

 

 

A sample configuration that includes a minimal set of components that can support user input via the keyboard. A display

 

 

 

 

driver is included, but GDI is not supported.

 

MINKERN

 

 

A sample configuration that contains the operating system kernel and a "Hello World!" application that outputs text to the debug serial port. This is a good first configuration to use when you're booting a platform with Windows CE.

 

MINSHELL

 

 

A sample configuration that is very much like MAXALL without the Pocket applications.

 

MINWMGR

 

 

A sample configuration that includes components that can support the window manager. Full networking support is included.

Drivers

 

 

 

A folder that contains platform-specific device drivers.

 

CEPC

 

 

A folder that contains device drivers for the CEPC platform, which supports the x86 family of processors.

 

 

display

 

Display drivers type.

 

 

 

Ddi_ct

Display driver for Chips & Technologies CT6555x chip set.

 

 

 

Ddi_364

Display driver for the S3 Trio64 chip set.

 

 

 

Ddi_s3v

Display driver for the S3 ViRGE chip set.

 

 

 

Ddi_vga8

A simple VGA display driver for eight-bits-per-pixel displays. A good first choice when testing a display adapter on a CEPC or any other platform that supports a VGA-compatible display.

 

 

kbdms

 

Keyboard and mouse drivers type.

 

 

 

Kbdmsengus1

Driver for U.S. English keyboards.

 

 

 

Kbdmsjpn1,

Drivers for Japanese keyboards.

 

 

Kbdmsjpn2

 

 

 

 

nscirda

 

Infrared driver.

 

 

ohci

 

Universal Serial Bus (USB) host controller interface driver.

 

 

pc_ddk

 

Hardware Abstraction Library (HAL).

 

 

 

Ddk_bus

Implementation of routines to abstract bus I/O (input/output).

 

 

 

Ddk_map

Implementation of routines to abstract memory I/O.

 

 

pcmcia

 

PCMCIA driver.

 

 

serial

 

Serial port driver.

 

 

sermouse

 

Serial mouse driver.

 

 

wavedev

 

SoundBlaster AWE64 PNP ISA driver.

 

 

eboot

 

Ethernet debugging library and helper routines for creating an Ethernet boot loader.

 

ODO

 

 

Device drivers for the Hitachi D9000 (Odo) platform, which supports multiple processors.

OAL

 

 

 

OEM Abstraction Layer type. This is a platform-specific layer of code that is created by the OEM.

 

CEPC

 

 

OAL for the CEPC.

 

ODO

 

 

OAL for the D9000.

Platform

 

 

 

A folder that contains Platform Manager

 

 

 

 

Manager client components. These components are used to provide a communication channel between Platform Builder and the operating system being developed on the platform.

 

Cemgrc

 

 

Platform Manager client. This component manages high-level communication between the Platform Builder (cemgr.exe) and the operating system running on the platform.

 

Transport

 

 

Transport component type. A transport component is the protocol to be used between Platform Builder and the Platform Manager client.

 

 

pm_ppp

 

PPP protocol used as transport.

 

 

pm_tcpip

 

TCP/IP protocol used as transport.

 

 

pm_cesrv

 

Windows CE services transport.

Runtimes

 

 

 

A folder that contains runtime environments for Windows CE application development.

 

Adoce

 

 

A configuration that contains ActiveX data objects for Windows CE.

 

VB

 

 

A configuration that contains components for Visual Basic runtime support.

 

 

vbeng

 

Visual Basic runtime engine.

 

 

vbforms

 

Support for forms.

 

 

controls

 

Visual Basic controls.

 

 

 

MSCEComDlg

Common dialog control.

 

 

 

MSCEComm

Support for common controls.

 

 

 

MSCECommandBar

Command bar control.

 

 

 

MSCEFile

File I/O control.

 

 

 

MSCEGrid

Grid control.

 

 

 

MSCEImage

Image control.

 

 

 

MSCEImageList

Image list control.

 

 

 

MSCEListView

List view control.

 

 

 

MSCEPicture

Picture control.

 

 

 

MSCETabStrip

Tab control.

 

 

 

MSCETreeView

Tree view control.

 

 

 

MSCEWinSock

A control that supports the Windows Socket API.

 

VC

 

 

A folder that contains components for Visual C++ runtime support.

 

 

mfc

 

Runtime component for Microsoft Foundation Classes.

 

 

atl

 

Runtime component for Active Template Library.


Now that we have these components in a catalog, what can we do with them? Components are reusable objects and can be added to any project. The best way to illustrate the use of the catalog is to create a sample project. As we discussed in Chapter 2, the best place to start is to run Windows CE on a PC. For our first Windows CE build, we'll create a special build of the CEPC based on MAXALL called Adam. A special build of Windows CE is referred to as a platform.

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020