Do I need to write a driver for my USB Type-C hardware? 


Authored by Michelle Bergeron [MSFT]

Windows 10 introduced support for the USB Type-C connector. With many USB Type-C systems and devices hitting the market, the USB team is frequently asked: “If I’m building a USB peripheral device or system with a Type-C connector, do I need to write a custom driver for it to work on Windows?”

The answer depends on the type of product you are building.

USB Type-C peripherals without alternate modes

USB Type-C supports alternate modes, which allow different protocols other than USB to be carried out over the Type-C connector.

If you’re building a Type-C peripheral device that does not use alternate modes, you do not need to write a new USB client driver as long as you can use one of the inbox USB device class drivers from Microsoft. From Windows’ standpoint, your device looks no different from a legacy USB device without a USB Type-C connector.

Microsoft provides inbox drivers for several classes of USB devices. If your product is one of these device classes, you will not need to write a USB client driver because Windows’ existing USB device class driver will be able to automatically work with your Type-C peripheral. Review the list of USB device class drivers included in Windows to check if you can take advantage of one of these drivers for your product.

You will need to write a custom driver only if you are unable to use one of Windows’ built-in device class drivers. If you have determined that you must write a new client driver for your USB device, start at Developing Windows client drivers for USB devices.

USB Type-C peripherals with alternate modes

If you are bringing up a peripheral which can operate in an alternate mode, you do not need to take any extra steps in your USB driver to make it work with a Windows system that supports the alternate mode.

However, the peripheral’s alternate mode will only work if the system to which it is attached has the hardware capabilities for the specific alternate mode. Since hardware capabilities vary widely between systems, do not take any dependencies on a system supporting your alternate mode.

When your alternate mode device is connected to a system which does not support the alternate mode, you should provide a backup experience over USB.  For example, if you are building a Type-C flash drive that uses Thunderbolt alternate mode, you will need to use the USB mass storage device class for the case that Thunderbolt is not present on the connected PC.

Also, you must correctly implement the Billboard specification in your device so it can notify the system if an alternate mode was not successfully entered. The Billboard Device Class specification is available from the USB-IF.

USB Type-C systems

If you are building a system that features a USB Type-C connector, there will likely be driver or firmware work required to bring up your system in Windows. Please refer to the MSDN documentation on this subject. Start at Windows support for USB Type-C connectors to learn more about USB Type-C connectors on Windows and to determine the steps that you will need to take to bring up your USB Type-C system and develop a driver for it.

Further reading

Comments (4)

  1. lesam512 says:

    Sorry to bother you.
    I need to write _DSD method for UcmTcpci and I found there is a sample code in the below link.

    https://github.com/Microsoft/Windows-driver-samples/blob/master/usb/UcmTcpciCxClientSample/Sample.asl

    But I can’t found the related definitions for “The UUID for Type-C connector capabilities”, “capability type ID” and “capability data”
    Are these values standard? Any document describes these?

    Thanks a lot.

    1. USB Blog says:

      Since UcmTcpciCx is currently a prerelease feature, we are still working on our public documentation on ACPI required.

      We hope that the sample can provide an example on how to use the ACPI until then – each capability is commented in the sample.

      Michelle Bergeron [MSFT]

      1. lesam512 says:

        Hi Michelle,

        Thanks for your reply.
        Do you know when your public documentation is ready?

        Thanks a lot.

        1. USB Blog says:

          I don’t have a date for you – last I’ve heard from the documentation folks, it will be available when the next update of Windows ships.
          -Michelle

Skip to main content