USB Libraries Help > USB Device Libraries > USB Device Layer Library > Library Interface > e) Endpoint Management Functions > USB_DEVICE_EndpointTransferCancel Function
MPLAB Harmony USB Stack
USB_DEVICE_EndpointTransferCancel Function

This function cancels a transfer scheduled on an endpoint using the USB_DEVICE_EndpointRead and USB_DEVICE_EndpointWrite functions. If a transfer is still in the queue and its processing has not started, the transfer is canceled completely. A transfer that is in progress may or may not get canceled depending on the transaction that is presently in progress. If the last transaction of the transfer is in progress, the transfer will not be canceled. If it is not the last transaction in progress, the in progress transfer will be allowed to complete. Pending transactions will be canceled. The first transaction of an in progress transfer cannot be canceled.

C
USB_DEVICE_RESULT USB_DEVICE_EndpointTransferCancel(
    USB_DEVICE_HANDLE usbDeviceHandle, 
    USB_ENDPOINT_ADDRESS endpoint, 
    USB_DEVICE_TRANSFER_HANDLE transferHandle
);
Preconditions

The USB Device should be in a configured state.

Parameters
Parameters 
Description 
usbDeviceHandle 
USB Device Layer Handle.
 
endpoint 
Endpoint of which the transfer needs to be canceled.
 
handle 
Transfer handle of the transfer to be canceled. 
Returns

USB_DEVICE_RESULT_OK - The transfer will be canceled completely or partially. 

USB_DEVICE_RESULT_ERROR - The transfer could not be canceled because it has either completed, the transfer handle is invalid or the last transaction is in progress.

Remarks

None.

Example
// The following code example cancels a transfer on endpoint 1, IN direction.

USB_DEVICE_TRANSFER_HANDLE transferHandle;
USB_DEVICE_RESULT result;

result = USB_DEVICE_EndpointTransferCancel(usbDeviceHandle, 
            (0x1|USB_EP_DIRECTION_IN), transferHandle);

if(USB_DEVICE_RESULT_OK == result)
{
    // The transfer cancellation was either completely or 
    // partially successful.
}