Skip to main content
March 18, 2015
Mobile

Developing for the Windows 10 Device Platform



This week at WinHEC, we were able to talk to silicon, hardware, and device partners about the advances we are making in Windows 10 to simplify building Windows devices, drivers, and apps. Some of the key advances we disclosed this week include:

  1. The Windows 10 device platform allows IHVs to develop a single universal driver that can be deployed across all Windows 10 device families (e.g., PCs, phones, IoT).
  2. The Windows 10 device platform provides new tools and techniques to reduce the cost and complexity of imaging and manufacturing Windows 10 devices.
  3. In-market and new hardware development boards will support Windows 10 and Windows universal drivers.
  4. Windows 10 will include a new IoT edition for small devices that is tuned to run Windows universal apps and drivers and is royalty free to makers and device builders.

Windows 10 will include a new IoT edition for small devices that is tuned to run Windows universal apps and drivers and is royalty free to makers and device builders. To highlight these advances, we demonstrated a single universal app that talked to a UV sensor via a single universal driver running on three different Windows 10 editions (PC, phone, and IoT) and three different hardware development boards (Intel Sharks Cove, Intel MinnowBoard MAX, and Qualcomm 410c). Let’s look in more detail at how all of this works.

Windows 10 and devices

Embracing the broad spectrum of devices that will run Windows required a change in how we build the operating system and how our technical partners who build apps and devices interact with Windows.

With Windows 10, we have factored the core OS components that are required on every form factor into a common platform that is part of every Windows 10 edition. For each Windows device family (e.g., PCs, phones, Xbox), we augment that common platform with device family-specific components, functionality, and experiences that allow Windows to exploit what is unique about the device’s capabilities. We also augment that common platform with the functionality required to support that device family’s applications and drivers – your PC apps and peripherals still work when you upgrade to your PC to Windows 10.

1

For the user, this approach to engineering Windows means that their experience of Windows 10 is exploitive of the unique hardware capabilities and characteristics of each device. Your Windows 10 phone can have the unique characteristics that make for a great phone (like making a phone call), while your Windows 10 PC can support the familiar user experience that is optimized for mouse and keyboard. Moreover, your Windows Phone apps continue to work on Windows 10 phones, and the catalog of Windows desktop applications that has been growing for over two decades continues to work great on your Windows 10 PC.

For our partners, this approach to engineering means that the core platform is the same across all these devices. For ISVs, this increases the number of devices running the common app platform, which Kevin Gallo did a great job summarizing in his blog post. For IHVs and silicon partners, this means that their investment in Windows technology can be adapted more easily to new device form factors both today and in the future.

The Windows device platform

Windows 10 defines a universal device platform to allow silicon, hardware, and device developers to leverage their investment in Windows across all Windows device families.

2

 

Our goals for Windows 10 device platform have been:

  1. Simplify driver development to increase the scale and quality of Windows devices.
  2. Lower the cost of developing and manufacturing Windows devices
  3. Enable hardware development and experimentation with Windows
  4. Allow Windows to be deployed on single-purpose IoT devices with limited resources

Let’s look at what we’re doing to achieve these goals.

Simpler driver development

Windows 10 provides a single Windows Driver Kit (WDK) that supports developing drivers for all Windows device families. The WDK augments Visual Studio and the Windows SDK with the headers, libraries, and tools needed to build Windows drivers and devices.

Windows 10 provides a single Device Driver Interface (DDI) that spans all Windows device families, which allows IHVs to develop one Windows universal driver that can be deployed on all Windows device families. The WDK provides explicit support for universal driver development, from validating API conformance as well as producing packages appropriate for deployment on all Windows 10 devices.

To further simplify the development of drivers for Windows 10, we are taking a foundational component of Windows, the Windows Device Frameworks (WDF), and releasing the source on GitHub. WDF greatly simplifies the development of both kernel-mode and user-mode drivers, and providing source access will make developing and debugging WDF-based drivers much improved on Windows 10.

Improved device imaging and manufacturing

Building a device requires more than just drivers. With Windows 10, we are making improvements in how the overall device image is constructed during development and customization, and then deployed to devices in the lab or on the manufacturing floor.

In Windows 10, we are making Fast Flash Update (FFU) available on all Windows device families. FFU defines an image format that is optimized for secure sector-based disk imaging. The Windows 10 WDK includes tools that allow OS components, Board Support Packages (BSPs), drivers, and apps to all be composed into a single FFU file. That FFU file can then be used to directly flash up to 8 USB-tethered devices per host PC, or to produce a fully partitioned, formatted, and populated disk that can be attached during assembly.

To lower the cost of manufacturing Windows devices, Windows 10 supports booting into manufacturing mode. Manufacturing mode allows a Windows device to be imaged once early in the manufacturing process with the final retail image, but to boot on the manufacturing line to only the functionality needed to perform manufacturing validation.

Accessible hardware development

Designing and developing great devices often involves both prototyping and bring-up of very nascent hardware. From IHVs building sensors or cameras, to consumer electronics or industrial device manufacturers as well as the IoT and maker communities, having an easily accessible hardware platform for doing device development is critical.

We are working with our silicon partners to bring hardware development boards together with Windows 10. Our partners are developing Windows 10 Board Support Packages (BSPs) using Windows universal drivers, which allows the device ecosystem to deploy the edition of Windows on those boards that best meets their engineering scenario.

For Intel Atom processors, we are supporting both Sharks Cove and MinnowBoard MAX boards. Sharks Cove provides more complete access to the SoC’s functionality, making it the right choice for development of PC-like devices. MinnowBoard Max is a lower-cost board that is designed for the maker and embedded market.

For ARM processors, we have announced Windows 10 support for popular the Raspberry Pi 2. This week, Microsoft and Qualcomm announced that we will support Windows 10 on the 8016-based Dragonboard 410C.

Windows 10 for IoT

For most consumers, Windows is what powers their general purpose computing devices such as PCs or phones. For the broader device and hardware ecosystem, Windows has always played a role in powering single-purpose devices that span industrial control, retail, healthcare, and beyond.

Windows 10 brings forward our desktop- and mobile-based editions of Windows that are tailored to these IoT markets. This week at WinHEC, we announced a third IoT edition of Windows 10 that is targeted at the lowest footprint and resource consumption possible, making it suitable for small devices.

This new edition of Windows 10 builds on the same one core OS and platform that underlies Windows 10 for phones or PCs, but is optimized for single-app/purpose-built IoT devices. This edition of Windows is capable of running the same universal apps and universal drivers that can be deployed to PCs or phones. To keep storage and memory costs low, this edition of Windows 10 does not include a Windows start experience or in-box apps. Instead, the device maker builds the device experience as a Windows universal app and configures the device to launch that app at boot, giving the device developer complete control over the device experience.

Getting ready for Windows 10

The talks and labs we presented this week at WinHEC are being made available on the web – if you weren’t able to attend WinHEC and want to get up to speed, this is a great way to ramp up.

For information around device and driver development, our hardware dev center has links to content and news, and is where the Windows 10 WDK will be made available.

For information around IoT specifically, our Windows On Devices web site has what you need.

If you have already joined the Windows Insider Program, thank you for helping make Windows 10 better. We are close to delivering our first Windows 10 SDK and WDK, and the Windows Insider Program is the best way to get Windows 10 ahead of that release.

Don Box
Distinguished Engineer, Operating Systems Group