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. |