beautypg.com

Efi_usb_io_protocol.usbcontroltransfer(), Usbcontroltransfer() – Intel Extensible Firmware Interface User Manual

Page 580

background image

Extensible Firmware Interface Specification

14-40 12/01/02

Version

1.10

EFI_USB_IO_PROTOCOL.UsbControlTransfer()

Summary

This function is used to manage a USB device with a control transfer pipe. A control transfer is
typically used to perform device initialization and configuration.

Prototype

typedef
EFI_STATUS
(EFIAPI *EFI_USB_IO_CONTROL_TRANSFER) (
IN EFI_USB_IO_PROTOCOL

*This,

IN EFI_USB_DEVICE_REQUEST

*Request,

IN EFI_USB_DATA_DIRECTION

Direction,

IN UINT32

Timeout,

IN OUT VOID

*Data OPTIONAL,

IN UINTN

DataLength OPTIONAL,

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.

Request

A pointer to the USB device request that will be sent to the USB
device. See “Related Definitions” below.

Direction

Indicates the data direction. See “Related Definitions” below for
this type.

Data

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

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.

DataLength

The size, in bytes, of the data buffer specified by

Data

.

Status

A pointer to the result of the USB transfer.