EFI_USBFN_IO_PROTOCOL. Transferencia
La función Transfer controla la transferencia de datos hacia o desde el host en el punto de conexión especificado.
Dirección | Descripción |
---|---|
EfiUsbEndpointDirectionDeviceTx | Inicie una transferencia de transmisión en el punto de conexión especificado y vuelva inmediatamente. |
EfiUsbEndpointDirectionDeviceRx | Inicie una transferencia de recepción en el punto de conexión especificado y vuelva inmediatamente con los datos disponibles. |
Sintaxis
typedef
EFI_STATUS
(EFIAPI *EFI_USBFN_IO_TRANSFER) (
IN EFI_USBFN_IO_PROTOCOL *This,
IN UINT8 EndpointIndex,
IN EFI_USBFN_ENDPOINT_DIRECTION Direction,
IN OUT UINTN *BufferSize,
IN OUT VOID *Buffer
);
Parámetros
This
Puntero a la instancia de EFI_USBFN_IO_PROTOCOL.
EndpointIndex
Indica el punto de conexión en el que debe realizarse la transferencia TX o RX.
Dirección
Dirección del punto de conexión. Para obtener más información, consulte EFI_USBFN_ENDPOINT_DIRECTION.
BufferSize
Si Direction es EfiUsbEndpointDirectionDeviceRx: En la entrada, el tamaño del búfer en bytes. En la salida, la cantidad de datos devueltos en el búfer en bytes. Si Direction es EfiUsbEndpointDirectionDeviceTx: En la entrada, el tamaño del búfer en bytes. En la salida, la cantidad de datos que se transmiten realmente en bytes.
Búfer
Si Direction es EfiUsbEndpointDirectionDeviceRx:El búfer para devolver los datos recibidos. Si Direction es EfiUsbEndpointDirectionDeviceTx: el búfer que contiene los datos que se van a transmitir.
Este búfer se asigna y libera mediante las funciones AllocateTransferBuffer y FreeTransferBuffer. El autor de la llamada de esta función no debe liberar ni reutilizar el búfer hasta que se recibió un mensaje EfiUsbMsgEndpointStatusChangedRx o EfiUsbMsgEndpointStatusChangedTx junto con la dirección del búfer de transferencia como parte de la carga del mensaje. Consulte EFI_USBFN_IO_PROTOCOL. EventHandler para obtener más información sobre varios mensajes y sus cargas.
Valores devueltos
La función devuelve uno de los siguientes valores:
Código devuelto | Descripción |
---|---|
EFI_SUCCESS | La función devuelta correctamente |
EFI_INVALID_PARAMETER | Un parámetro no es válido |
EFI_DEVICE_ERROR | El dispositivo físico notificó un error. |
EFI_NOT_READY | El dispositivo físico está ocupado o no está listo para procesar esta solicitud. |
Comentarios
Un controlador de clase debe llamar a EFI_USBFN_IO_PROTOCOL. EventHandler repetidamente para recibir actualizaciones en el estado de transferencia y el número de bytes transferidos en varios puntos de conexión. Tras la actualización del estado de transferencia, el campo Búfer de la estructura de EFI_USBFN_TRANSFER_RESULT debe inicializarse con el puntero de búfer que se proporcionó a este método. Esta función produce un error con EFI_INVALID_PARAMETER código devuelto si la dirección especificada es incorrecta para el punto de conexión.
La información general de la secuencia de llamadas se muestra en el diagrama de secuencia UEFI.
Esta función produce un error con EFI_INVALID_PARAMETER código devuelto si la dirección especificada es incorrecta para el punto de conexión.
Requisitos
Encabezado: generado por el usuario