Share via


USB Function Controller PDD Functions (Compact 2013)

3/26/2014

The following table shows the platform dependent driver (PDD) functions, which only the model device driver (MDD) calls. The PDD should initialize these function pointers in the UfnPdd_Init function. These function pointers are contained in the UFN_PDD_INTERFACE_INFO structure.

Function

Description

pfnDeinit

This function deinitializes the PDD.

pfnIsConfigurationSupportable

This function determines if a configuration can be supported.

pfnIsEndpointSupportable

This function determines whether an endpoint supports a particular endpoint configuration.

This function determines whether the target endpoint can support the specified settings. The wMaxPacketSize member of USB_ENDPOINT_DESCRIPTOR is between zero and 1024. If an endpoint can support a particular setting, the MDD allocates it.

pfnInitEndpoint

This function configures and allocates an endpoint.

This function verifies that the target endpoint supports the specified settings and that the target endpoint is not already allocated. If this is the case, the endpoint is configured to support the specified settings and then allocated. This process might include enabling the interrupt of the associated endpoint. The event system uses the lpNotify and lpNotifyParameter parameters.

pfnRegisterDevice

This function accepts the validated device descriptors from the PDD. The PDD can ignore this call if the MDD handles enumeration.

pfnDeregisterDevice

This function deregisters a device.

pfnStart

This function starts the USB function device.

pfnStop

This function stops the USB function device.

pfnIssueTransfer

This function sets up a transfer to be performed the next time the host sends an IN token packet or an OUT token packet, as appropriate.

pfnAbortTransfer

This function aborts a transfer that has already started. This should cause the endpoint's first in, first out (FIFO) buffer to empty.

pfnDeinitEndpoint

This function frees an endpoint.

Because this function marks the target endpoint as not currently allocated, any subsequent attempt to access the target endpoint results in failure.

The PDD provides a set of functions that allows the MDD to determine the current configuration settings of a particular endpoint. For information about these functions, see the USB function controller drivers samples listed in USB Function Controller Drivers.

pfnStallEndpoint

This function stalls the endpoint.

pfnClearEndpointStall

This function clears an endpoint stall.

pfnSendControlStatusHandshake

This function causes endpoint zero to initiate the control status phase of a control transfer. This causes the control transfer to be completed with either an ACK handshake packet or a STALL handshake packet.

pfnSetAddress

This function sets the address of the USB device.

Not all device controllers expose the USB address, because some device controllers handle the SET_ADDRESS standard request internally. Function drivers should not attempt to synthesize the USB protocol or assume a particular sequence of events.

pfnIsEndpointHalted

This function checks to see if the endpoint is stalled.

pfnInitiateRemoteWakeup

This function initiates a remote wakeup.

pfnPowerDown

This function responds to UFN_PowerDown.

pfnPowerUp

This function responds to UFN_PowerUp.

pfnIOControl

This function executes IOCTLs.

See Also

Reference

USB Function Controller Driver Reference