The class extension provides a set of methods that the client driver can use to send the notifications (discussed in this topic). While the client driver interacts with the hardware, it must notify the class extension when those changes occur. The UCM class extension keeps the operating system informed about the changes in data and power role, charging levels, and the negotiated PD contract. Summary of the services provided by the UCM class extension
Recommended reading: Developing Drivers with Windows Driver Foundation, written by Penny Orwick and Guy Smith. See Architecture: USB Type-C design for a Windows system.įamiliarize yourself with Windows Driver Foundation (WDF).
Install Windows 10 for desktop editions (Home, Pro, Enterprise, and Education) on your target computer or Windows 10 Mobile with a USB Type-C connector.įamiliarize yourself with UCM and how it interacts with other Windows drivers. The client driver reports connector events that allow the operating system to implement policies around USB and power consumption in the system. This support enables you to build Windows devices with USB Type-C connectors, USB Type-C docks and accessories, and USB Type-C chargers. Programming interfaces are identical for either mode.ĭecide whether your client driver will support advanced features of the USB Type-C connector and the USB Power Delivery.
For user mode, it binds with the UMDF 2.x library for kernel mode it's KMDF 1.15. You can write a UCM client driver that runs in user mode or kernel mode.
The library translates calls made by the client driver and pass them up to UcmCx. The kit has the required header files and libraries for writing a UCM client driver, specifically, you'll need: Install the latest Windows Driver Kit (WDK) on your development computer. To enable a USB Type-C connector on a system, you must write the client driver. Conversely, the class extension invokes callback functions implemented by the client driver in response to operating system events. The UCM client driver uses the hardware interfaces of the connector and keeps the class extension aware of events that occur on the connector. The class extension (UcmCx) is a Microsoft-provided WDF driver that provides interfaces that the client driver can call to report information about the connector. UCM is designed by using the WDF class extension-client driver model. USB Type-C connector driver programming referenceĭescribes the USB connector manager (UCM) that manages a USB Type-C connector and the expected behavior of a connector driver.Services provided by the UCM class extension.UCM object used by the class extension and client driver.(See UCSI driver) for ACPI transports or write a UCSI client driver for non-ACPI transports. Otherwise load the Microsoft provided in-box driver, UcmUcsi.sys. If your hardware does not have an embedded controller. For more information, see Write a USB Type-C port controller driver. Otherwise, consider writing a USB Type-C port controller driver. If your USB Type-C hardware has the capability of handling the power delivery (PD) state machine. You need to write a USB Type-C connector driver in these scenarios: