Efi_usb_io_protocol.usbasyncinterrupttransfer(), Usbasyncinterrupttransfer(), Func – Intel Extensible Firmware Interface User Manual

Page 585

Advertising
background image

Protocols

— USB Support

Version 1.10

12/01/02

14-45

EFI_USB_IO_PROTOCOL.UsbAsyncInterruptTransfer()

Summary

This function is used to manage a USB device with an interrupt transfer pipe. An Asynchronous
Interrupt Transfer is typically used to query a device’s status at a fixed rate. For example,
keyboard, mouse, and hub devices use this type of transfer to query their interrupt endpoints at
a fixed rate.

Prototype

typedef
EFI_STATUS
(EFIAPI *EFI_USB_IO_ASYNC_INTERRUPT_TRANSFER) (
IN EFI_USB_IO_PROTOCOL

*This,

IN UINT8

DeviceEndpoint,

IN BOOLEAN

IsNewTransfer,

IN UINTN

PollingInterval OPTIONAL,

IN UINTN

DataLength OPTIONAL,

IN EFI_ASYNC_USB_TRANSFER_CALLBACK

InterruptCallBack OPTIONAL,

IN VOID

*Context OPTIONAL

);

Parameters

This

A pointer to the

EFI_USB_IO_PROTOCOL

instance. Type

EFI_USB_IO_PROTOCOL

is defined in Section 14.2.5.

DeviceEndpoint

The destination USB device endpoint to which the device request
is being sent.

DeviceEndpoint

must be between 0x01 and

0x0F or between 0x81 and 0x8F, otherwise

EFI_INVALID_PARAMETER

is returned. If the endpoint is not

an INTERRUPT endpoint,

EFI_INVALID_PARAMETER

is

returned. The MSB of this parameter indicates the endpoint
direction. The number “1” stands for an IN endpoint, and “0”
stands for an OUT endpoint.

IsNewTransfer

If

TRUE

, a new transfer will be submitted to USB controller. If

FALSE

, the interrupt transfer is deleted from the device’s interrupt

transfer queue.

PollingInterval

Indicates the periodic rate, in milliseconds, that the transfer is to be
executed. This parameter is required when

IsNewTransfer

is

TRUE

. The value must be between 1 to 255, otherwise

EFI_INVALID_PARAMETER

is returned. The units are in

milliseconds.

DataLength

Specifies the length, in bytes, of the data to be received from the
USB device. This parameter is only required when

IsNewTransfer

is

TRUE

.

Context

Data passed to the

InterruptCallback

function. This is an

optional parameter and may be

NULL

.

Advertising