The following highlights new features for driver development in Windows 10.
- Open publishing
- Debugging Tools for Windows
- Driver Verifier
- Windows Driver Frameworks
- Universal Windows drivers
- Windows Compatible hardware development boards
- Power Management Framework
- System-Supplied Driver Interfaces
- WPP Software Tracing
- Kernel
This table describes Windows 10 feature updates by driver technology.
| Driver | version 1703 | version 1607 | Windows 10 |
|---|---|---|---|
| Audio | ![]() |
![]() |
![]() |
| Bluetooth | ![]() |
![]() |
![]() |
| Buses and Ports | ![]() |
![]() |
![]() |
| Camera | ![]() |
![]() |
![]() |
| Cellular | ![]() |
![]() |
![]() |
| Display | ![]() |
![]() |
![]() |
| Human Interface Device (HID) | ![]() |
![]() |
![]() |
| Location | ![]() |
![]() |
![]() |
| Near Field Communication | ![]() |
![]() |
![]() |
| Networking | ![]() |
![]() |
![]() |
| POS | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
| Smart Card | ![]() |
![]() |
![]() |
| Storage | ![]() |
![]() |
![]() |
| System-Supplied Driver Interfaces | ![]() |
![]() |
![]() |
| USB | ![]() |
![]() |
![]() |
| WLAN | ![]() |
![]() |
![]() |
What's new in driver development
This section highlights new features for driver development in Windows 10.
Open publishing
We're making the docs more community-driven. On many pages of the Windows driver documentation, you can suggest changes directly. Look for the Contribute button in the upper right corner of a page. It looks like this:

When you click Contribute, you'll arrive at the Markdown source file for that topic in a GitHub repository. You can click Edit and suggest changes right here.
For more details, see CONTRIBUTING.md in the repo. And thanks for taking the time to improve the docs!
Debugging Tools for Windows
This section describes the changes for the debugging tools for Windows.
Windows 10, version 1703
New topics:
- JavaScript Debugger Scripting
- Published 40 undocumented stop codes in the Bug Check Code Reference
- New !ioctldecode command
Updated topics:
- New command capabilities in the dx (Display Debugger Object Model Extension) command
- dtx (Display Type - Extended Debugger Object Model Information) command
- Updates to the Configuring tools.ini topic with additional options in the tools.ini file for the command line debuggers
Windows 10, version 1607
Changes include a new topic about Debugging a UWP app using WinDbg, and updates to the 30 most-viewed developer bug check topics in Bug Check Code Reference.
Windows 10, version 1507
The following new commands are available in the Windows debugger:
- dx (Display NatVis Expression) - A new debugger command which displays object information using the NatVis extension model.
- .settings - A new command that sets, modifies, displays, loads and saves settings in the Debugger.Settings namespace.
Driver Verifier
Driver verifier includes new driver validation rules for the following technologies:
- New Rules for Audio Drivers
- New Rules for AVStream Drivers
- Four new Rules for KMDF Drivers
- Three new Rules for NDIS Drivers
- New Nullcheck rules Added in version 1703
Windows Driver Frameworks (WDF)
Windows 10, version 1607 includes Kernel-Mode Driver Framework (KMDF) version 1.19 and User-Mode Driver Framework (UMDF) version 2.19.
For info on what's included in these framework versions, see What's New for WDF Drivers in Windows 10.
Universal Windows drivers
Starting in Windows 10, you can write a single driver that works on OneCoreUAP-based editions of Windows, such as Windows 10 for desktop editions (Home, Pro, Enterprise, and Education), Windows 10 Mobile, and Windows 10 IoT Core (IoT Core). Such a driver is called a Universal Windows driver. A Universal Windows driver calls a subset of the interfaces that are available to a Windows driver. For information about how to build, install, deploy, and debug a Universal Windows driver for Windows 10, see Getting Started with Universal Windows drivers.
When you build a Universal Windows driver using Microsoft Visual Studio 2015, Visual Studio automatically checks if the APIs that your driver calls are valid for a Universal Windows driver. You can also use the ApiValidator.exe as a standalone tool to perform this task. The ApiValidator.exe tool is part of the Windows Driver Kit (WDK) for Windows 10. For info, see Validating Universal Windows drivers.
Universal Windows drivers also require a special kind of INF file called a universal INF. A universal INF can use a subset of the directives and sections available to a legacy INF file. To learn more, see Using a Universal INF File. To see which sections and directives apply, see INF File Sections and Directives.
When you're ready, use the InfVerif tool to test your driver's INF file. In addition to reporting INF syntax problems, the tool reports if the INF file will work with a Universal Windows driver.
You can also find information about which APIs you can call from a Universal Windows driver. This information is located in the Requirements block at the bottom of MSDN reference pages.
For example, you'll see a listing similar to this one that tells you if a given DDI is Universal.

For more info, see Target platform on MSDN driver reference pages.
Windows compatible hardware development boards
Windows is now supported on more affordable boards such as the Raspberry Pi 2. Become a part of our early adopter community and load Windows on that board. For more information, see Windows compatible hardware development boards.
Power Management Framework (PoFx)
The power management framework (PoFx) enables a driver to define one or more sets of individually adjustable performance states for individual components within a device. The driver can use performance states to throttle a component's workload to provide just enough performance for its current needs. For more information, see Component-Level Performance State Management.
WPP Software Tracing
WPP Software Tracing introduces a new feature: Inflight Trace Recorder. If the driver enables WPP tracing and WPP Recorder, trace logging is turned on automatically and you can easily view messages without starting or stopping trace sessions. For more fine tuned control over the log, WPP Recorder allows a KMDF driver to create and manage custom buffers.
- WPP Recorder for logging traces
- WppRecorderLogGetDefault
- WppRecorderLogCreate (KMDF only)
- WppRecorderDumpLiveDriverData
Kernel
Windows Kernel-Mode Process and Thread Manager - Starting in Windows 10 version 1703, the Windows Subsystem for Linux (WSL) enables a user to run native Linux ELF64 binaries on Windows, alongside other Windows applications. For more information about WSL architecture and the user-mode and kernel-mode components that are required to run the binaries, see the posts on the Windows Subsystem for Linux blog.
What's new for Windows 10, version 1703 (latest)
This section describes new features and improvements for driver development in Windows 10, version 1703.
Audio
New topics:
- Implementing Audio Module Communication - Describes the support for communication from Universal Windows Platform (UWP) apps to kernel mode audio device drivers.
- New DDIs and properties reference topics to support APO Module Communications discovery:
- KSPROPSETID_AudioModule - A new KS Property Set that defines three properties specific to audio modules.
- KSPROPERTY_AUDIOMODULE_COMMAND property - Allows Audio Module clients to send custom commands to query and set parameters on Audio Modules.
- IPortClsNotifications - New Port Class Notifications that provide notification helpers to miniports, to support audio module communication.
Battery
Updated DDI documentation.
Camera
New topics:
- USB Video Class (VCC) driver implementation guide
- Microsoft extensions to USB Video Class 1.5 specification
- Device transform manager (DTM) events
- IMFDeviceTransform interface
- KSCategory_Xxx Device Interface Classes
Bluetooth
Windows 10 version 1703, now provides:
- Hands-Free Profile (HFP) 1.6 specification with Wideband speech on Windows 10 for desktop editions.
- Support for Call Control APIs on Windows 10 for desktop editions.
- Support for GATT Server, Bluetooth LE Peripheral and non-paired support for Bluetooth LE. See our developer post for more details.
For more information about what's new for Bluetooth, see Bluetooth and Bluetooth LE pre-pairing.
Networking
The following lists updates to Networking:
- Winsock Kernel - Includes a new type of socket called Stream Sockets, which support Linux networking applications on Windows. New functions and structures include WskConnectEx, WskListen, WSK_CLIENT_STREAM_DISPATCH, and WSK_PROVIDER_STREAM_DISPATCH.
- Mobile Broadband (MB) - Updates include improved LTE attach features, support for Multi-SIM Operations, support for provisioning contexts into the modem, support for the Specific Absorption Rate platform, and support for network blacklisting.
- Mobile Operator Scenarios (MOs) - New database format called COSA FAQ, for MOs to provision Windows Desktop MB devices. See these topics for more updates:
POS
New topics:
- Bluetooth barcode scanner UUIDs
- BarcodeSymbologyDecodeLenthType enumeration
- BarcodeSymbologyAttributesData structure
Updated:
- New Gs1DWCode symbology to the BarcodeSymbology enumeration
USB
Windows 10 version 1703 provides a new class extension (UcmTcpciCx.sys) that supports the Universal Serial Bus Type-C Port Controller Interface Specification. A USB Type-C connector driver does not need to maintain any internal PD/Type-C state. The complexity of managing the USB Type-C connector and USB Power Delivery (PD) state machines is handled by the system. You only need to write a client driver that communicates hardware events to the system through the class extension. For more information, see USB Type-C Controller Interface driver class extensions reference.
Changes in Windows 10, version 1607
This section describes new features for driver development in Windows 10, version 1607.
Audio
New Windows Audio Architecture topic.
New audio structures and properties to better support the Cortana experience, including KSPROPERTY_AUDIO_MIC_SENSITIVITY, KSPROPERTY_AUDIO_MIC_SNR and KSAUDIO_PACKETSIZE_CONSTRAINTS2.
New topic that describes the new PKEY_AudioEndpoint_Default_VolumeInDb registry key. This INF key provides the user a better experience when appropriate gain or attenuation is applied to the audio signal.
Camera
New and updated topics to support Windows Hello and face authentication:
Extended camera controls (updated)
Location
New GNSS Breadcrumb DDIs:
JSConstraintsDebug - a command-line tool that provides debugging support for JavaScript Constraints while developing a V4 printer driver.
WLAN
New and updated topics for WLAN Device Driver Interface (WDI) version 1.0.21. For details, see WDI doc change history.
Changes in Windows 10
This section describes new features for driver development in Windows 10.
Bluetooth
New Microsoft-defined Bluetooth HCI extensions have been added.
Buses and Ports
Driver programming interfaces and in-box drivers for Simple Peripheral Bus (SPB) such as I2C and SPI, and GPIO are part of OneCoreUAP-based editions of Windows. Those drivers will run on both Windows 10 for desktop editions and Windows 10 Mobile, as well as other Windows 10 versions.
Camera
The camera driver DDIs have converged into a Universal Windows driver model, including new camera DDIs. Additional features include:
- Digital video stabilization
- Variable frame rate
- Face detection
- Video high dynamic range (HDR)
- Optical stabilization
- Scene analysis: photo HDR, flash no flash, ultra low light
- Capture stats: metadata framework/attributes, histograms
- Smooth zoom
- Hardware optimization hints
- Camera profiles
Cellular
Cellular architecture and implementation for Windows 10 has been updated.
Display
The display driver model from Windows 8.1 and Windows Phone have converged into a unified model for Windows 10.
A new memory model is implemented that gives each GPU a per-process virtual address space. Direct addressing of video memory is still supported by WDDMv2 for graphics hardware that requires it, but that is considered a legacy case. IHVs are expected to develop new hardware that supports virtual addressing. Significant changes have been made to the DDI to enable this new memory model.
Human Interface Device (HID)
The new Virtual HID Framework (VHF) eliminates the need for writing a kernel-mode transport minidriver. The framework comprises a Microsoft-provided static library (Vhfkm.lib) that exposes programming elements used by your driver. It also includes a Microsoft-provided in-box driver (Vhf.sys) that enumerates one or more child devices and proceeds to build a virtual Human Interface Device (HID) tree.
- Write a HID source driver by using Virtual HID Framework (VHF)
- Virtual HID Framework Callback Functions
- Virtual HID Framework Methods
- Virtual HID Framework Structures
Location
The Global Navigation Satellite System (GNSS) driver DDIs have converged to a GNSS Universal Windows driver model (UMDF 2.0).
Near Field Communication (NFC)
The NFC DDIs have a new converged driver model to support mobile and desktop solutions.
NFC Class Extension: A new NFC class extension driver is available. The NFC class extension driver implements all of the Windows-defined DDIs to interact with the NFC controller, secure elements, and remote RF endpoints.
Networking
The new PacketDirect Provider Interface (PDPI) is available as an extension to the existing NDIS miniport driver model. The PDPI provides an I/O model that allows applications to manage their own buffers, poll processors, and directly manage sending and receiving packets over a miniport adapter. The combination of these capabilities allow the application to completely control its own contexts leading to a much higher packet-per-second (pps) ratio.
The print driver is updated with v4 Print driver improvements and changes to support wireless printing from mobile devices, as well as the following:
-
Provides information on changes to the v4 print driver manifest to support the PWG Raster rendering filter, including updated DriverConfig and DriverRender directives, and an updated example manifest.
WS-Discovery Mobile Printing Support
Describes the WS-Discovery requirements to enable mobile printing from Windows 10 Mobile devices to Windows 10 Mobile compatible printers.
IXpsRasterizationFactory2 interface
Supports printer content conversion from XPS to PWG Raster using the XPS Rasterization Service. PWG Raster supports non-square DPIs.
-
Added the PrintDeviceCapabilities property to enable XPS rendering filters to retrieve the new PrintDeviceCapabilities XML files from the Print filter pipeline property bag.
GetWithArgument Request and Response Schemas
Provides support for mobile printing with a formal definition and example for the GetWithArgument request and response bidirectional communications schemas.
-
Adds support for mobile printing with the GetWithArgument bidirectional schema value.
Smart Card
In this release, there is a new class extension module, Wudfsmcclassext.dll, which handles complex driver operations. Smart card hardware-specific tasks are handled by your client driver. There are new programming interfaces that your client driver can use to send information about the card to the class extension so that it can process requests. Those driver programming interfaces are part of OneCoreUAP-based editions of Windows.
Storage
The new storage firmware update, updated storage protocol pass through, and expanded storage query interfaces are available. The storage firmware update IOCTL interface allows partners to update their storage device firmware. The updated storage pass through IOCTL interface supports newer protocols including non-volatile memory express (NVMe). The expanded storage query interface allows applications to query protocol-dependent information.
System-Supplied Driver Interfaces
The GUID_DEVICE_RESET_INTERFACE_STANDARD interface defines a standard way for function drivers to attempt to reset and recover a malfunctioning device.
USB
Here are the new features for USB in Windows 10. For more information, see Windows 10: What's new for USB.
- Native support for USB Type-C as defined in the USB 3.1 specification. If you are building a system with USB Type-C connectors, you can use the in-box USB Type-C Connector System Software Interface (UCSI) driver or write a USB Type-C connector driver..
- The dual role feature allows a mobile device, such as a phone, a phablet or a tablet, to designate itself as being a device or a host. See USB Dual Role Driver Stack Architecture for more information.
- Support for writing a driver for USB emulated devices by using the Microsoft-provided USB device emulation class extension (UdeCx).
- Support for writing a driver for a host controller that is not xHCI specification-compliant or a virtual host controller. To write such a driver, see Developing Windows drivers for USB host controllers.
- Support writing function controller driver by using USB function class extension (UFX). See Developing Windows drivers for USB function controllers.
WLAN
WDI (WLAN Device Driver Interface) is a new WLAN Universal Windows driver model that converges the WLAN drivers on Windows 10 for desktop editions and Windows 10 Mobile.






