Partilhar via


EFI_USBFN_IO_PROTOCOL. Eventhandler

A função EventHandler é chamada repetidamente para receber atualizações em estados de barramento USB, receber e transmitir status alterações nos pontos de extremidade e configurar o pacote no ponto de extremidade 0.

Sintaxe

typedef
EFI_STATUS
(EFIAPI * EFI_USBFN_IO_EVENTHANDLER) (
  IN EFI_USBFN_IO_PROTOCOL        *This,
  OUT EFI_USBFN_MESSAGE           *Message,
  IN OUT UINTN                    *PayloadSize,
  OUT EFI_USBFN_MESSAGE_PAYLOAD   *Payload
  );

Parâmetros

Este
Um ponteiro para a instância EFI_USBFN_IO_PROTOCOL.

Mensagem
Um valor EFI_USBFN_MESSAGE que indica o evento que iniciou essa notificação.

PayloadSize
Na entrada, o tamanho da memória apontada por Payload. Na saída, a quantidade de dados retornados em Payload.

Carga útil
Um ponteiro para a instância EFI_USBFN_MESSAGE_PAYLOAD para retornar conteúdo adicional para a mensagem atual.

Valores retornados

A função retorna os seguintes valores:

Código de retorno Descrição
EFI_SUCCESS A função foi 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.
EFI_BUFFER_TOO_SMALL O buffer fornecido não é grande o suficiente para manter o conteúdo da mensagem.

Comentários

Um driver de classe deve chamar 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. Consulte Diagrama de sequência UEFI para obter mais informações.

Algumas mensagens têm conteúdo associado que é retornado no buffer fornecido. A tabela a seguir descreve várias mensagens e seu conteúdo.

Mensagem Carga útil Descrição
EfiUsbMsgSetupPacket EFI_USB_DEVICE_REQUEST O pacote SETUP foi recebido.
EfiUsbMsgEndpointStatusChangedRx EFI_USBFN_TRANSFER_RESULT Alguns dos dados solicitados foram transmitidos para o host. É responsabilidade do driver de classe determinar se algum dado restante precisa ser reenviado. O Buffer fornecido para EFI_USBFN_IO_PROTOCOL. A transferência deve ser igual ao campo Buffer do conteúdo.
EfiUsbMsgEndpointStatusChangedTx EFI_USBFN_TRANSFER_RESULT Alguns dos dados solicitados foram recebidos do host. É responsabilidade do driver de classe determinar se ele precisa aguardar os dados restantes. O Buffer fornecido para EFI_USBFN_IO_PROTOCOL. A transferência deve ser igual ao campo Buffer do conteúdo.
EfiUsbMsgBusEventReset Nenhum O evento de barramento RESET foi sinalizado.
EfiUsbMsgBusEventDetach Nenhum O evento de barramento DETACH foi sinalizado.
EfiUsbMsgBusEventAttach Nenhum Evento de barramento ATTACH sinalizado.
EfiUsbMsgBusEventSuspend Nenhum O evento suspend bus foi sinalizado.
EfiUsbMsgBusEventResume Nenhum Evento resume bus sinalizado.
EfiUsbMsgBusEventSpeed EFI_USB_BUS_SPEED Atualização de velocidade do barramento sinalizada.

Requisitos

Cabeçalho: Usuário gerado