USB Function Controller PDD Functions (Windows CE 5.0)
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