Efi_usb_hc_protocol.controltransfer(), Controltransfer(), Funct – Intel Extensible Firmware Interface User Manual

Page 550

Advertising
background image

Extensible Firmware Interface Specification

14-10 12/01/02

Version

1.10

EFI_USB_HC_PROTOCOL.ControlTransfer()

Summary

Submits control transfer to a target USB device.

Prototype

typedef
EFI_STATUS
(EFIAPI *EFI_USB_HC_PROTOCOL_CONTROL_TRANSFER) (
IN EFI_USB_HC_PROTOCOL

*This,

IN UINT8

DeviceAddress,

IN BOOLEAN

IsSlowDevice,

IN UINT8

MaximumPacketLength,

IN EFI_USB_DEVICE_REQUEST

*Request,

IN EFI_USB_DATA_DIRECTION

TransferDirection,

IN OUT VOID

*Data OPTIONAL,

IN OUT UINTN

*DataLength OPTIONAL,

IN UINTN

TimeOut,

OUT UINT32

*TransferResult

);

Parameters

This

A pointer to the

EFI_USB_HC_PROTOCOL

instance. Type

EFI_USB_HC_PROTOCOL

is defined in Section 14.1.

DeviceAddress

Represents the address of the target device on the USB, which is
assigned during USB enumeration.

IsSlowDevice

Indicates whether the target device is slow device or full-speed
device.

MaximumPacketLength

Indicates the maximum packet size that the default control
transfer endpoint is capable of sending or receiving.

Request

A pointer to the USB device request that will be sent to the USB
device. Refer to Section 2.5.1 of EFI 1.1 USB Driver Model,
version 0.7
.

TransferDirection

Specifies the data direction for the transfer. There are three
values available,

EfiUsbDataIn

,

EfiUsbDataOut

and

EfiUsbNoData

. Refer to Section 2.5.1 of EFI1.1 USB Driver

Model, version 0.7.

Data

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

DataLength

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

Data

. On output, indicates the amount of data actually

transferred.

Advertising