OEM tasks for USB Type-C systems

This table describes the use cases supported by Windows, and the other tasks OEMs must perform for those use cases to work.

Use case Windows support OEM tasks
Power delivery

Support for charging a USB Type-C system by using legacy chargers (<7.5 W), USB Type-C chargers (<15 W), Power Delivery chargers (100 W+)
For Windows desktop editions (Home, Pro, Enterprise, and Education) systems,
  • Charging from legacy chargers isn't recommended, as they aren't powerful enough to charge desktop systems.
  • USB connector manager class extension (UcmCx) and its client driver for the connector handles charging for USB Type-C chargers. The system doesn't currently specify which power source to use and how much power to consume.

Note The user is notified when a slower charger is detected.
You must determine the charging policy in your hardware, firmware, and client driver. Charging policy mainly includes:
  • Is the system a power source (provider) or power sink (consumer)?
  • How much power should the system consume?​
  • Which power source (charger) should be used if there are multiple power sources available?​

For power delivery-compliant chargers, the hardware must negotiate a power contract, which includes the voltage and current.​ The negotiated power contract must be forwarded to the system through the USB connector manager class extension (UcmCx) or the USCI driver for appropriate action.

If a slow charger is connected to the system, the system must be notified through UcmCx or UCSI.

To support legacy proprietary high-voltage or high-current charging mechanisms, another filter driver must be written for Microsoft's in-box USB function driver that detects the proprietary charger and reports it to the in-box driver.

Write a USB Type-C connector driver

USB filter driver for supporting USB chargers

Note Windows doesn't support power delivery for legacy USB-A and USB-B/USB-microB connectors.
Connecting USB devices and peripherals

Ability of a Windows system to connect USB devices/peripherals
Windows supports most device classes. The device drivers and their installation files are included in Windows.

See, USB device class drivers included in Windows.
If your system wants to connect to a custom USB device for which Windows doesn't include a driver, you can choose to load the generic driver (Winusb.sys) or write a driver. For guidance, see Choosing a driver model for developing a USB client driver.

We recommend that you write a Universal Windows driver. For more information, see Getting Started with Universal Windows drivers.

To write an application that communicates with the device, use Windows Runtime APIs. For more information, see Talking to USB devices, start to finish (UWP app).
Alternate modes

Connect to a non-USB device (for example, monitor) using a USB Type-C connector.
Windows is capable of detecting DisplayPort/DockPort devices if the hardware supports those alternate modes.

Windows provides an in-box driver for a Billboard device and notifies the user if the Billboard device indicates that an error occurred.
In order for an alternate mode to work, your system and device must support the alternate mode in the hardware and firmware. Perform necessary tasks to negotiate the alternate mode and entering the mode. These tasks are typically accomplished by muxing the wire on the USB Type-C connector to the alternate mode.
Billboard devices

Display information about the error condition to help the user troubleshoot issues.
Windows provides an in-box driver for Billboard devices and notifies the user if the Billboard device indicates an error.

The user might see an error notification, if:
  • the PC running Windows doesn't support the alternate mode isn't supported.
  • The cable doesn't support the alternate mode.

For the best results, make sure that the PC or cable meets the alternate mode device or adapter's requirements.
Your alternate mode adapter or device must implement a Billboard device that indicates whether or not an alternate mode negotiation was successful.

If your alternate mode adapter or device implements other USB functionality, updating the contents of your Billboard descriptor will require you to disconnect and reconnect the device, possibly interrupting functionality (such as a file transfer, if your device is a USB mass storage device). To avoid that, the Billboard specification recommends that you use an integrated hub in your device, and have the Billboard device appear as a separate USB device on one of its ports.

For more information, see USB Device Class Definition for Billboard Devices specification.
USB dual role

Connect two Windows devices together​
When two Windows devices are connected together, the system determines the appropriate role that each of the devices should be in and performs role swap operations if needed.

To support this, Windows can communicate with the dual role controller on the system through the USB role switch class extension framework. An inbox client driver for this framework is also provided for Synopsys dual role controllers.

For USB Type-C systems, the USB connector manager gets information about the roles initially assigned by the hardware port controllers.

The USB role switch stack and the USB connector manager stack communicate with the hardware to get the current role and swap the roles of the system's port as needed.

Note Peer-to-peer USB Type-C connections aren't supported. For such connections, an error is displayed to the user.
Dual role ports must work with the operating system to make sure the right software stack (either host or function) is loaded at the right time.

Systems can be designed such that the dual-role USB port needs Windows to configure it to either host or function mode. These designs need to use the USB role switch stack. If the system doesn't use a Synopsys or ChipIdea dual role controller, you'll need to write a USB role switch client driver for the system's dual role controller.

USB dual-role controller driver programming reference

System can also be designed such that the firmware or the customer-supplied drivers configure the port as either a host or function port, depending on the device that is connected to the port. These designs need to either implement this logic in the firmware or in a USB connector manager client driver. In these systems, Windows automatically loads the correct software stack.

Write a USB Type-C connector driver
Audio Accessories​

USB Type-C connector can be used as an audio jack.
Windows is capable of detecting a USB Type-C analog input as a 3.5-mm audio jack, if the hardware supports the feature.

The USB Type-C specification connector allows a USB Type-C connector to be used similar to a 3.5-mm analog audio jack by using the audio accessory mode. Windows supports systems that implement USB Type-C support for audio accessories by detecting the accessory as a regular 3.5 mm analog audio device.
To use this feature, your hardware or firmware must detect if audio accessory is connected and switch to that mode, as per the Audio Type-C specification. This is done by mapping the pins on the 3.5-mm analog audio connector to pins on the USB Type-C connector.

USB Type-C connectors can be used for wired docking, which allows the system to connect to a dock that delivers power to the system and attaches other peripherals. If the system detects an alternate display, the system can project to that display. To enable wired docking, make sure you have completed OEM tasks listed for Power delivery, Connecting USB devices and peripherals, and Alternate modes use cases in the preceding table.