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