Share via


USB Function Controller Driver MDD and DDI Interface (Windows Embedded CE 6.0)

1/6/2010

Before interacting with the host, a function driver must configure the underlying USB function controller to support the function that it implements. The model device driver (MDD) must provide a mounted function driver with a way to configure the underlying USB function controller through a USB descriptor set. In addition, a mounted function driver must address a logical endpoint or pipe, through the endpoint address specified in a USB endpoint descriptor. The MDD must provide a mapping between a pipe and a physical endpoint.

MDD functions wrap most of the similarly named PDD functions. This indirection provides the function driver with the ability to access logical endpoints or pipes. The indirection allows the MDD to map the specified pipe to a physical endpoint.

The MDD provides functions to activate a particular configuration or interface. These functions handle configuration and pipe access.

The following steps show how the USB function driver is configured and how pipe access is set up:

  1. The function driver initializes the MDD, which initializes the PDD.
  2. The function driver registers a configuration with the MDD.
    By querying the capabilities of the USB function controller, through the PDD, the MDD determines whether the supplied configuration can be supported.
  3. The function driver starts the USB function controller if the configuration can be supported.
  4. The function driver specifies notification functions for device events and default pipe events.
  5. The PDD maps the interrupt to a USB event when an interrupt occurs, and then the PDD notifies the device associated with the interrupt.
    In other words, the function driver starts the interrupt service thread (IST) of the USB function controller, and supplies the PDD with a set of functions to call on the when an interrupt occurs. Handle USB events generated by the USB function controller as interrupts, and handle notification functions as interrupt service routines (ISRs).
  6. The USB function controller driver begins to service interrupts when the USB function controller is running and the default pipe is open.
  7. The PDD calls the notification functions during USB enumeration.
    These functions are supplied by the function driver in response to USB events. The notification function associated with the default pipe is required to read and parse setup token packets and respond to the associated USB standard requests associated with USB enumeration.

See Also

Concepts

USB Function Controller Driver Architecture

Other Resources

USB Function Controller Driver Reference