EMB321 How To Write A Windows CE SDIO Client

Slides:



Advertisements
Similar presentations
Optimizing Device Drivers For Terminal Servers Plug And Play Device Redirection Framework Gaurav Daga Program Manager Windows Terminal Server Microsoft.
Advertisements

Categories of I/O Devices
purpose Search : automation methods for device driver development in IP-based embedded systems in order to achieve high reliability, productivity, reusability.
This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.
Microsoft Windows XP SP2 Urs P. Küderli Strategic Security Advisor Microsoft Schweiz GmbH.
EMB306 Building Windows CE Devices With DX Support John L. Marcantonio Program Manager Windows CE Multimedia Microsoft Corporation.
EMB304 Building Trustworthy Windows CE Embedded Devices and Applications Ganapathy Raman Program Manager Windows CE Security Team Microsoft Corporation.
Microsoft Office System UK Developers Conference Radisson Edwardian, Heathrow 29 th & 30 th June 2005.
64bit Development Overview March 28 Microsoft. Objectives Learn about the current 64-bit platforms from a hardware, software and tools perspective Review.
Hands-On Microsoft Windows Server 2003 Networking Chapter 1 Windows Server 2003 Networking Overview.
Amit Chopra APP209 Introducing “Orcas” Huh ? What’s “Orcas”?
What’s new for Rich Clients? Martin Parry Developer & Platform Group Microsoft Ltd
1 Chapter Overview Introduction to Windows XP Professional Printing Setting Up Network Printers Connecting to Network Printers Configuring Network Printers.
WDK Driver Test Manager. Outline HCT and the history of driver testing Problems to solve Goals of the WDK Driver Test Manager (DTM) Automated Deployment.
Johan Arwidmark Chief Technical Architect TrueSec WEM303.
Rob Hwacinski Sr. Program Manager Lead Microsoft Corporation WEM206 Ashwin Kulkarni Sr. Product Manager Microsoft Corporation.
EMB313 Increasing Developer Productivity With Windows CE 5.0 Matt Young Windows Mobile Joint Development Program (JDP) Microsoft.
CLI339 Building Bluetooth Applications On The Windows CE 5.0 And Windows Mobile Platforms Anil Dhawan Program Manager Windows Mobile.
Punit Shah Technical Lead | Microsoft
Case Study: ATI Device Power Management In Windows Vista Phil Mummah Software Architect ATI.
Using The WDK For Windows Logo And Signature Testing Craig Rowland Program Manager Windows Driver Kits Microsoft Corporation.
DXVA 2.0 A new Hardware Video Acceleration Pipeline for Windows Vista
What is Windows Embedded all about? Don Kerr Embedded Strategy Manager Microsoft Australia Andrew McGrath PrincipalBluBits SOL215.
EMB425 Using Advanced Platform Builder Debugger Features James Stulz Program Manager Windows CE Core Tools Microsoft Corporation.
EMB313 Increasing Developer Productivity With Windows CE 5.0
How To Write A Windows CE SDIO Client Driver
OFC 322 Building Office Research Web Services: Exposing Corporate Data Through Office Brian Jones Program Manager Authoring Services Martin Sawicki Lead.
David Harding Software Design Engineer Network Devices Platform Microsoft Corporation SoftAP-Based Test Infrastructure For Obtaining The Logo For WLAN.
Crystal Hoyer Program Manager IIS Team Preview of features that will be announced at MIX09 Please do not blog, take pictures or video of session.
EMB318 Improve Product Quality Using Windows CE Error Reporting (Watson) James Stulz Program Manager Windows CE Core Tools Microsoft Corporation.
EMB315 Non-Volatile Object Store And Hive Based Registry Design For Windows CE Rick Austin Principle Engineer Intermec Corporation.
EMB426 Windows CE Memory Architecture Steve Maillet CEO/Chief Software Architect EmbeddedFusion.
Using the WDK for Windows Logo and Signature Testing Craig Rowland Program Manager Windows Driver Kits Microsoft Corporation.
CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead
BIZ208 Windows CE 5.0 Bringing to Market a Broad Range of Devices Dan Javnozon Product Manager MEDG Microsoft Corporation Business Track Presentation.
EMB423 Creating A Trusted Environment For Windows CE 5.0 Nat Frampton President Real Time Development
EMB320 Windows CE 5.0 Image Configuration, Boot Loaders, And Security
EMB422 Advanced Embedded Visual C++ Application Development Control - View Nat Frampton President Real Time Development
EMB424 Implementing Fault Tolerant Systems in Windows CE 5.0 Nat Frampton President Real Time Development
MBL206 A First Look at the Microsoft Location Server (MLS) Steve Lombardi Technical Product Manager MapPoint Business Unit Microsoft Corporation.
New Managed Messaging, State, And Notification APIs In Windows Mobile 2005 Gaurav Khanna Developer Evangelist Microsoft India.
EMB427 Writing Real-Time Applications On Windows CE 5.0 Nat Frampton President Real Time Development Corporation
CLI205 Basic Considerations For Mobile PC Application Development Tablet and Mobile PC Technical Evangelist Microsoft Corporation.
Dissecting the Windows CE Build Process James Y. Wilson Principal Engineer, Windows Embedded MVP CalAmp, Inc. James Y. Wilson Principal Engineer, Windows.
CLI325 In Depth – Ink Data Management Mark Hopkins Programmer Writer Tablet and Mobile PC Group Microsoft Corporation.
WHQL Code Coverage Prototype Program Andy Wen. 2 Agenda What is Code Coverage Prototype Program? What is Code Coverage Prototype Program? A prototype.
© 2008 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED,
SVR201 SQL Server 2005 Mobile Edition: The Evolution Of SQL Server CE Scott Smith Program Manager Visual Studio for Devices Microsoft Corporation.
CLI210 Introduction To Managed Development For Devices With Visual Studio 2005 Scott D. Smith Program Manager Visual Studio for Devices Microsoft Corporation.
Making The Most Of RFID In Your Applications Anush Kumar DATL01 Program Manager Microsoft Corporation
Service Pack 2 System Center Configuration Manager 2007.
Advanced Memory Management Douglas Boling President Boling Consulting Inc.
Windows CE Services Douglas Boling President Boling Consulting Inc.
Gowtham Prasad K N Partner Technical Consultant | Microsoft Corporation |
1 © 2004 Cisco Systems, Inc. All rights reserved. Session Number Presentation_ID Cisco Technical Support Seminar Using the Cisco Technical Support Website.
Planning Server Deployments Chapter 1. Server Deployment When planning a server deployment for a large enterprise network, the operating system edition.
BizTalk Damir Dobric Lead Architect. Agenda Microsoft BizTalk RFID Overview Architecture Application models Implementing Event Handlers Sensors.
Office 365 Development July 2014.
Wireless Communication and Networks
Visual Studio Tools for Office 2005
TechEd /14/2018 6:26 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered.
The Application Lifecycle
New Developer Tools in Windows Embedded Standard 2011
Intro to Workflow Services and Windows Server AppFabric
1/14/2019 3:57 AM © 2004 Microsoft Corporation. All rights reserved.
From Development to Production: Optimizing for Continuous Delivery
Delivering great hardware solutions for Windows
From Development to Production: Optimizing for Continuous Delivery
Forum on Application Compatibility for Windows “Longhorn”
Presentation transcript:

EMB321 How To Write A Windows CE SDIO Client 4/19/2017 6:39 PM EMB321 How To Write A Windows CE SDIO Client Jay Loney - Program Manager Steve Schrock – Software Engineer Windows CE Microsoft Corporation © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

4/19/2017 6:39 PM © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

OEM Hardware and Standard Drivers Standard PC Hardware and Drivers 4/19/2017 6:39 PM Hardware/Drivers OEM/IHV Supplied BSP (ARM, SH4, MIPS) OEM Hardware and Standard Drivers Standard PC Hardware and Drivers Windows XP DDK Device Building Tools Platform Builder Windows Embedded Studio Data Lightweight Relational EDB SQL Server 2005 Express Edition SQL Server 2005 Mobile Edition SQL Server 2005 Native Managed Server Side Win32 Programming Model MFC 8.0, ATL 8.0 .NET Compact Framework .NET Framework ASP.NET Mobile Controls ASP.NET Multimedia Windows Media DirectX Location Services MapPoint Development Tools Visual Studio 2005 Internet Security and Acceleration Server Communications & Messaging Exchange Server Live Communications Server Speech Server Device Update Agent Management Tools Image Update Software Update Services Systems Management Server Microsoft Operations Manager © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Overview CE SDIO Stack Features What does the CE stack look like? 4/19/2017 6:39 PM Overview CE SDIO Stack Features What does the CE stack look like? How to write a client Bluetooth code walkthrough © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

SDIO Support In CE 5.0 Dynamic insert/remove 4/19/2017 6:39 PM SDIO Support In CE 5.0 Dynamic insert/remove DMA (optional in standard host spec, platform dependent) SDIO interrupts Dynamic clock control Error recovery Wake-up Power will be handled using CE Power Manager Clients may be power-managed and tell the controller to put its slot into a different power state Multi-function and Combo devices Also support MMC v3.0 basic functionality In the next Windows Mobile release we’re adding: Support MMC v4.0 basic functionality Performance enhancements for single block cards © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

4/19/2017 6:39 PM The Secure In SD SDA SD Memory specification provides a mechanism to lock content to a specific machine We are not providing a block driver supporting it in 5.0 release explicitly. SDBus does allow you to build your own though Digital Rights Management (DRM) for all of CE is being supplied by a filesystem filter driver at a level above the SD Memory block driver © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

CE 5.0 SDIO Architecture Client Drivers Host Software Stack Hardware 4/19/2017 6:39 PM CE 5.0 SDIO Architecture FatFS Location Services Client Drivers SDIO GPS Client Driver SD Memory (block driver) SDBus Driver Host Software Stack SD Host Driver SD Host Controller Hardware SD Memory Card SDIO GPS Card © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

SD Bus Driver Enumerates cards to determine if MMC, SD Memory or SDIO 4/19/2017 6:39 PM SD Bus Driver Enumerates cards to determine if MMC, SD Memory or SDIO Determines voltage to use for card Loads clients based on registry values Queues bus requests Queues asynchronous notifications from host controller Bus request completion, SDIO interrupts, device insertion/removal Performs error handling with retry © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Standard Host Controller 4/19/2017 6:39 PM Standard Host Controller SDA Host Working Group (MSFT executive member) Defined Standard Host Register Specification to standardize hardware interface from bus to controller Currently ratified to v1.0 by SDA executive committee MSFT strongly advocating this standard to all IHVs, ODMs, OEMs and Silicons Also support for PXa270, OMAP730, SMDK2410 © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Compatibility With SDIO Now! 4/19/2017 6:39 PM Compatibility With SDIO Now! BSquare has an install base PPCs on the market today Target was to maintain client driver compatibility to ensure smooth transition of marketplace Have verified we’re compatible using SDIO Now! Client Drivers compiled into x86 running on CEPC w/ Standard Host Controllers © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Windows CE Provided Clients 4/19/2017 6:39 PM Windows CE Provided Clients SD Memory (MMC support verified) SDIO Bluetooth Type A class SDIO GPS class SDIO WiFi (vendor specific) © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

How To Write A Client Driver 4/19/2017 6:39 PM How To Write A Client Driver Client Driver model Registry loads driver Checklist of functions © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Client Driver Model Streams interface for API 4/19/2017 6:39 PM Client Driver Model Streams interface for API Init, Deinit are the only ones strictly required Suggested use of Open, Close, Read, Write, IOControl, PowerUp/Down as appropriate © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Registry Entries Custom Driver: [HKEY_LOCAL_MACHINE\Drivers 4/19/2017 6:39 PM Registry Entries Custom Driver: [HKEY_LOCAL_MACHINE\Drivers \SDCARD\ClientDrivers\Custom \MANF-02DB-CARDID-0002-FUNC-1] "Dll"=“mydriver.dll" "Prefix"=“XXX“ Class Driver: \SDCARD\ClientDrivers\Class\SDIO_Class\3] "Dll"=“bthsdio.dll" "Prefix"=“BSD“ SD Memory and MMC have special class keys as well © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

MANF, CARDID And FUNC For custom SDIO cards 4/19/2017 6:39 PM MANF, CARDID And FUNC For custom SDIO cards MANF is the four digit hexadecimal value of the Manufacturer ID CARDID is the four digit hexadecimal value of the Card ID FUNC is the decimal value of the card function number for which the driver is being loaded © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

4/19/2017 6:39 PM Checklist Get SDA specs and card manufacturer specs. Use Bluetooth driver as an example XXX_Init() Get the unique identification handle for the client © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

4/19/2017 6:39 PM SDGetDeviceHandle Takes in device initialization context passed back from XXX_Init and registry path Return Value: SD_DEVICE_HANDLE This device handle is passed to every other SD Bus API © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

4/19/2017 6:39 PM Checklist Create a function to receive asynchronous slot state change notifications Register the client driver with the SD Bus driver [SDIO] Enable the SDIO function [SDIO] Determine which function on the card the driver is associated with © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Slot Events Recommended SlotEventCallBack() 4/19/2017 6:39 PM Slot Events Recommended SlotEventCallBack() Provides Asynchronous info about changes in slot state Example: SDCardEjected © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

4/19/2017 6:39 PM SDRegisterClient Fill in structure with the local device context, slot event callback, and a friendly name Friendly name used for debug output After successful registration, all other SD Bus APIs may be called © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

SDSetCardFeature Configures the card SD_IO_FUNCTION_ENABLE 4/19/2017 6:39 PM SDSetCardFeature Configures the card SD_IO_FUNCTION_ENABLE SD_IO_FUNCTION_DISABLE SD_IO_FUNCTION_SET_BLOCK_SIZE SD_SET_CARD_INTERFACE Sets both the bus width and the bus clock frequency © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

SDCardInfoQuery Provides information about card and host controller 4/19/2017 6:39 PM SDCardInfoQuery Provides information about card and host controller Function number Host controller maximum block size Current bus clock and width Address of function’s SDIO CIS region Parsed card register structures CSD CID DSR RCA SCR © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Code Sample – Initialization 4/19/2017 6:39 PM Code Sample – Initialization public\common\oak\drivers\sdcard sdclientdrivers\bluetooth\bthsdio.cpp CSdioDevice::Attach() © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

4/19/2017 6:39 PM © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Checklist Retrieve the host controller’s max block size 4/19/2017 6:39 PM Checklist Retrieve the host controller’s max block size Use SDCardInfoQuery [SDIO] Retrieve the function’s max block size from the card tuples Use the smaller maximum block size [SDIO] Set the block size on the card Use SDSetCardFeature © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

SDGetTuple Simplifies reading tuples from the CIS 4/19/2017 6:39 PM SDGetTuple Simplifies reading tuples from the CIS Information residing in tuples: Maximum block size Power draw Manufacturer code © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Code Sample Maximum Block Size 4/19/2017 6:39 PM Code Sample Maximum Block Size CSdioDevice::GetMaxBlockLen() © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Checklist [SDIO] Determine if the card supports multi-block transfers 4/19/2017 6:39 PM Checklist [SDIO] Determine if the card supports multi-block transfers Read from CCCR [SDIO] Create and register a function to receive interrupt notifications Transfer data via Bus Requests… © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

4/19/2017 6:39 PM SDIO Interrupts Card notifies driver of Asynchronous events via SDIO interrupts SDIOConnectInterrupt() to register for a callback Client must clear the interrupt before exiting callback Return SD_API_STATUS_SUCCESS © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Code Sample – Interrupts 4/19/2017 6:39 PM Code Sample – Interrupts CSdioDevice::SDIOIsrCallBack() CSdioDevice::SDIOIsrCallback_Int() © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Touching Card Registers 4/19/2017 6:39 PM Touching Card Registers SDReadWriteRegistersDirect() – for multiple single-byte transfers Single-byte transfers are slow so try to avoid them Used for doing things like: Determining if the card is multi-block capable (CCCR) Clearing and enabling card specific interrupt settings Setting card specific modes Read if data is available © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Read/Write – Bus Requests 4/19/2017 6:39 PM Read/Write – Bus Requests Client driver interacts with the card via the Bus driver using Bus Requests. These requests pass the SD CMD to the card Sync – must wait for response before issuing subsequent commands SDSynchronousBusRequest() Async – subsequent commands are queued by Bus driver. You must free the bus request after completion SDBusRequest() Second parameter of both is the SD Command SDCancelBusRequest() © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

4/19/2017 6:39 PM Sync Versus Async Async helps the most when sending many small blocks (Not multi-block) Async will always be at least as fast or faster then Sync If you submit a bunch of async requests, they’ll be queued by the bus driver, good because bus driver optimizes bus activity Sync is easier to program, less logic in client © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Issuing An SDIO Command 4/19/2017 6:39 PM Issuing An SDIO Command CMDs are listed in the SDA specifications You should build the arguments via Macros Two macros that build the complex command statements for you: BUILD_IO_RW_DIRECT_ARG() BUILD_IO_RW_EXTENDED_ARG() Call SDSynchronousBusRequest() or SDBusRequest() with the command argument © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Code Sample – Transfers 4/19/2017 6:39 PM Code Sample – Transfers CSdioDevice::SDSend() Synchronous CSdioDevice::SDRecv() Asynchronous © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

4/19/2017 6:39 PM Call To Action Write a CE driver for your SDIO Hardware and sell more chips Become a member of the Driver Developer program http://msdn.microsoft.com/embedded/usewinemb/ ce/drivers/driverdev/default.aspx Advertise your driver on our web site of supported drivers http://msdn.microsoft.com/embedded/usewinemb/ ce/drivers/supdrivers/default.aspx Contact JayLoney @ Microsoft.com © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

While at MEDC 2005… Fill out an evaluation for this session 4/19/2017 6:39 PM While at MEDC 2005… Fill out an evaluation for this session Randomly selected instant WIN prizes! Visit the Microsoft Product Pavilion in the Exhibit Hall Shorelines B Use real technology in a lab Instructor led Reef E/F & Breakers L Self-paced Reef B/C © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

After The Conference… Build Develop Install 4/19/2017 6:39 PM After The Conference… Build Install Build Join Full-featured trial versions of Windows CE and/or Windows XP Embedded Cool stuff & tell us about it: msdn.microsoft.com/embedded/community Windows Embedded Partner Program: www.mswep.com Develop Install Enter Join Windows Mobile 5.0 Eval Kit including Visual Studio 2005 Beta 2 Mobile2Market Contest and win up to $25000: mobile2marketcontest.com Microsoft Solutions Partner Program: partner.microsoft.com © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Tools & Resources Build Develop Websites Newsgroups Blogs Tools 4/19/2017 6:39 PM Tools & Resources Build Develop Websites msdn.microsoft.com/ embedded msdn.microsoft.com/ mobility Newsgroups microsoft.public. windowsxp.embedded windowsce.platbuilder windowsce.embedded.vc microsoft.public. pocketpc.developer smartphone.developer dotnet.framework.compactframework Blogs blogs.msdn.com/ mikehall blogs.msdn.com/ windowsmobile vsdteam netcfteam Tools Windows CE 5.0 Eval Kit Windows XP Embedded Eval Kit Windows Mobile 5.0 Eval Kit © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

4/19/2017 6:39 PM © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

© 2005 Microsoft Corporation. All rights reserved. 4/19/2017 6:39 PM © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.