typically used to transfer large amounts of data to/from USB devices.\r
\r
@param This A pointer to the EFI_USB_IO_PROTOCOL instance.\r
- @param DeviceEndpoint A pointer to the USB device request that will be sent to the USB\r
- device.\r
+ @param DeviceEndpoint The destination USB device endpoint to which the \r
+ device request is being sent. DeviceEndpoint must \r
+ be between 0x01 and 0x0F or between 0x81 and 0x8F, \r
+ otherwise EFI_INVALID_PARAMETER is returned. If \r
+ the endpoint is not a BULK endpoint, EFI_INVALID_PARAMETER \r
+ is returned. The MSB of this parameter indicates \r
+ the endpoint direction. The number “1” stands for \r
+ an IN endpoint, and “0” stands for an OUT endpoint.\r
@param Data A pointer to the buffer of data that will be transmitted to USB\r
device or received from USB device.\r
@param DataLength The size, in bytes, of the data buffer specified by Data.\r
+ On input, the size, in bytes, of the data buffer specified by Data.\r
+ On output, the number of bytes that were actually transferred.\r
@param Timeout Indicating the transfer should be completed within this time frame.\r
- The units are in milliseconds.\r
+ The units are in milliseconds. If Timeout is 0, then the \r
+ caller must wait for the function to be completed until \r
+ EFI_SUCCESS or EFI_DEVICE_ERROR is returned.\r
@param Status This parameter indicates the USB transfer status.\r
\r
@retval EFI_SUCCESS The bulk transfer has been successfully executed.\r
a fixed rate.\r
\r
@param This A pointer to the EFI_USB_IO_PROTOCOL instance.\r
- @param DeviceEndpoint A pointer to the USB device request that will be sent to the USB\r
- device.\r
+ @param DeviceEndpoint The destination USB device endpoint to which the \r
+ device request is being sent. DeviceEndpoint must \r
+ be between 0x01 and 0x0F or between 0x81 and 0x8F, \r
+ otherwise EFI_INVALID_PARAMETER is returned. If \r
+ the endpoint is not a BULK endpoint, EFI_INVALID_PARAMETER \r
+ is returned. The MSB of this parameter indicates \r
+ the endpoint direction. The number “1” stands for \r
+ an IN endpoint, and “0” stands for an OUT endpoint.\r
@param IsNewTransfer If TRUE, a new transfer will be submitted to USB controller. If\r
FALSE, the interrupt transfer is deleted from the device's interrupt\r
transfer queue.\r
@param PollingInterval Indicates the periodic rate, in milliseconds, that the transfer is to be\r
- executed.\r
+ executed.This parameter is required when IsNewTransfer is TRUE. The \r
+ value must be between 1 to 255, otherwise EFI_INVALID_PARAMETER is returned. \r
+ The units are in milliseconds.\r
@param DataLength Specifies the length, in bytes, of the data to be received from the\r
- USB device.\r
+ USB device. This parameter is only required when IsNewTransfer is TRUE.\r
@param InterruptCallback The Callback function. This function is called if the asynchronous\r
- interrupt transfer is completed.\r
- @param Context Data passed to the InterruptCallback function.\r
+ interrupt transfer is completed. This parameter is required \r
+ when IsNewTransfer is TRUE.\r
+ @param Context Data passed to the InterruptCallback function. This is an optional \r
+ parameter and may be NULL.\r
\r
@retval EFI_SUCCESS The asynchronous USB transfer request transfer has been successfully executed.\r
@retval EFI_DEVICE_ERROR The asynchronous USB transfer request failed.\r
This function is used to manage a USB device with an interrupt transfer pipe.\r
\r
@param This A pointer to the EFI_USB_IO_PROTOCOL instance.\r
- @param DeviceEndpoint A pointer to the USB device request that will be sent to the USB\r
- device.\r
+ @param DeviceEndpoint The destination USB device endpoint to which the \r
+ device request is being sent. DeviceEndpoint must \r
+ be between 0x01 and 0x0F or between 0x81 and 0x8F, \r
+ otherwise EFI_INVALID_PARAMETER is returned. If \r
+ the endpoint is not a BULK endpoint, EFI_INVALID_PARAMETER \r
+ is returned. The MSB of this parameter indicates \r
+ the endpoint direction. The number “1” stands for \r
+ an IN endpoint, and “0” stands for an OUT endpoint.\r
@param Data A pointer to the buffer of data that will be transmitted to USB\r
device or received from USB device.\r
@param DataLength On input, then size, in bytes, of the buffer Data. On output, the\r
amount of data actually transferred.\r
- @param Timeout The time out, in seconds, for this transfer.\r
+ @param Timeout The time out, in seconds, for this transfer. If Timeout is 0, \r
+ then the caller must wait for the function to be completed \r
+ until EFI_SUCCESS or EFI_DEVICE_ERROR is returned. If the \r
+ transfer is not completed in this time frame, then EFI_TIMEOUT is returned.\r
@param Status This parameter indicates the USB transfer status.\r
\r
@retval EFI_SUCCESS The sync interrupt transfer has been successfully executed.\r
transfer is typically used to transfer streaming data.\r
\r
@param This A pointer to the EFI_USB_IO_PROTOCOL instance.\r
- @param DeviceEndpoint A pointer to the USB device request that will be sent to the USB\r
- device.\r
+ @param DeviceEndpoint The destination USB device endpoint to which the \r
+ device request is being sent. DeviceEndpoint must \r
+ be between 0x01 and 0x0F or between 0x81 and 0x8F, \r
+ otherwise EFI_INVALID_PARAMETER is returned. If \r
+ the endpoint is not a BULK endpoint, EFI_INVALID_PARAMETER \r
+ is returned. The MSB of this parameter indicates \r
+ the endpoint direction. The number “1” stands for \r
+ an IN endpoint, and “0” stands for an OUT endpoint.\r
@param Data A pointer to the buffer of data that will be transmitted to USB\r
device or received from USB device.\r
@param DataLength The size, in bytes, of the data buffer specified by Data.\r
transfer is typically used to transfer streaming data.\r
\r
@param This A pointer to the EFI_USB_IO_PROTOCOL instance.\r
- @param DeviceEndpoint A pointer to the USB device request that will be sent to the USB\r
- device.\r
+ @param DeviceEndpoint The destination USB device endpoint to which the \r
+ device request is being sent. DeviceEndpoint must \r
+ be between 0x01 and 0x0F or between 0x81 and 0x8F, \r
+ otherwise EFI_INVALID_PARAMETER is returned. If \r
+ the endpoint is not a BULK endpoint, EFI_INVALID_PARAMETER \r
+ is returned. The MSB of this parameter indicates \r
+ the endpoint direction. The number “1” stands for \r
+ an IN endpoint, and “0” stands for an OUT endpoint.\r
@param Data A pointer to the buffer of data that will be transmitted to USB\r
device or received from USB device.\r
@param DataLength The size, in bytes, of the data buffer specified by Data.\r
- @param IsochronousCallback The IsochronousCallback() function.\r
+ This is an optional parameter and may be NULL.\r
+ @param IsochronousCallback The IsochronousCallback() function.This function is \r
+ called if the requested isochronous transfer is completed.\r
@param Context Data passed to the IsochronousCallback() function.\r
\r
@retval EFI_SUCCESS The asynchronous isochronous transfer has been successfully submitted\r
@param LangID The Language ID for the string being retrieved.\r
@param StringID The ID of the string being retrieved.\r
@param String A pointer to a buffer allocated by this function with\r
- AllocatePool() to store the string.\r
+ AllocatePool() to store the string.If this function \r
+ returns EFI_SUCCESS, it stores the string the caller \r
+ wants to get. The caller should release the string \r
+ buffer with FreePool() after the string is not used any more.\r
\r
@retval EFI_SUCCESS The string was retrieved successfully.\r
@retval EFI_NOT_FOUND The string specified by LangID and StringID was not found.\r
\r
@param This A pointer to the EFI_USB_IO_PROTOCOL instance.\r
@param LangIDTable Language ID for the string the caller wants to get.\r
+ This is a 16-bit ID defined by Microsoft. This \r
+ buffer pointer is allocated and maintained by \r
+ the USB Bus Driver, the caller should not modify \r
+ its contents.\r
@param TableSize The size, in bytes, of the table LangIDTable.\r
\r
@retval EFI_SUCCESS The support languages were retrieved successfully.\r
/** @file\r
Variable Architectural Protocol as defined in PI Specification VOLUME 2 DXE\r
\r
- This code is used to produce the UEFI 2.0 runtime variable services\r
-\r
- The GetVariable (), GetNextVariableName (), and SetVariable () UEFI 2.0 \r
- services are added to the EFI system table and the \r
- EFI_VARIABLE_ARCH_PROTOCOL_GUID protocol is registered with a NULL pointer.\r
-\r
- No CRC of the EFI system table is required, as it is done in the DXE core.\r
+ This provides the services required to get and set environment variables. This \r
+ protocol must be produced by a runtime DXE driver and may be consumed only by \r
+ the DXE Foundation. The DXE driver that produces this protocol must be a runtime \r
+ driver. This driver is responsible for initializing the GetVariable(), \r
+ GetNextVariableName(), and SetVariable() fields of the UEFI Runtime Services Table.\r
+\r
+ After the three fields of the UEFI Runtime Services Table have been initialized, \r
+ the driver must install the EFI_VARIABLE_ARCH_PROTOCOL_GUID on a new handle with \r
+ a NULL interface pointer. The installation of this protocol informs the DXE Foundation \r
+ that the read-only and the volatile environment variable related services are \r
+ now available and that the DXE Foundation must update the 32-bit CRC of the UEFI \r
+ Runtime Services Table. The full complement of environment variable services are \r
+ not available until both this protocol and EFI_VARIABLE_WRITE_ARCH_PROTOCOL are \r
+ installed. DXE drivers that require read-only access or read/write access to volatile \r
+ environment variables must have this architectural protocol in their dependency \r
+ expressions. DXE drivers that require write access to nonvolatile environment \r
+ variables must have the EFI_VARIABLE_WRITE_ARCH_PROTOCOL in their dependency \r
+ expressions.\r
\r
Copyright (c) 2006 - 2008, Intel Corporation \r
All rights reserved. This program and the accompanying materials \r