The Function Driver Controller Library Overview

This document introduces you to the Function Driver Controller (FDC) library.

Purpose

The Function Driver Controller provides the base class for all USB Function Driver Controllers.

Intended Audience

This document is intended to be used by platform developers and third-party application developers implementing Function Drivers.

Function Driver Controller Library Details

The DLL that provides the functionality and the library to which your code must link is identified below.

DLL LIB Short Description

fdcbase.dll

fdcbase.lib

Base class for all USB Function Driver Controller plugins to the FDF.

Architectural Relationship

The FDC is an ECOM plug-in. All FDCs run in the FDF process.

Description

This library is the base DLL for Function Driver Controller plugins to the Function Driver Framework. It enables a developer to create a plugin that does the following:

  • Takes control of interfaces in the active configuration of a newly attached device

  • Passes details of the interface and other information about the function to the FDI

  • Cleans up when a device is detached.

Key Function Driver Controller classes

A Function Driver Controller must implement CFdcPlugin and MFdcInterfaceV1:

  • GetInterface() inherited from CFdcPlugin, is a virtual method that returns a pointer to an object that implements the FDF API using the mixin MFdcInterfaceV1 implementation. This is versioned to allow future upgrades without breaking binary compatibility. The templates provide an implementation of this method.

  • Mfi1NewFunction, inherited from MFdcInterfaceV1,

    enables the FDC to:

    • claim a token for the interface offered (from the FDF) and get descriptors from the device

    • Passes the token and descriptors to the Function Driver Implementation

Using a Function Driver Controller library

You use the Function Driver Controller library to create a Function Driver Controller plug-in. For more details on creating FDCs, see Writing Function Driver Controllers Tutorial.