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

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