Efi_usb_io_protocol.usbbulktransfer(), Usbbulktransfer(), Func – Intel Extensible Firmware Interface User Manual

Page 583

Advertising
background image

Protocols

— USB Support

Version 1.10

12/01/02

14-43

EFI_USB_IO_PROTOCOL.UsbBulkTransfer()

Summary

This function is used to manage a USB device with the bulk transfer pipe. Bulk Transfers are
typically used to transfer large amounts of data to/from USB devices.

Prototype

typedef
EFI_STATUS
(EFIAPI *EFI_USB_IO_BULK_TRANSFER) (
IN EFI_USB_IO_PROTOCOL

*This,

IN UINT8

DeviceEndpoint,

IN OUT VOID

*Data,

IN OUT UINTN

*DataLength,

IN UINTN

Timeout,

OUT UINT32

*Status

);

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 a

BULK 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.

Data

A pointer to the buffer of data that will be transmitted to USB
device or received from USB device.

DataLength

On input, the size, in bytes, of the data buffer specified by

Data

.

On output, the number of bytes that were actually transferred.

Timeout

Indicating the transfer should be completed within this time frame.
The units are in milliseconds. If

Timeout

is 0, then the caller

must wait for the function to be completed until

EFI_SUCCESS

or

EFI_DEVICE_ERROR

is returned.

Status

This parameter indicates the USB transfer status.

Advertising