New in Windows 10: USB Dual Role, Type-C, SuperSpeedPlus, and much more…

Authored by Fred Bhesania [MSFT]

Hi everyone!

The USB team is excited to share new features for Windows 10 on our USB Blog site! It’s been a bit silent here while we have been busy working on Windows 10. However you should rest assured that this blog is not forgotten and we will start a series of pertinent posts this spring.

At WinHEC 2015, followed by Build 2015, Microsoft was proud to announce details around the hardware innovations enabled by Windows 10. We have been working on features that enhance the USB experience for enterprises and consumers alike. Some of the key benefits of Windows 10 are described below:


· Support for USB Type-C, making it easier than ever to enable enterprise productivity scenarios through wired docking

· Compatibility, allowing USB drivers that target Windows 7, 8, and 8.1 to work on Windows 10.

Hardware Developers (OEMs / IHVs)

· Support for USB 2.0, 3.0, and now USB 3.1, allowing OEMs to easily choose from a wide variety of controllers and peripherals.

· Universal drivers (URL) can be built for USB peripherals that run on all Windows 10 Devices, from IOT to servers.

End Users

· Dual Role, allowing end users to plug in their existing USB keyboards, mice, storage, audio, hubs, etc. to their new Windows 10 Phones.

· USB Type-C, a new reversible connector and a symmetric cable enabling new connectivity scenarios over time. In addition, it supports charging the system quickly.

Software Developers (ISVs)

· A rich set of universal APIs for USB peripherals, enabling apps to securely communicate with USB devices.

· A rich set of tools to validate that hardware and software work well. In addition, an advanced set of logging and debugging tools make it easier for developers to diagnose issues in their code quickly.

In this blog post, we summarize innovations that Windows 10 brings to the USB ecosystem.

USB Dual-Role support

USB defines an asymmetric protocol (Host – Function) and has traditionally allowed only one mode: PCs in Host mode and other devices like phones in Function mode. Windows 10 enables USB Dual Role. This new role enables a phone to either operate in Host mode (enabling scenarios like accessing a flash drive) or operate in Function mode (when connected to a PC). With universal API support for USB, app developers can access USB peripherals directly from their app for use as a point of service, data backup, or even controlling a device like an Arduino.

For details, see USB Dual Role Driver Stack Architecture.

USB Type-C support

Windows 10 introduces native support for USB Type-C. Defined in the USB 3.1 specification, the feature empowers devices to leverage (1) a reversible connector, (2) a symmetric cable, (3) faster charging, and (4) Alternate Modes running over the USB cable. This will make it easier for end users to connect devices using USB, use USB chargers to charge their laptops and desktop PCs, and also allow them to project video over the USB connector leveraging Alternate Modes like DisplayPort. We anticipate 2015 to be a pivotal year for USB Type-C and look forward to seeing systems from many partners that will have this capability. We are confident that USB Type-C will greatly simplify user experiences around USB connectivity and also open up new symmetric possibilities in the future.

USB 3.1 SuperSpeedPlus supportclip_image001

USB 3.1 was officially announced in the summer of 2014. Since then a number of hardware manufacturers have announced and demonstrated support for USB 3.1 functionality, with the specific focus on SuperSpeedPlus (10Gbps). The efficient data encoding and the 10Gbps data rate delivers more than twice the effective data throughput performance of existing SuperSpeed USB while maintaining backwards compatibility with existing USB 3.0 and even USB 2.0 devices. Windows 10 has enhanced the USB 2.0 and the USB 3.0 drivers to support USB 3.1 devices that operate at SuperSpeedPlus speeds.

Support for new class drivers and vendor-specific class drivers

Windows provides in-box class drivers for most USB device classes. Microsoft partners with various USB Device Working Groups (DWG) to develop industry standard specifications and then support them by supplying drivers with the operating system. Windows 10 has new drivers for these USB device classes.

· USB CDC (Serial) – Allows devices that are compliant with the USB communication devices Class (Class_02 & SubClass_02) to work with Windows 10 by using the Usbser.sys driver.

· Billboard – Allows USB Type-C device to report error notification information (through the USB Billboard Device Class), if they are using an Alternate Mode that is not supported on the device.

From this blog post, you can see that Windows 10 provides rich support for new industry standards around USB. For the complete list of USB device classes supported in Windows 10, see USB device class drivers included in Windows.

In addition to industry standards, there are some additional USB innovations that may be interested to developers.

· Supporting USB on new platforms that are the building blocks for IOT scenarios

· Enabling IHVs to create a driver that matches on a vendor-specific compatible IDs.

· Allowing developers to write their host controller drivers by using the new programming interfaces exposed by the USB Class Extension (UCX).

Advances in USB Test Tools

Windows 10 offers a unique set of tools for the ecosystem. Over the last 6 years, Windows has delivered a number of innovative hardware test tools ranging from the Microsoft USB Test Tool (MUTT) to the new Dual-Role version (DR MUTT).


Windows has historically provided tests through the Hardware Certification program. For Windows 10, the Hardware Lab Kit (HLK), offers tests to help diagnose issues early in the development process, ensure driver compatibility with Windows, and optionally certify devices or systems. We have added new tests in the HLK that validate Dual Role and Function mode on any Windows 10 SKU.

This post provided a brief overview of the new features. Keep an eye out for follow-up posts about additional details on some of those features.

We hope that you enjoy the USB enhancements included in Windows 10. Join the Windows Insider Program and get the Windows 10 Technical Preview!

Related posts and links:

· Blogging Windows:

· Windows 10 Tech Preview:

· Windows 10 Insider program for Developers:

· USB Device Working Groups:

Comments (2)

  1. Travis says:

    Enterprising businesses would be smart to begin planning replacement of employee laptops & iPhones, with just a Win10 smartphone, and docking station for the office.  Away from the office: the phone is a smartphone, doing all the things their existing iPhones already do.  In the office: dock the phone to the station, and now you have keyboard, mouse, and a larger screen and all your files already there to work on…just like the laptops their employees have been using thus far, except now it's all one device, much easier to maintain and keep track of (as opposed to two different devices, on two completely different platforms/OS's).

  2. YH Liu says:

    Dear USB team,

    we have produced USB Type-C DisplayPort dongle device and are developing host with USB Type-C and USB Power Delivery supports.

    We really really wish our Type-C products can 100% compatible with Win10 USB Connector Manager (UCM) and inbox UCSI driver. So, we do have some questions related with UCSI supporting on Win10.

    Q1.  How application sends PPM Controller commands (defined in UCSI spec.) to hardware via inbox UCSI driver (Any device interface/IOCTL request can be used)?

    For example, user may need to update Type-C device's firmware even if the device is in alternative mode. So firmware update tool need to ask the attached USB Type-C dongle to exit alternative mode by "Set New Connector Alternate Mode" command then exposing USB billboard device as updated target.

    Q2. How to test custom UCMCx client driver on Win10 to make sure it meets Windows's requirement? What's tool or method can be used to test on Windows by user?

    In order to test our USB Type-C hardware, we refer UcmCx introduced on MSDN (…/mt188011(v=vs.85).aspx) to write a custom UCMCx client driver.

    Currently the custom driver can be built and loaded on a pseudo hardware (enumerated by our PCIe driver) successfully. Then we call "client driver support methods" to initialize UCMCx, create connector objects and notify UcmCx with USB Type-C connector events. But we didn't see anything happen on Windows even if these methods return success status. In addition to this, we don't know how these notified connector events are used by Win10 power scenario. So we can't make sure whether our custom driver can accurately meet Windows's requirement or not. It is the reason why we need to know how to test custom UCMCx client driver on Win10.

Skip to main content