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

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