Introducing Microsoft Windows CE 3.0
Summary: This white paper outlines the capabilities of Microsoft Windows CE version 3.0. (7 printed pages)
Windows CE 3.0 Features
Driver and Hardware Support
Interprocess Communication Services
For More Information
Microsoft® Windows® CE is an open, scalable, 32-bit operating system that is designed to meet the needs of a broad range of intelligent devices, from enterprise tools such as industrial controllers, communications hubs, and point-of-sale terminals to consumer products such as cameras, telephones, and home entertainment devices. A typical Windows CE-based embedded system targets a specific use, runs disconnected from other computers, and requires an operating system that has a small footprint and a built-in deterministic response to interrupts.
Windows CE 3.0 offers improved Windows compatibility, combined with hard real-time processing support. New kernel services, such as support for nested interrupts, better thread response, additional task priorities, and semaphores, let the operating system respond immediately to events and interrupts. These real-time features make Windows CE 3.0 ideally suited for industrial applications such as robotics, test and measurement devices, and programmable logic controllers.
With greater storage and file-handling capabilities, interprocess communications, and networking support, Windows CE 3.0 interoperates easily with desktop environments that are based on Microsoft Windows NT® and Microsoft Windows 2000, which makes it the optimal choice for an enterprise system that combines small mobile systems with high-performance desktops servers and workstations.
Windows CE 3.0 consists of a set of discrete modules and submodules, or components, each of which provides full or partial support for major features of the operating system. By selecting a minimum set of modules and components, a device manufacturer can design an operating system tailored to requirements of a particular device. By controlling the size ("footprint") of the operating system, OEMs can design for speed and efficiency, while still providing the performance of 32-bit, preemptive multitasking, multithreaded system and the richest possible set of APIs for developing applications.
Application developers will appreciate Windows CE 3.0's support for Microsoft ActiveX® controls, message queuing (MSMQ), Component Object Model (COM) interfaces, Active Template Library (ATL), and the Microsoft Foundation Classes (MFC) Library. ActiveSync provides easy connectivity between the desktop and the embedded device, whether by serial connection, infrared port, or network cable. There is built-in support for multimedia, including Microsoft DirectX®, communications (TCP/IP, SNMP, TAPI, and more), and security. A variety of integrated applications, including Pocket Internet Explorer, Pocket Outlook, and Pocket Word expose objects that allow you to extend and customize the existing system, as well as extend the functionality of your own application.
Real-time-support enhancements to Windows CE include the following:
- Support for nested interrupts. Support has been added for nested interrupts, which allows interrupts that are at higher priority levels to be serviced immediately, instead of having them wait for a lower priority ISR to complete.
- Better thread response. The upper bound on scheduling latencies for high-priority ISTs (interrupt service threads) has been tightened. This improvement in thread response allows developers to know specifically when the thread transitions occur and aids in the creation of new embedded applications by increasing the capabilities of monitoring and controlling hardware in Windows CE.
- More priority levels. 256 priority levels (up from 8 in earlier versions) allow developers more flexibility in controlling the scheduling of embedded systems.
- The ability to control the quantum of any thread in the system allows greater control over the scheduler.
Kernel enhancements to Windows CE 3.0 include the following:
- Support for on-chip debugging. Hardware-assisted debugging enables debugging of the OAL before the OS kernel is running, simplifying the OAL debugging process.
- A device I/O control (IOCTL) function that allows a unique serial number on each device.
- Multiple execute-in-place (XIP) regions.
- Event tracking functions that allow platform developers to track events and improve performance.
- The ability to enable or disable compression for the ROM (read-only memory) and object store.
- Common Executable Format component, which enables the same application to run on multiple CPUs without recompiling.
- Full-kernel mode support, in which all threads run in kernel mode and performance optimizations are enabled.
- Support for semaphores.
- Kernel-level security. A new security model prevents unauthorized applications from accessing system APIs and potentially damaging the platform. An OEM can specify whether modules and processes can run or not run and specify those that are fully trusted on a particular platform. Two new APIs allow software developers to retrieve the assigned trust level of a module or a process.
New driver and hardware support for Windows CE 3.0 includes the following:
- Dial-up boot loader. The dial-up boot loader enables the platform image to be updated from the field. It supports security and certificate authentication, and connects to standard Web server technologies, such as HTTP (Hypertext Transfer Protocol), FTP (File Transfer Protocol), PPP (Point-to-Point Protocol), and SLIP (Serial Line Internet Protocol).
Enhanced USB support
- UHCI (Universal Host Controller Interface) driver.
- Sample USB Function controller driver, based on the Scanlogic SL11 chipset, for faster device synchronization and application debugging purposes.
- USB HID (Human Interface Device) driver with Direct Input interface.
Enhanced display-driver support
- Flat-mode display driver for CEPC platform that works with most of the PC-based display cards currently available.
- ATI Rage XL 2D-only. Hardware-accelerated display driver that supplements the older S3Virge display driver.
- Performance enhancements to S3Virge display driver.
- Sample display drivers that illustrate the use of software cursors and anti-aliased text.
- New Serial MDD driver that improves serial interface performance.
- Sample USB, PCMCIA (Personal Computer Memory Card International Association), and Serial Smart Card drivers.
- Support for the DiskOnChip Millennium product from M-Systems, Inc. via the TrueFFS driver. DiskOnChip is a NAND-based linear flash memory device.
Windows CE 3.0 supports larger data storage systems, and larger files within those systems.
- The size of the object store has been increased to 256 MB (from 16 MB in Windows CE version 2.1). Individual files now can be as large as 32 MB and a database volume can be as large as 256 MB.
- The number of objects that can be kept in the object store has been increased from 216 (65,536) to 222 (4,194,304). Because the allowable number of objects exceeds the number of available object identifiers, freed object identifiers will be reused for new objects, effective with version 3.0. However, an object identifier will not be reused for at least 16 object allocations.
- Support has been added for querying VERSIONINFO resources to obtain version and language-support information from files.
Security enhancements to Windows CE include the following:
- Smartcard subsystem, including a resource manager API and reader drivers, for developing PS/SC-compliant smart card systems for Windows CE. RSAENH (Microsoft Enhanced Cryptography Service), which includes 128-bit encryption algorithms.
- Cryptography Service Provider Development Kit.
- Sample kernel-loader authentication program that uses public key signatures to prevent unauthorized applications from running.
Communications enhancements to Windows CE include the following:
- TAPI 2.1 support. The Windows CE 3.0 subset of TAPI 2.1 includes inbound data modem call capability, and support for adding TSPs (telephony service providers). A Unimodem TSP for AT-command-based modems is included.
- RAS (remote access server) client support that uses TAPI to make the call, and then manages the data through either PPP or SLIP.
- Simple Network Management Protocol support. Windows CE 3.0 includes SNMPv2c extensible agent support, MIB II (TCP/IP stack), Host MIB, and a sample MIB.
- Improved TCP/IP support. Equivalent to that offered on Windows 2000, Windows CE now supports dead gateway detection, which enables better fault tolerance across different network segments, and forwarding across multiple interfaces.
- NDIS (network driver interface specification) now supports intermediate drivers, the NDIS WAN (wide area network) media type, and token-ring networks. The Windows CE 3.0 DDK includes a new, improved NDIS Test utility.
- A full-feature WinInet component, which is used by Internet applications to access HTTP and FTP services.
- Web (HTTP) server support. HTTP includes ASP (Active Server Pages), ISAPI (Internet Server API) filters, and extensions.
- Name Resolution, which is expanded to ensure that DNS, WINS, and broadcast name resolution is supported fully.
- DHCP (Dynamic Host Configuration Protocol) client support now includes Autonet, which assigns an IP address to a device if a DHCP server is not available. Autonet allows Windows CE-based devices to connect to a network where there is no DHCP server is not available.
- IP Helper APIs provide application developers more control over TCP/IP. For example, they provide access to the Route and ARP tables. In addition to the IP helper APIs, Windows CE 3.0 supports the following tools: Route, IPConfig, and PING.
- IrDA protocol, for infrared communication.
- CIFS redirector. Windows CE supports the CIFS redirector for accessing remote file systems and printers. The CIFS protocol is referred to also as the Server Message Block (SMB) protocol.
- Serial Communications.
- Two separate COM modules offer two different levels of COM support: a limited-feature, small-footprint module that provides interprocess calls and a free-threading mode, and a full-featured module that supports out-of-process calls, full-threading model support, and DCOM. The DCOM module, with the exception of the security interfaces, is fully compatible with Windows NT version 4.0 SP5.
- Enhanced MSMQ support in Windows CE 3.0 provides independent client support for messaging applications. MSMQ for Windows CE is compatible with Windows NT, Windows 98, and Windows 2000 Message Queuing Services.
Shell services enhancements to Windows CE include the following:
- Resolution-independent controls and dialog boxes.
The Microsoft Windows CE Handheld PC (H/PC) Professional Edition shell includes the following applications:
- Pocket Inbox e-mail application
- Pocket Word
- Online Help
- Control Panel (including source code)
A new browser control that is compatible with IE 4 for the desktop, but optimized for Windows CE, supports
- ActiveX controls, JScript (ECMAScript), HTML version 4.0 and DHTML, and cascading style sheets
- 40-bit and 128-bit SSL (Secure Sockets Layer)
- GIF, JPEG, and BMP image formats
- Offline browsing
- Integration with Windows CE Java virtual machine and DirectX.
Windows CE is Unicode-based and includes international support for many locales, allowing you to create products that are appropriate for specific markets. Essential localization support is included for OEMs who want to create localized versions of the operating system.
Windows CE provides full localization support, including binary resource (.res) and configuration files, automatically for these locales: Dutch, French, German, Italian, Japanese, Korean, Portuguese (Brazilian), Spanish, and Swedish.
A new Japanese handwriting input method editor (IME) application, along with the source code for the input method, is included in the SDK.
For more information on Windows CE modules and components, see Understanding Modularity in Microsoft Windows CE 2.1 in the MSDN Library.
For more information on Windows CE real-time systems, see Real-Time Systems with Microsoft Windows CE 2.1 in the MSDN Library.
For more information on public key signatures see the Public-Key Infrastructure pages on the Internet Engineering Task Force Web site at http://www.ietf.org.