USB Function Controller PDD Functions (Windows CE 5.0)

Send Feedback

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 USB Function Controller Driver Samples.

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 device on the USB bus.

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. For more information, see USB Function Controller Driver MDD and DDI Interface.

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.

Send Feedback on this topic to the authors

Feedback FAQs

© 2006 Microsoft Corporation. All rights reserved.