Share via


USB Function Client Driver Functions (Compact 2013)

3/26/2014

The following table shows the functions that USB function client drivers implement. The UFN_FUNCTIONS structure contains a list of the function pointers.

Function

Description

lpRegisterDevice

This function takes the device descriptors, validates them with the PDD, and adjusts their endpoint packet sizes.

This function facilitates the configuration of the USB function controller by a function driver.

lpRegisterDevice makes multiple calls to pfnIsEndpointSupportable. Once the descriptors are validated, they are passed to pfnRegisterDevice.

This function accepts a USB device descriptor set. The data structures in this set are defined in Usbtypes.h. This set of data structures is the complete USB descriptor set that describes the requirements of the function. lpRegisterDevice parses the supplied set and determines whether each configuration can be supported by the underlying USB function controller. This function determines whether each interface combination of each configuration can be supported.

A function specifies a single configuration with a single interface. The MDD allows for the registration of a single configuration with a single interface. If the underlying USB function controller can support the requirements of the specified function, then lpRegisterDevice returns TRUE. Otherwise, lpRegisterDevice returns FALSE.

lpStart

This function calls pfnStart.

lpStop

This function calls pfnStop.

lpDeregisterDevice

This function deregisters a device.

lpOpenPipe

This function opens a pipe, and then calls pfnInitEndpoint.

lpClosePipe

This function closes a pipe, and then calls pfnDeinitEndpoint.

lpIssueTransfer

This function sets up a transfer on a pipe, and then calls pfnIssueTransfer.

lpGetTransferStatus

This function gets the status of a transfer.

lpAbortTransfer

This function aborts a transfer.

lpCloseTransfer

This function aborts a transfer and closes it, if necessary.

lpStallPipe

This function calls pfnStallEndpoint.

lpClearPipeStall

This function calls pfnClearEndpointStall.

lpInitiateRemoteWakeup

This function initiates a remote wakeup.

lpSendControlStatusHandshake

This function sends a control status handshake. It is called after sending or receiving the entire control data transfer.

See Also

Reference

USB Function Client Driver Reference