What's new in driver development

This section provides information about the new features and updates to Windows driver development in Windows 10.

The following is a list of new feature highlights for driver development in Windows 10.

The following table shows the feature updates in Windows 10, by driver technology and version.

Driver version 1803 version 1709 version 1703 version 1607 version 1507
Audio details details details details not available
ACPI details details not available not available not available
Biometric not available details not available not available not available
Bluetooth details not available details not available details
Buses and Ports not available not available not available not available details
Camera details not available details details details
Cellular not available not available not available not available details
Display details details not available not available details
Driver security details not available not available not available details
Hardware notifications not available details not available not available not available
Human Interface Device (HID) not available not available not available not available details
Kernel details details details not available not available
Location not available not available not available details details
Mobile broadband details details details not available not available
Near Field Communication not available not available not available not available details
Networking details details details not available details
POS not available not available details not available not available
PCI details details not available not available not available
Print not available not available not available details details
Pulse Width Modulation not available details not available not available not available
Sensors details not available not available not available not available
Smart Card not available not available not available not available details
Storage not available details not available not available details
System-Supplied Driver Interfaces not available not available not available not available details
USB details details details not available details
WI-FI details not available not available not available not available
WLAN not available not available not available details details

What's new in driver development for Windows 10

Back to Top

This section provides highlights of 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:

screenshot of contribute button

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 in the debugging tools for Windows.

Debugging in Windows 10, version 1803

WinDbg Preview Time Travel Debugging (TTD) hands on lab - This lab introduces Time Travel Debugging (TTD), using a small sample program with a code flaw. TTD is used to debug, identify and root cause the issue.

Debugging in Windows 10, version 1709

The following is a list of new content sets for the Debugger in Windows 10, version 1709:

Debugging in Windows 10, version 1703

The following table shows changes for the Debugger in Windows 10, version 1703:

New topics Updated topics
JavaScript Debugger Scripting dtx (Display Type - Extended Debugger Object Model Information) command
40 undocumented stop codes in the Bug Check Code Reference Updates to the Configuring tools.ini topic with additional options in the tools.ini file for the command line debuggers
!ioctldecode command New command capabilities in the dx (Display Debugger Object Model Extension) command

Debugging in Windows 10, version 1607

In Windows 10, version 1607, changes to the Debugger 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.

Debugging in Windows 10, version 1507

The following is a list of new commands for the Windows Debugger in Windows 10, version 1507:

  • 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:

Windows Driver Frameworks (WDF)

WDF in Windows 10, version 1803

In Windows 10, version 1803, the Windows Driver Framework (WDF) includes Kernel-Mode Driver Framework (KMDF) version 1.25 and User-Mode Driver Framework version 2.25. For info on what's included in these framework versions, see What's New for WDF Drivers in Windows 10.

To see what was added in previous versions of WDF, see KMDF Version History and UMDF Version History.

The following topics are new for WDF:

Universal Windows drivers

This section describes new and updated features for Universal Windows drivers in Windows 10.

Universal Drivers in Windows 10, version 1803

See the latest recommendations for universal drivers in Getting started with universal drivers.

Universal Drivers in Windows 10, version 1709

The following is a list of new features to Universal Drivers in Windows 10, version 1709:

  • Updating Device Firmware using Windows Update - Describes how to update a removable or in-chassis device's firmware by using the Windows Update (WU) service.
  • Reg2inf - The Driver Package INF Registry Conversion Tool (reg2inf.exe) converts a registry key and its values or a COM .dll implementing a DLL RegisterServer routine, into a set of INF AddReg directives. These directives are included in the driver package INF file.

The following is a list of updates to Universal Drivers in Windows 10, version 1709:

Universal Drivers in Windows 10

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 driver reference pages.

For example, you'll see a listing similar to this one that tells you if a given DDI is Universal.

target platform set to universal in requirements block

For more info, see Target platform on 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.

What's new in Windows 10, version 1803 (latest)

This section describes new features and updates for driver development in Windows 10, version 1803 (Windows 10 April 2018 Update).

ACPI

Windows 10, version 1803 includes updates to ACPI DDIs to support platform capabilities and physical device location.

Audio

The voice activation topic was updated to include additional information on APO requirements.

Bluetooth

Windows 10, version 1803 introduces support for Swift Pair. Users no longer need to navigate the Settings App and find their peripheral to pair. Windows can now do this for them by popping a notification when a new peripheral is nearby and ready. There are two sets of requirements to ensure your peripheral works with Swift Pair. One set is for the peripheral’s behavior, and another for the structure and values in a Microsoft defined vendor advertisement section. For more information, see:

Windows 10, version 1803 supports Bluetooth version 5.0. For information about profile support, see Bluetooth Version and Profile Support in Windows 10.

Camera

Updates to Camera driver development include:

  • DShow (DirectShow) Bridge implementation guidance for UVC devices - Implementation guidance for configuring DShow Bridge for cameras and devices that comply with the USB Video Class (UVC) specification. The platform uses Microsoft OS Descriptors from the USB bus standard to configure DShow Bridge. The Extended Properties OS Descriptors are an extension of USB standard descriptors and are used by USB devices to return Windows specific device properties that are not enabled through standard specifications.
  • 360 camera video capture - Provides support for 360 camera preview, capture, and record with existing MediaCapture APIs. This enables the platform to expose spherical frame sources (for example, equirectangular frames ), enabling apps to detect and handle 360 video camera streams as well as to provide a 360 capture experience.

Display

The following are updates to Display driver development in Windows 10, version 1803:

  • Indirect Display UMDF class extension - The Indirect Display driver can pass the SRM to the rendering GPU and have a mechanism to query the SRM version being used.

  • IOMMU hardware-based GPU isolation support - Increases security by restricting GPU access to system memory.

  • GPU paravirtualization support - Enables display drivers to provide rendering capabilities to Hyper-V virtualized environments.

  • Brightness - A new brightness interface to support multiple displays that can be set to calibrated nit-based brightness levels.

  • D3D11 bitstream encryption - Additional GUIDS and parameters to D3D11 to support exposing CENC, CENS, CBC1, and CBCS with 8 or 16 byte initialization vectors.

  • D3D11 and D3D12 video decode histogram - A luminance histogram allows the media team to leverage fixed function hardware for histogram to improve tone mapping quality for HDR/EDR scenarios. Fixed function hardware is useful when GPU is already saturated in these scenarios and to enable parallel processing. This feature is optional and should only be implemented if fixed function hardware is available. This feature should not be implemented with 3D or Compute.

  • D3D12 video decode now supports Decode Tier II, indicating driver supports Array of Textures that enable applications to amortize allocation cost and reduce peak memory usage during resolution change.

  • Tiled resource tier and LDA atomics - A new cross node sharing tier to add support for atomic shader instructions working across linked adapter (LDA) nodes. This improves ISVs ability to implement multiple GPU rendering techniques like split frame rendering (SFR) and clearly advances the capabilities over what is possible in D3D11.

  • GPU dithering support - Drivers can report the ability to performing dithering on the wire signal for a given timing mode. This allows the OS to explicitly request dithering in scenarios where a higher effective bit depth is needed than is physically available on the monitor link, for example for HDR10 over HDMI 2.0.

  • Post-processing color enhancement override - Adds the ability for the OS to request that the driver temporarily disable any post-processing that enhances or alters display colors. This is to support scenarios where specific applications want to enforce colorimetrically accurate color behavior on the display, and safely coexist with OEM or IHV-proprietary display color enhancements.

  • Direct3D12 and Video - New API and DDI to provide access to the following capabilities:

    • Hardware accelerated video decoding
    • Content Protection
    • Video processing
  • DisplayID - A new DDI, designed to allow the VESA’s DisplayID descriptor to be queried from a display controlled by a graphics adapter and shall support DisplayID v1.3 and DisplayID v2.0. The DDI is an extension of existing DxgkDdiQueryAdapterInfo DDI and shall be supported by all drivers with DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_3, including kernel mode display only drivers and indirect display drivers.

  • GPU performance data - Extensions to DdiQueryAdapterInfo will expose information such as temperature, fan speed, clock speeds for engines and memory, memory bandwidth, power draw, and voltages

  • Miscellaneous - A new SupportContextlessPresent driver cap to help IHV onboard new driver.

  • Improvements to External/Removable GPU support in the OS. As a first step to add better support, Dxgkrnl needs to determine if a GPU is “detachable”, i.e. hot-pluggable. For RS4 we would like to leverage the driver’s knowledge about this instead of building our own infrastructure. For this purpose, we are adding a “Detachable” bit to DXGK_ DRIVERCAPS struct. Driver will set this bit during adapter initialization if the adapter is hot-pluggable.

  • Display Diagnostics - Kernel mode device driver interface (DDI) changes to allow the driver for a display controller to report diagnostic events to the OS. This provides a channel through which the driver can log events which would otherwise be invisible to the OS as the events are not a response to an OS request or something the OS needs to react to.

  • Shared graphics power components - Allows non-graphics drivers to participate in the power management of a graphics device. A non-graphics driver will use a driver interface to manage one or more of these shared power components in coordination with the graphics driver.

  • Shared texture improvements - Includes increasing the types of textures that can be shared across processes and D3D devices. This design enables the frame server OS component to support monochrome with minimal memory copying.

Driver security

Updates to Windows Driver Security Guidance and the Driver security checklist, which provides a driver security checklist for driver developers.

Windows kernel

This section describes the new and updates features for Windows kernel driver development in Windows 10, version 1803.

A set of new APIs have been added to the kit to enable third parties to create their own KDNET extensibility modules or KdSerial transport layers. For sample code, see “Kernel Transport Samples” (ddk\samples\kdserial and ddk\samples\kdnet) in the Debuggers folder.

Support was added to provide drivers with a sanctioned location (that the operating system knows about) where they can store file state. With this approach, the system can associate files in that location with a device or driver.

There are distinct locations to store file states specific to the internals of a driver and specific to a device. For drivers that have file state, you can decide if the state written to disk is:

  • Driver state (IoGetDriverDirectory): global to the driver that might be controlling multiple devices), or

  • Device state (IoGetDeviceDirectory): specific to the driver-controlled single device and other devices might have different values for similar state.

Function drivers (FDO) can now negotiate additional power when their respective PCIe devices are in a D3Cold state. This includes:

  • Auxiliary power requirement D3COLD_REQUEST_AUX_POWER.
  • Core power rail D3COLD_REQUEST_CORE_POWER_RAIL.
  • Requirement for a fixed delay time between the message is received at the PCI Express Downstream Port and the time the platform asserts PERST# to the slot during the corresponding endpoint’s or PCI Express Upstream Port’s transition to D3cold while the system is in an ACPI operational state. See D3COLD_REQUEST_PERST_DELAY.

NT services and kernel-mode and user-mode drivers can raise a custom trigger for a device by using the RtlRaiseCustomSystemEventTrigger function. A custom trigger, owned by the driver developer, notifies system event broker to start an associated background task with it, which is identified by a custom trigger identifier.

You can now register for active session change notification and get a callback when the notification is fired. As part of this notification, some data is also shared with the caller. This associated data is delivered via the PO_SPR_ACTIVE_SESSION_DATA structure.

Networking

This section outlines new features and improvements for Windows Networking driver development in Windows 10, version 1803.

NDIS and NetAdapterCx

Updates to NDIS include:

The following topics are new for the Network Adapter WDF class extension (NetAdapterCx):

Additionally, new topics are available for a preview-only feature, the Mobile Broadband class extension (MBBCx), which uses the NetAdapterCx model for mobile broadband connectivity.

Mobile broadband

In mobile broadband, a new topic detailing MB low level UICC access is available.

Mobile operators

New Hotspot and AppID settings are now a part of desktop COSA. Mobile operators are strongly encouraged to transition from broadband app experience apps with Sysdev metadata packages to MO UWP Apps and the COSA database.

PCIe

New ACPI _DSD methods have been added to support these Modern Standby and PCI hot plug scenarios:

  • Directed Deepest Runtime Idle Power State (DDRIPS) support on PCIe Root Ports
  • Identifying PCIe Root Ports supporting hot plug in D3
  • Identifying externally exposed PCIe Root Ports

For information, see ACPI Interface: Device Specific Data (_DSD) for PCIe Root Ports.

Sensors

The SENSOR_CONNECTION_TYPES enumeration was added to clarify connection type properties.

USB

New APIs were added to simulate detach for shared connectors. If a USB device is attached to a host or have shared connector while the stack is being removed while the device is attached to a host or have shared connectors, you can simulate a detach event. At this point all attach/detach notification mechanisms are disabled. For more information, see UfxDeviceNotifyFinalExit function.

Wi-fi

Updates to Wi-fi driver development include a new TLV for the Nic Auto Power Saver (NAPS) advanced power management feature and updates to the platform level device recovery service (PLDR).

What's new in Windows 10, version 1709

This section describes new features and updates for driver development in Windows 10, version 1709.

Back to Top

Audio

The following is a list of updates to Windows Audio driver development in Windows 10, version 1709:

  • New Configure and query audio device modules
  • Extensive updates to voice activation
    • More details on chained and keyword only activation
    • A new glossary of terms
    • Additional information on training and recognition, such as pin and audio format information
    • An updated keyword system overview
    • Updated information on wake on voice

ACPI

The following is a list of new Advanced Configuration and Power Interface (ACPI) DDIs to support input/output buffers.

Biometric

There are new signing requirements for Windows Biometric Drivers. For more information, see Signing WBDI Drivers.

Display

The following is a list of new features for Windows Display driver development in Windows 10, version 1709.

  • Display ColorSpace Transform DDIs provide additional control over color space transforms applied in the post-composition display pipeline.
  • The D3D12 Copy Queue Timestamp Queries feature will allow applications to issue timestamp queries on COPY command lists/queues. These timestamps are specified to function identically to timestamps on other engines.
  • Enhanced Video integration into Direct3D12 Runtime through:
    1. Hardware accelerated video decoding
    2. Content protection
    3. Video processing

Hardware notifications

In Windows 10, version 1709, there is support for hardware-agnostic support of notification components such as LEDs and vibration mechanisms. For more information, see:

Windows kernel

In Windows 10, version 1709, several new routines to the Windows Kernel for drivers have been added.

Mobile broadband

The following is a list of new features for Windows Mobile Broadband and Mobile Operator Scenarios for driver development in Windows 10, version 1709:

In Windows 10, version 1709, the desktop COSA documentation was updated to include new branding-related fields. See the list of deprecated features for other changes to Mobile Operator Scenarios.

Networking

This section outlines new features and improvements for Windows Networking driver development in Windows 10, version 1709.

The following is a list of new and updated features for NDIS:

Virtualized PCI

There are new programming interfaces for writing a Physical Function driver for devices that conform to the PCI Express Single-Root I/O Virtualization (SR-IOV) specification. The interfaces are declared in Pcivirt.h. For more information, see PCI virtualization.

Pulse Width Modulation (PWM) Controllers

In Windows 10, version 1709, to provide access to a Pulse width modulation (PWM) controller that is part of the SoC and memory-mapped to the SoC address space, you need to write a kernel-mode driver. For more information, see PWM driver for an on-SoC PWM module.

To parse and validate pin paths and extract the pin number, kernel model drivers should use PwmParsePinPath.

An app can send requests to the controller driver by sending PWM IOCTLs requests.

Storage and File Systems

In File Systems and Storage, the ufs.h header was added in Windows 10, version 1709 to provide additional support to Universal Flash Storage.

Posix updates include new functions delete and rename.

The following is a list of headers that were updated in Windows 10, version 1709:

  • ata.h
  • fltKernel.h
  • minitape.h
  • ntddscsi.h
  • ntddstor.h
  • ntddvol.h
  • ntifs.h
  • scsi.h
  • storport.h

USB

This section describes the new features for USB in Windows 10, version 1709.

Media Agnostic USB (MA-USB) protocol

The USB driver stack can send USB packets over non-USB physical mediums such as Wi-Fi by using the Media Agnostic USB (MA-USB) protocol. To implement this feature, new programming interfaces have been released. The new DDIs allow the driver to determine the delays associated with the _URB_GET_ISOCH_PIPE_TRANSFER_PATH_DELAYS. That information can be retrieved by building a new URB request. For information about this new feature, see the following topics:

To support MA-USB, the host controller driver must provide the transport characteristics by implementing specific callback functions. The following table shows the callback functions and structures that support MA-USB.

Callback Functions Structures
EVT_UCX_USBDEVICE_GET_CHARACTERISTIC UCX_ENDPOINT_ISOCH_TRANSFER_PATH_DELAYS
EVT_UCX_USBDEVICE_RESUME UCX_CONTROLLER_ENDPOINT_CHARACTERISTIC_PRIORITY
EVT_UCX_USBDEVICE_SUSPEND UCX_ENDPOINT_CHARACTERISTIC
EVT_UCX_ENDPOINT_GET_ISOCH_TRANSFER_PATH_DELAYS UCX_ENDPOINT_CHARACTERISTIC_TYPE
EVT_UCX_ENDPOINT_SET_CHARACTERISTIC UCX_ENDPOINT_ISOCH_TRANSFER_PATH_DELAYS

Synchronized system QPC with USB frame and microframes

There are new programming interfaces that retrieve the system query performance counter (QPC) value synchronized with the frame and microframe.

This information is retrieved only when the caller enables the feature in the host controller. To enable the feature, a host controller driver must implement the following callback functions.

An application can use these APIs to enable/disable the feature and retrieve the information:

Other drivers can send these IOCTL requests to enable/disable the feature and retrieve the information:

Here are the supporting structures for synchronized system OPC with USB frame and microframes:

IOCTL_UCMTCPCI_PORT_CONTROLLER_DISPLAYPORT_DISPLAY_OUT_STATUS_CHANGED

The IOCTL_UCMTCPCI_PORT_CONTROLLER_DISPLAYPORT_DISPLAY_OUT_STATUS_CHANGED request is a new request in USB Type-C Port Controller Interface framework extension. This request notifies the client driver that the display out status of the DisplayPort connection has changed.

Here are the structures that support the IOCTL_UCMTCPCI_PORT_CONTROLLER_DISPLAYPORT_DISPLAY_OUT_STATUS_CHANGED request:

What's new in Windows 10, version 1703

This section describes new and improved features for driver development in Windows 10, version 1703.

Back to Top

Audio

The following is a list of new topics for Audio driver development in Windows 10, version 1703:

  • 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.

Bluetooth

The following is a list of updates to Bluetooth in Windows 10 version 1703:

  • 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.

Camera

The following is a list of updates to Camera driver development in Windows 10, version 1703:

Windows 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.

Mobile broadband

Updates to Mobile Broadband (MB) 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.

Updates to Mobile Operator Scenarios (MOs) include a new database format called COSA FAQ, for MOs to provision Windows Desktop MB devices. See these topics for more updates:

Networking

Updates to Networking driver development in Windows 10, version 1703 includes a new type of socket called Stream Sockets, which support Linux networking applications on Windows. See Winsock Kernel for more info. New functions and structures include WskConnectEx, WskListen, WSK_CLIENT_STREAM_DISPATCH, and WSK_PROVIDER_STREAM_DISPATCH

POS

The following is a list of new topics for POS in Windows 10, version 1703:

There is a 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.

What's new in Windows 10, version 1607

Back to Top

This section describes new features and improvements for driver development in Windows 10, version 1607.

Audio

The following is a list of new topics for Audio driver development in Windows 10, version 1607.

Camera

Camera driver development in Windows 10, version 1607 includes new and updated topics to support Windows Hello and face authentication:

Location

Location driver development in Windows 10, version 1607 includes the following new GNSS Breadcrumb DDIs:

Printer driver development in Windows 10, version 1607 includes JSConstraintsDebug, a command-line tool that provides debugging support for JavaScript Constraints while developing a V4 printer driver.

WLAN

In Windows 10, version 1607, there are new and updated topics for WLAN Device Driver Interface (WDI) version 1.0.21. For details, see WDI doc change history.

What's new in Windows 10, version 1507

Back to Top

This section describes new and updated features for driver development in Windows 10.

Bluetooth

In Windows 10, 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:

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.

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:

  • V4 Driver Manifest – 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.
  • Print Pipeline Property Bag – New 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.
  • IBidiSpl::SendRecv method – Adds support for mobile printing with the GetWithArgument bidirectional schema value.

Smart Card

In Windows 10, 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

In Windows 10, new storage firmware updates (IOCTL interface) allow partners to update their storage device firmware. These updates include:

  • Storage protocol pass through – The updated storage pass through IOCTL interface supports newer protocols including non-volatile memory express (NVMe).
  • Expanded storage query interfaces – 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.

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.

Back to Top

Deprecated features

The following table describes Windows driver development features that have been removed in Windows 10.

Driver technology Feature Deprecated in
GNSS/Location Geolocation driver sample for Windows 8.1 and related documentation Windows 10, version 1709
Mobile Operator Scenarios (Networking) AllowStandardUserPinUnlock Windows 10, version 1709
Scan/Image WSD (Web Services for Devices) Challenger functionality and related documentation Windows 10, version 1709
Mobile Operators Mobile broadband app experience apps with Sysdev metadata packages are deprecated in favor of MO UWP APPS and COSA. Windows 10, version 1803