Share via


EFI_USBFN_IO_PROTOCOL. Transferência

A função Transfer lida com a transferência de dados de ou para o host no ponto de extremidade especificado.

Direção Descrição
EfiUsbEndpointDirectionDeviceTx Inicie uma transferência de transmissão no ponto de extremidade especificado e retorne imediatamente.
EfiUsbEndpointDirectionDeviceRx Inicie uma transferência de recebimento no ponto de extremidade especificado e retorne imediatamente com os dados disponíveis.

Sintaxe

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
Um ponteiro para a EFI_USBFN_IO_PROTOCOL instância.

EndpointIndex
Indica o ponto de extremidade no qual a transferência TX ou RX precisa ocorrer.

Direção
Direção do ponto de extremidade. Para obter mais informações, consulte EFI_USBFN_ENDPOINT_DIRECTION.

Tamanho do buffer
Se Direction for EfiUsbEndpointDirectionDeviceRx: Na entrada, o tamanho do buffer em bytes. Na saída, a quantidade de dados retornados no buffer em bytes. Se Direction for EfiUsbEndpointDirectionDeviceTx: Na entrada, o tamanho do Buffer em bytes. Na saída, a quantidade de dados realmente transmitidos em bytes.

Buffer
Se Direction for EfiUsbEndpointDirectionDeviceRx:O buffer para retornar os dados recebidos. Se Direction for EfiUsbEndpointDirectionDeviceTx: O buffer que contém os dados a serem transmitidos.

Esse buffer é alocado e liberado usando as funções AllocateTransferBuffer e FreeTransferBuffer. O chamador dessa função não deve liberar ou reutilizar o buffer até que uma mensagem EfiUsbMsgEndpointStatusChangedRx ou EfiUsbMsgEndpointStatusChangedTx seja recebida junto com o endereço do buffer de transferência como parte da carga útil da mensagem. Veja EFI_USBFN_IO_PROTOCOL. EventHandler para obter mais informações sobre várias mensagens e suas cargas úteis.

Valores retornados

A função retorna um dos seguintes valores:

Código de retorno Descrição
EFI_SUCCESS A função retornada com êxito
EFI_INVALID_PARAMETER Um parâmetro é inválido
EFI_DEVICE_ERROR O dispositivo físico relatou um erro.
EFI_NOT_READY O dispositivo físico está ocupado ou não está pronto para processar essa solicitação

Comentários

Um motorista de classe deve ligar para EFI_USBFN_IO_PROTOCOL. EventHandler repetidamente para receber atualizações sobre o status de transferência e o número de bytes transferidos em vários pontos de extremidade. Após a atualização do status da transferência, o campo Buffer da estrutura EFI_USBFN_TRANSFER_RESULT deve ser inicializado com o ponteiro Buffer fornecido a esse método. Essa função falhará com EFI_INVALID_PARAMETER código de retorno se a direção especificada estiver incorreta para o ponto de extremidade.

A visão geral da sequência de chamadas é ilustrada no Diagrama de Sequência UEFI.

Essa função falhará com EFI_INVALID_PARAMETER código de retorno se a direção especificada estiver incorreta para o ponto de extremidade.

Requisitos

Cabeçalho: Gerado pelo usuário