Agenda

. Convergence . One . Universal . Summary Convergence

WHY

. Mobile . OS: WinCE . Developer platform: .NetCF, Win32CE, OpenGL

. PC . OS: Windows NT . Developer platform: Win32, .NET, Silverlight, XNA, DX

. TV . OS (Media Center): Windows NT . OS (): NT-mutant . Developer platform Xbox: .NetCF/XNA on Win2K fork

. and cloud . OS: Windows NT and Azure Convergence

BENEFITS

. Consistent developer story (internal/external) . No porting costs

. Allow product groups to focus on customer value

. Increased Agility . Innovation and bug fixes flow more rapidly

. Engineering efficiency . Opportunity for improvements/cleanup Convergence

OS

Products Windows Windows Windows Mobile Servers Clients (Home, DNS (Enterprise, File Ultimate etc) / WinPE & Data Center Serv EV etc) DHC Friends er P Converged OS Mobile Client Core Core

Presentation (DxCore, MFCore, etc) MinServer

Core System

Mincore Mincore PSPs

Minwin Minwin PSPs One

WHAT

. Refactored a common subset of the OS

. Build all of our products with that common subset on Win10

. Properties of this subset: Common API Surface . Common codebase Universal App Platform (UAP) . Mostly the same binaries (e.g. same kernel) . Exposes a subset of the Win32 API surface . Kernel mode DDIs are the same as Desktop OneCore

Common Driver Surface Universal Driver One

WHAT

Supports Universal Drivers & Universal Apps Xbox SystemOS

Desktop Windows & Server Mobile Required packages OneCoreUAP T Test packages; ex. VM drivers, tools Optional packages Product specific packages 0 Edition (WIM, VHD, FFU, etc.) OneCoreUAPTest IoT Athens

Sakura

UAP = Universal App Platform One

WHAT

Product Specific UI (Shell) Out of box experience (OOBE)

OneCore-AppRuntime – Required by all MSFT OS-es that support universal apps and universal drivers Compositor OneCore – Optional Packages OneCore-DeviceRuntime Networking XAML Voice Cellular Dev. Tools & Extended Hyper-V Bluetooth USB Stack Transports

Mobile IE Core CoreCLR IIS Cmd.exe WLAN Sensors Broadband Minuser WWA Connection & win32k Low Power NUI Drivers NFC Sharing Buses Input mgmt. DX Network & routing Management PowerShell Data Usage Required packages -OneCore-AppRuntime package OneCore - Required T Test packages; ex. VM drivers, tools ETW & Servicing Usermode Storage Auth COM Telemetry Support Stack Power Infra Optional packages

C/C++ Resource Core Product specific packages Usermode PnP Crypto Kernel HAL Manager Networking Runtime 0 Edition (WIM, VHD, FFU, etc.) One

WHAT

Win32 WinRT APIs

Universal app developers windowsapp.lib WinRT Classes 1. Universal driver developers onecoreuap.lib 2. System code devs (GPU perf tool)

Full Win32 kernel32.lib & advapi32.lib devs Overlappin g API surface Universal

WHAT

. Based on OneCore

. Kernel/User mode driver

. Installed as part of a Universal Driver Package. Universal

WHAT

. Runs on all Windows editions that includes the Windows Universal Platform (WUP) . Desktop, mobile, IoT . All converged device driver stacks are included

. Value Proposition: . Write 1 driver binary per architecture works on desktop, mobile, IoT . Single API surface from drivers and apps using WUP . Any Windows edition can be used as a driver test platform . Sell components to desktop as well as mobile OEMs/ODMS without needing a different driver Universal

DO

1. Install Visual Studio

2. Install WDK . Includes all headers and libs needed for driver development

3. Select Universal Driver as Target

4. Select architecture (ARM, x86, x64)

5. Add your code, headers, libs, etc

6. Compile / debug / etc. . Loop until done

7. Deploy to target machine (dev board)

8. Run available tests Universal

VALIDATION TOOL

. Included in the WDK . "C:\Program Files (x86)\Windows Kits\8.2\bin\x86\apivalidator.exe“

. Runs as a post build process for Universal Drivers . Also can be run on command line

. Flags APIs used in the driver project that aren’t part of the Windows Universal Platform Universal

IMPACT

. Kernel mode drivers . Mostly backwards compatible . Minimal changes needed

. User mode drivers and services . Not all Win32 APIs are available as part of Windows Universal Platform . A binary (DLL, EXE) linked with missing APIs will not load . Replacement APIs may be available in some cases . Re-design/re-implementation will be required if APIs are not available Universal

PORTING

. The developer: . Developer launches VS and opens existing driver project written for win8 . The project get upgraded as part of WDK by default . Changes TargetPlatform settings from “Desktop” to “Universal” . Builds the driver . May get build errors because the driver is making calls to APIs not available for universal drivers . Remove/replace API calls . Builds driver clean, and deploys Summary

PC U N MOBILE I V

TV ONE E R SERVER/CLOUD S A L (c) 2015 Microsoft Corporation. All rights reserved. This document is provided "as-is." Information and views expressed in this document, including URL and other Internet Web site references, may change without notice. You bear the risk of using it. This document does not provide you with any legal rights to any intellectual property in any Microsoft product. You may copy and use this document for your internal, reference purposes.

Some information relates to pre-released product which may be substantially modified before it’s commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here.