USB driver reference

[Some information relates to pre-released product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here.]

Programming reference for developing drivers that interact with USB devices, host controllers, connectors.

In this section

TopicDescription

USB constants and enumerations

This section describes the system-defined enumerations and constants that are used by Universal Serial Bus (USB) client drivers on Windows Driver Model (WDM) platforms.

USB structures

This section describes the system-defined structures that are used by Universal Serial Bus (USB) client drivers on Windows Driver Model (WDM) platforms. For more information about system-defined structures that are not described in this section, see System Structures.

Drivers can use only the members of structures that are described in this section. All undocumented members of these structures are reserved for system use.

Transfer buffers that are members of structures that are defined in this section must be nonpageable memory.

USB dual-role controller driver programming reference

This section describes the programming interfaces that are used by a Windows driver for a dual-role controller.

USB host controller driver programming reference

The USB host controller extension is a system-supplied extension to the Kernel-Mode Driver Framework (KMDF). Within the Microsoft USB Driver Stack Architecture, UCX provides functionality to assist a host controller client driver in managing a USB host controller device. The client driver handles hardware operations and events, power management, and PnP events. UCX serves as an abstracted interface to the rest of the Microsoft USB 3.0 stack, queues requests to the client driver, and performs other tasks.

USB function controller programming reference

This section includes programming reference for writing a function controller that communicates with the USB function class extension (UFX).

USB Type-C connector driver programming reference

Windows 10 introduces support for the new USB connector: USB Type-C. These programming interfaces allow you to write a driver for the connector (called the client driver in this section) that communicates with the Microsoft-provided class extension module: UcmCx to handle scenarios related to Type-C connectors such as, which ports support Type-C, which ports support power delivery.

USB device driver programming reference

These programming elements are used by drivers for USB peripheral devices.

USB desktop application programming reference

The topics in this section describe the four types of routines exposed by the Microsoft-provided USB driver stack.

Emulated USB host controller driver programming reference

This section provides reference information about writing Windows drivers that present non-USB devices as emulated USB devices. By using the WDF class extension-client driver model, you can write a driver that translates USB-level constructs (reset, data transfers) to the actual underlying bus by using the hardware’s interface. The class extension and the client driver represent an emulated host controller with a root hub that is capable of presenting an attached device to the system as an USB device.

USB Type-C Port Controller Interface driver programming reference

This section provides programming reference information about writing Windows drivers for USB Type-C port controllers.

 

 

 

Send comments about this topic to Microsoft

Show: