beautypg.com

Intel Extensible Firmware Interface User Manual

Page 586

background image

Extensible Firmware Interface Specification

14-46 12/01/02

Version

1.10

InterruptCallback

The Callback function. This function is called if the asynchronous
interrupt transfer is completed. This parameter is required when

IsNewTransfer

is

TRUE

. See “Related Definitions” for the

definition of this type.

Related Definitions

typedef
EFI_STATUS
(EFIAPI

* EFI_ASYNC_USB_TRANSFER_CALLBACK) (

IN VOID

*Data,

IN UINTN

DataLength,

IN VOID

*Context,

IN UINT32

Status

);

Data

Data received or sent via the USB Asynchronous Transfer, if the
transfer completed successfully.

DataLength

The

length

of

Data

received or sent via the Asynchronous

Transfer, if transfer successfully completes.

Context

Data passed from

UsbAsyncInterruptTransfer()

request.

Status

Indicates the result of the asynchronous transfer.

Description

This function allows a USB device driver to communicate with a USB device with an Interrupt
Transfer. Asynchronous Interrupt transfer is different than the other four transfer types because it is
a nonblocking transfer. The interrupt endpoint is queried at a fixed rate, and the data transfer
direction is always in the direction from the USB device towards the system.

If

IsNewTransfer

is

TRUE

, then an interrupt transfer is started at a fixed rate. The rate is

specified by

PollingInterval

, the size of the receive buffer is specified by

DataLength

,

and the callback function is specified by

InterruptCallback

.

If

IsNewTransfer

is

FALSE

, then the interrupt transfer is canceled.

Status Code Returned

EFI_SUCCESS

The asynchronous USB transfer request has been successfully executed.

EFI_DEVICE_ERROR

The asynchronous USB transfer request failed.