Share via


USB Function Controller Driver Architecture (Windows Embedded CE 6.0)

1/6/2010

The PDD abstracts a USB function controller and the MDD provides a function driver with the ability to configure and access the underlying USB function controller. For information about the responsibilities of the PDD, see USB Function Controller Driver PDD and DDSI Interface. For a discussion of the interaction between a mounted function driver and the USB function controller driver, see USB Function Controller Driver MDD and DDI Interface.

Boot-time Initialization

The following steps show the boot-time initialization process:

  1. The OS locates the function controller, and then loads the function controller driver by loading the dynamic-link library (DLL) that contains the PDD and the MDD.
  2. The DllMain function in the PDD calls DllEntry in the MDD.
  3. The OS activates the stream interface that the MDD contains by calling UFN_Init.
  4. UFN_Init calls into the PDD to initialize the hardware.
  5. UFN_Init determines the client driver to load, and then calls the client driver's initialization routine.

The hardware initialization function carries out its responsibilities in the following order:

  1. Initializes the function controller on its bus.
  2. Places the function controller in the initialized state because the configuration might persist after a soft reset.
  3. Disables the USB connection.
  4. Disables device and endpoint interrupts.
  5. Clears pending device and endpoint interrupts.
  6. Clears configuration registers and the first in, first out (FIFO) buffer.
  7. Resets any internal data structures.

The client driver's initialization routine must read any configuration parameters from the registry. When the client is ready to enable the device on the bus, the initialization routine must call or schedule a call to lpRegisterDevice with the device descriptors and a call to lpStart.

See Also

Concepts

USB Function Controller Driver Development Concepts
USB Function Controller Driver PDD
USB Function Controller Driver MDD
USB Function Controller Driver PDD and DDSI Interface
USB Function Controller Driver MDD and DDI Interface
USB Function Controller Driver Bus Interface