Efi_usb_io_protocol.usbbulktransfer(), Usbbulktransfer(), Func – Intel Extensible Firmware Interface User Manual
Page 583
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
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.